IRONSOFTWAREHOME
PDF 工具

如何在没有 Adobe Pro 的情况下涂黑 PDF

Curtis Chau
Curtis Chau
Updated: 2026年4月23日

IronPDF 提供更简单的图像添加,代码更少和永久许可证,而 iText 提供更细粒度的控制但需要更多代码,并且在商业应用上具有复杂的 AGPL 许可。

在.NET环境中处理PDF文件时,向文档添加图像是许多应用程序的常见需求。 无论您是生成带有公司徽标的发票、创建带有嵌入式图表的报告,还是制作带有水印的自定义文档,将图像嵌入 PDF 的功能都至关重要。 在 C# 中两个流行的 PDF 库是IronPDFiText。 本文从易用性、性能、许可模式以及图像压缩和格式支持等高级功能等方面,对这两个库在向 PDF 添加图像方面的能力进行了比较。

IronPDF 和 iText 之间的主要区别是什么?

每个图库提供哪些图像功能?

它们如何处理大型文件和复杂操作?

商业用途的成本影响是什么?

如何使用 IronPDF 向 PDF 添加图片?

如何安装和配置 IronPDF?

通过NuGet将 IronPDF 安装到您的 C# 或 Visual Basic 项目中。 该库支持多种安装方法,包括Windows InstallerDocker 部署

PM > Install-Package IronPdf

安装完成后,您可以使用 IronPDF 的API 参考开始添加图像。 该库可在WindowsLinuxmacOS平台上无缝运行。

IronPDF 中的基本图像添加功能是什么样的?

快速入门:使用 IronPDF 向 PDF 添加图像 AH2BG 快速入门:使用 IronPDF 向 PDF 添加图像 AH2EG 快速入门 using IronPDF 的印章 API 向 PDF 添加图像只需要编写极少的代码。

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Copy and run this code snippet.

    using IronPdf;
    using IronPdf.Editing;
    
    class Program
    {
        public static void Main(string[] args)
        {
            // Create a renderer to convert HTML to PDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();
            
            // Render a basic PDF with some HTML content
            PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
            
            // Create an ImageStamper with the image URL
            ImageStamper stamper = new ImageStamper(new Uri("___PROTECTED_URL_61___"));
            
            // Configure image position and size
            stamper.HorizontalAlignment = HorizontalAlignment.Center;
            stamper.VerticalAlignment = VerticalAlignment.Middle;
            stamper.Width = 200;  // Width in pixels
            stamper.Height = 100; // Height in pixels
            
            // Apply the stamp (image) to the PDF document
            pdf.ApplyStamp(stamper);
            
            // Save the modified PDF to a file
            pdf.SaveAs("output.pdf");
        }
    }
    C#
  3. 3Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer

如何添加水印和背景图片?

IronPDF 擅长为现有 PDF 添加水印背景图像。 该库支持多种冲压操作自定义定位

using IronPdf;
using IronPdf.Editing;

// Load an existing PDF
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

// Create a watermark with transparency
ImageStamper watermark = new ImageStamper("watermark.png")
{
    Opacity = 30,  // 30% opacity for subtle watermarking
    Rotation = -45, // Diagonal watermark
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Middle
};

// Apply watermark to all pages
pdf.ApplyStamp(watermark);

// Add a header logo
ImageStamper logo = new ImageStamper("company-logo.png")
{
    HorizontalOffset = Length.Millimeters(10),
    VerticalOffset = Length.Millimeters(10),
    Width = 150,
    Height = 50
};

pdf.ApplyStamp(logo, PageSelection.FirstPage);
pdf.SaveAs("watermarked-invoice.pdf");

您还可以创建包含多张图片的复杂布局

// Add images from Base64 strings
string base64Image = Convert.ToBase64String(File.ReadAllBytes("signature.png"));
HtmlStamper signatureStamp = new HtmlStamper($"<img src='data:image/png;base64,{base64Image}'/>");
signatureStamp.HorizontalAlignment = HorizontalAlignment.Right;
signatureStamp.VerticalAlignment = VerticalAlignment.Bottom;
pdf.ApplyStamp(signatureStamp);

PDF 查看器显示带有

