如何在沒有 Adobe Pro 的情況下刪除 PDF
Full Comparison
Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.
IronPDF 提供簡化的圖像新增功能,只需更少的程式碼和永久授權,而 iText 則在更細粒度控制上更具優勢,但需要更多程式碼,並在 AGPL 下對商業用途有複雜的授權要求。
在 .NET 環境下處理 PDF 文件時,向文件新增圖像是許多應用程式的常見需求。 無論您是生成帶有公司徽標的發票,建立內嵌圖表的報告,還是製作帶有水印的自定義文件,將圖像嵌入 PDF 的能力都是必需的。 C# 中兩個受歡迎的 PDF 庫是IronPDF 和 iText。 本文比較了這兩個庫在新增圖像到 PDF 中的能力,考慮到易用性、性能、授權模型及圖像壓縮和格式支持等高級功能。
IronPDF 和 iText 的主要區別是什麼?
每個庫提供哪些圖像功能?
-
IronPDF: IronPDF 簡化了新增圖像到 PDF 的過程,內建支援本地和來自 URL 的遠程圖像。 它的 API 提供了對位置、寬度和縮放的控制。 該庫支持 JPEG、PNG、GIF、SVG 和WebGL 內容。 加蓋功能提供了水印、信頭和圖像覆蓋的方法。 Chrome 渲染引擎確保復雜圖形和響應式圖像的準確渲染。
iText: iText 通過其底層 API 提供圖像嵌入功能。 它提供了一個處理 JPG 和 PNG 格式的靈活介面。 但是,您需要更多的程式碼來進行自定義,特別是在精確定位圖像或實現透明和旋轉時。 該庫需要手動處理坐標系統和縮放計算。 您通常需要實現自己的視口控件以實現響應性大小。
他們如何處理大文件和複雜操作?
商業使用的成本含意如何?
如何使用 IronPDF 向 PDF 新增圖像?
如何安裝和配置 IronPDF?
透過NuGet將 IronPDF 安裝到您的 C# 或 Visual Basic 專案中。 該庫支持多種安裝方法,包括Windows 安裝程式和Docker 部署:
Install-Package IronPdf
安裝後,您可以使用 IronPDF 的API 參考開始新增圖像。 無縫運行在Windows、Linux 和MacOS 平台上。
在 IronPDF 中新增基本圖像是什麼樣的?
快速入門:使用 IronPDF 向 PDF 新增圖像 using IronPDF 向 PDF 新增圖像只需使用加蓋 API 的最少程式碼。
-
使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPdf
-
複製並運行這段程式碼片段。
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"); } } -
部署以在您的實時環境中測試
今天就開始在您的專案中使用IronPDF,透過免費試用
我如何新增水印和背景圖像?
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");
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");
Imports IronPdf
Imports IronPdf.Editing
' Load an existing PDF
Dim pdf As PdfDocument = PdfDocument.FromFile("invoice.pdf")
' Create a watermark with transparency
Dim watermark As New ImageStamper("watermark.png") With {
.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
Dim logo As New ImageStamper("company-logo.png") With {
.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);
// 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);
Imports System
Imports System.IO
' Add images from Base64 strings
Dim base64Image As String = Convert.ToBase64String(File.ReadAllBytes("signature.png"))
Dim signatureStamp As New HtmlStamper($"<img src='data:image/png;base64,{base64Image}'/>")
signatureStamp.HorizontalAlignment = HorizontalAlignment.Right
signatureStamp.VerticalAlignment = VerticalAlignment.Bottom
pdf.ApplyStamp(signatureStamp)

本範例使用 ChromePdfRenderer 類從 HTML 字串渲染出新的 PDF。 使用 IronPDF 的圖像加蓋工具,您可以從所提供的 URL 建立圖像並將其應用到PDF。 這顯示了用最少程式碼將圖像新增到您的PDF 頁面。 渲染選項提供對輸出質量的完整控制。
我如何在 IronPDF 中控制圖像位置和尺寸?
IronPDF為圖像放置提供了廣泛的自定義功能。 您可以通過加蓋工具的定位功能設置對齊和偏移來指定頁面位置。 該庫支持使用坐標的絕對定位和使用對齊選項的相對定位。 高級功能包括自定義紙張尺寸和邊距控制以獲得精確的佈局。
如何使用 iText 向 PDF 新增圖像?
如何安裝和配置 iText?
透過 NuGet 安裝 iText。 與 IronPDF 的完整平台支持不同,iText 的部署選項有限:
Install-Package itext7
在 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();
}
}
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();
}
}
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.IO.Image
Friend Class Program
Public Shared Sub Main(ByVal args() As String)
' Initialize PDF writer
Dim pdfWriter As New PdfWriter("output.pdf")
' Initialize PDF document
Dim pdfDocument = New iText.Kernel.Pdf.PdfDocument(pdfWriter)
' Initialize document
Dim document As New Document(pdfDocument)
' Create ImageData from image file
Dim imageData As ImageData = ImageDataFactory.Create("iText.png")
' Create an Image instance
Dim image As 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()
End Sub
End Class
我如何新增多個圖像和處理複雜的佈局?
對於建立產品目錄或相冊等複雜場景,您需要手動管理佈局。 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();
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();
Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.IO.Image
Imports iText.Layout.Properties
' Create a grid of images
Dim pdfWriter As New PdfWriter("catalog.pdf")
Dim pdfDocument As New PdfDocument(pdfWriter)
Dim document As New Document(pdfDocument)
' Add images in a grid layout
Dim xPosition As Single = 50
Dim yPosition As Single = 750
Dim imagesPerRow As Integer = 3
Dim currentImage As Integer = 0
Dim imageFiles As String() = {"product1.jpg", "product2.jpg", "product3.jpg", "product4.jpg", "product5.jpg", "product6.jpg"}
For Each imagePath As String In imageFiles
Dim imageData As ImageData = ImageDataFactory.Create(imagePath)
Dim image As New Image(imageData)
' Calculate position
Dim column As Integer = currentImage Mod imagesPerRow
Dim row As Integer = currentImage \ imagesPerRow
Dim x As Single = xPosition + (column * 180)
Dim y As Single = yPosition - (row * 250)
image.SetFixedPosition(x, y)
image.ScaleToFit(150, 200)
document.Add(image)
currentImage += 1
Next
document.Close()

圖像被新增在坐標(50, 100),並縮放以適應 200x200 像素範圍。 使用 PdfWriter 建立輸出文件,啟用 PDF 寫入功能以處理圖像。 為了更好的組織,考慮使用頁碼和頁眉/頁尾。
我如何在 iText 中控制圖像位置和尺寸?
iText 提供了通過手動坐標計算進行定位和尺寸控制。 您可以調整圖像的縮放而保持長寬比,或拉伸到特定尺寸。 方法 SetFixedPosition 提供了精確的放置控制,並且您可以操控對齊和旋轉。 然而,它缺乏 IronPDF 的視口控制和響應式大小選項。
IronPDF 和 iText 的性能比較如何?
這兩個庫在將圖像新增到 PDF 方面存在顯著差異:
有哪些高級圖像功能可用?
他們如何處理不同的圖像格式?
IronPDF 支持完整的圖像格式:
- JPEG/JPG,具有質量優化
- PNG,具有透明支持
- GIF(靜態和動畫幀)
- SVG,帶有矢量圖形
- TIFF,包括多頁 TIFF 文件
- WebP 用於現代網頁圖像
- Base64 編碼圖像
- 來自Azure Blob Storage 的圖像
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
// 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
Imports IronPdf
' Configure compression when rendering
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.JpegQuality = 85 ' 0-100 quality scale
' Compress existing PDFs with images
Dim pdf As PdfDocument = 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
我如何從現有的 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
// 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
Imports System
' Extract all images from a PDF
Dim pdf As PdfDocument = PdfDocument.FromFile("document.pdf")
Dim images = pdf.ExtractAllImages()
For Each image In images
' Save extracted images
image.SaveAs($"extracted_image_{images.IndexOf(image)}.png")
Next
' Extract images from specific pages
Dim pageImages = pdf.ExtractImagesFromPage(0) ' First page
有什麼授權和定價模式?
選擇哪個庫來向 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 操作。
常見問題
如何在.NET應用程式中將影像新增到PDF?
您可以使用IronPDF透過它的ImageStamper功能將影像新增到PDF中,這樣可以輕鬆嵌入影像並精確控制其位置和縮放。
使用IronPDF處理大型PDF檔案的效能優勢是什麼?
IronPDF針對高效能進行了優化,尤其是在處理大型PDF檔案和高解析度影像時,這使得它特別適用於需要高效處理的伺服器應用程式。
IronPDF如何簡化將影像嵌入到PDF的過程?
IronPDF通過提供直觀的API來簡化影像嵌入,這只需極少的程式碼即可在PDF文件中放置和縮放影像,提高了開發人員的生產力。
IronPDF和iTextSharp的授權模式有什麼不同?
IronPDF提供永久授權,一次性購買,消除了重複訂閱費用;而iTextSharp對開源使用採用AGPL授權,對於專有項目則提供商業選項。
能否提供一個使用IronPDF將影像新增到PDF的程式碼範例?
當然!您可以使用IronPDF的PdfDocument和ImageStamper類別來將影像嵌入到PDF中,這只需幾行程式碼,範例在文章中有示範。
IronPDF和iTextSharp在影像放置自訂上有何不同?
IronPDF提供簡單的影像放置自訂功能,包括對齊和偏移設置,而iTextSharp使用SetFixedPosition方法提供詳細的影像位置控制。
選擇IronPDF和iTextSharp時需考慮哪些關鍵因素?
選擇IronPDF還是iTextSharp取決於使用的易用性、大型文件的效能和授權需求。IronPDF因其易於使用的方法和擴展性而受青睞,而iTextSharp適合開源項目。
為何推薦IronPDF用於高效能伺服器應用程式?
IronPDF的架構旨在提供高效能,能夠有效處理大型文件和影像,這使得它成為需要速度和可靠性的伺服器應用程式的卓越選擇。
新增影像到PDF時的常見故障排除步驟是什麼?
在排除PDF影像嵌入問題時,確認影像路徑正確、檢查文件存取權限並驗證影像格式是否被所用的PDF庫支援。
IronPDF的試用版如何幫助開發人員?
IronPDF的試用版允許開發人員探索其功能並測試其處理PDF影像嵌入的能力,提供了一個在C#項目中簡化PDF處理的機會。