本示例使用ChromePdfRenderer类从HTML 字符串渲染新的 PDF。 使用 IronPDF 的图像盖章工具,您可以从提供的 URL 创建图像并将其应用到 PDF 中。 这演示了如何用最少的代码向PDF 页面添加图像。 渲染选项可让您完全控制输出质量。

如何在IronPDF中控制图像位置和尺寸?

IronPDF 为图像放置提供了广泛的自定义选项。 您可以通过印章工具的定位功能设置对齐方式和偏移量来指定页面位置。 该库支持使用坐标进行绝对定位和使用对齐选项进行相对定位。 高级功能包括自定义纸张尺寸边距控制,以实现精确的布局。

如何在 PDF 中使用 iText 添加图像?

如何安装和配置 iText?

通过 NuGet 安装 iText。 与 IronPDF 的完整平台支持不同,iText 的部署选项有限

PM > Install-Package itext7

配置完成后,继续使用 iText 的文档操作功能来添加图像。 该库需要额外的配置才能进行字体管理UTF-8 支持

在iText中图像添加的基本过程是什么样的?

以下是在 iText 中插入图像的方法:

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;

class Program
{
    public static void Main(string[] args)
    {
        // Initialize PDF writer
        var pdfWriter = new PdfWriter("output.pdf");
        
        // Initialize PDF document
        var pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfWriter);
        
        // Initialize document
        var document = new Document(pdfDocument);
        
        // Create ImageData from image file
        ImageData imageData = ImageDataFactory.Create("iText.png");
        
        // Create an Image instance
        Image image = new Image(imageData);
        
        // Set fixed position for the image in the PDF
        image.SetFixedPosition(50, 100);  // x, y coordinates
        
        // Scale image to fit within specified dimensions
        image.ScaleToFit(200, 200);  // Width, Height
        
        // Add image to document
        document.Add(image);
        
        // Close the document
        document.Close();
    }
}

如何添加多张图片并处理复杂的布局?

对于创建产品目录相册等复杂场景,您需要手动管理布局。 IronPDF的目录功能书签支持可以整理多页文档:

using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.IO.Image;
using iText.Layout.Properties;

// Create a grid of images
var pdfWriter = new PdfWriter("catalog.pdf");
var pdfDocument = new PdfDocument(pdfWriter);
var document = new Document(pdfDocument);

// Add images in a grid layout
float xPosition = 50;
float yPosition = 750;
int imagesPerRow = 3;
int currentImage = 0;

string[] imageFiles = { "product1.jpg", "product2.jpg", "product3.jpg", 
                       "product4.jpg", "product5.jpg", "product6.jpg" };

foreach (string imagePath in imageFiles)
{
    ImageData imageData = ImageDataFactory.Create(imagePath);
    Image image = new Image(imageData);
    
    // Calculate position
    int column = currentImage % imagesPerRow;
    int row = currentImage / imagesPerRow;
    
    float x = xPosition + (column * 180);
    float y = yPosition - (row * 250);
    
    image.SetFixedPosition(x, y);
    image.ScaleToFit(150, 200);
    
    document.Add(image);
    currentImage++;
}

document.Close();

PDF 查看器显示居中的 iText 标志以及

图片被添加到坐标 (50, 100) 处,并缩放至 200x200 像素大小。 PdfWriter 创建输出文件,启用PDF 编写者功能以处理图像。 为了更好地组织内容,可以考虑使用页码页眉/页脚

如何在iText中控制图像位置和尺寸?

iText 通过手动坐标计算提供位置和大小控制。 您可以缩放图像,同时保持宽高比,或者拉伸到特定尺寸。 SetFixedPosition 方法提供精确的定位控制,您还可以操控对齐和旋转。 但是,它缺少 IronPDF 的视口控制响应式尺寸选项

IronPDF 和 iText 在性能上的比较

这两个库在处理向 PDF 添加图像方面存在显著差异:

  • IronPDF 经过改进,以提高性能,高效处理包含多图的大型文档。 它能更快地渲染 PDF 文件,尤其适用于图形密集型文档。 该库支持异步操作并行处理,以提高吞吐量。 内存流操作可减少磁盘 I/O,从而提高性能。

  • iText 提供良好的性能,但在处理非常大的 PDF 或大量高分辨率图像时可能遇到困难。 虽然效率很高,但一些开发人员反映,在涉及多个页面操作的复杂用例中,渲染速度比 IronPDF 慢。 该库缺乏用于网页优化的内置线性化支持

有哪些高级图像功能可用?

它们如何处理不同的图像格式?

IronPDF支持所有图像格式:

iText 支持标准格式:

  • JPEG/JPG
  • 带透明通道的PNG图像
  • GIF(仅第一帧)
  • TIFF(单页)
  • BMP 和其他位图格式

图像质量和压缩情况如何?

IronPDF提供内置的压缩选项,可在文件大小和质量之间取得平衡。 该库提供数据清理功能数据扁平化功能

// Configure compression when rendering
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.JpegQuality = 85; // 0-100 quality scale

// Compress existing PDFs with images
PdfDocument pdf = PdfDocument.FromFile("large-images.pdf");
pdf.CompressImages(60); // Compress to 60% quality
pdf.SaveAs("compressed.pdf");

// Additional optimization options
renderer.RenderingOptions.GrayScale = true; // Convert to grayscale
renderer.RenderingOptions.DPI = 150; // Reduce DPI for web viewing

iText 需要通过图像数据操作来手动处理压缩,从而增加质量控制的实施复杂性。 您必须自行实现灰度转换DPI调整

如何从现有PDF文件中提取图像?

IronPDF 提供可靠的图像提取功能

// Extract all images from a PDF
PdfDocument pdf = PdfDocument.FromFile("document.pdf");
var images = pdf.ExtractAllImages();

foreach (var image in images)
{
    // Save extracted images
    image.SaveAs($"extracted_image_{images.IndexOf(image)}.png");
}

// Extract images from specific pages
var pageImages = pdf.ExtractImagesFromPage(0); // First page

许可和定价模式有哪些?

  • IronPDF: IronPDF 提供简单直接的永久许可证,只需一次性购买。 这种方法具有明显的优势,可以避免持续的成本或开源许可要求。 该库提供全面的支持和定期更新许可证验证是自动化的,并支持多种部署场景

  • iText: iText 遵循 AGPL 许可证,免费用于开源项目,但要求发布网页应用的公共源代码。 商业许可不受AGPL限制。 许可模式可能会使云部署变得复杂。

我应该选择哪个库来向PDF中添加图像?

IronPDF 和 iText PDF 库之间的功能比较表,显示 IronPDF 在易用性、性能、许可灵活性、完整图像格式支持和企业 PDF 生成高级定位能力方面的优势

IronPDF 和 iText 都为 C# 中的 PDF 添加图像提供了有效的工具,各有独特的优势。 IronPDF 以易用性、性能和许可灵活性著称,是处理复杂 PDF 和图像的理想选择,且代码量极少。 它为大型 PDF 文件提供了更好的可扩展性,并提供一次性购买许可,避免了重复性成本或复杂的开源限制。

该库支持SVG和 WebP 等现代格式,并具有内置压缩功能和直观的定位 API,适合需要高质量文档生成的企业应用程序。 IronPDF 的Chrome 渲染引擎可确保在所有平台上实现像素级完美输出

iText适合开源项目,尽管需要更多代码才能获得相同的结果,并可能在面对更大的PDF时陷入性能问题。 其底层 API 提供精细的控制,但增加了开发复杂性。 该库缺少响应式 CSS 支持JavaScript 渲染等现代功能。

对于企业应用而言,IronPDF 的优势包括Docker 支持AWS Lambda 兼容性Azure Functions 集成。 该图书馆还提供符合监管要求的PDF/A 合规性PDF/UA 可访问性

想要简化您的 PDF 图片处理流程吗? IronPDF 可以用最少的代码高效地将图片添加到 PDF 中。 试用IronPDF ,体验在 C# 项目中简化图像集成。 实现为您处理了复杂性,节省时间并改进PDF 生成工作流。 探索完整的功能集,加入数千名简化 PDF 操作的开发者行列。

Please note: iText是一种注册商标,其各自所有者拥有其商标。 本网站不与iText有任何从属关系、认可或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。
Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Related Articles

Key in blue circle

立即获取免费的 30 天试用版密钥

bullet_checked无需信用卡或创建账户
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge related to IronPDF Product Demo

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户