跳過到頁腳內容
產品比較

IronPDF與PDFium.NET的比較

隨著技術的進步和互聯網使用的增加,數據主要以數字形式發送和接收,主要為PDF文件。

在C#中處理PDF文檔對於開發人員來說在最近一直很困難。有很多情況下開發人員需要在他們的應用程序中整合PDF查看和PDF生成功能。 考慮到這一點,許多庫已經開發出來以便利這些和類似的任務。

本文將比較兩個對.NET和.NET Core開發人員來說最受歡迎的PDF庫。 這兩個庫是:

  • IronPDF .NET庫
  • PDFium.NET SDK庫

IronPDF和PDFium.NET可以在.NET應用程序中創建、操作和打印PDF。 問題是:應該使用哪個庫呢? 閱讀本文後,您可以自行決定。

首先,讓我們看看這兩個庫提供了什麼,然後我們將進入比較本身。

The PDFium.NET SDK Library and its features

PDFium.NET用於創建、修改和查看PDF(便攜文檔格式)的文件。 它提供了一個高級的C#/VB.NET API,用於在網絡服務器上動態創建PDF,並在現有桌面或Web應用中實現保存為PDF功能。

PDFium.NET的突出功能有:

  • 從頭開始創建PDF,或從一組掃描圖像創建PDF
  • 現成的工具欄,用於編輯、拆分、合併和處理PDF,包括文本提取
  • 嵌入獨立的 Winforms 或 WPF PDF查看器控件支持縮放
  • 支持.NET 2.0+,.NET 6,Standard,Core,Mono,Microsoft Azure
  • 並且它還可以在 Windows XP 和 Mac OS 上工作
  • 支持整個範圍的PDF渲染功能
  • 高性能的PDF查看器,支持搜索、打印和編輯PDF文件
  • 極快的文本處理引擎

IronPDF及其主要特點

IronPDF .NET PDF庫是為開發人員量身定做的,特別是對於C#開發人員。 使用這個令人驚奇的PDF庫,您可以輕鬆地在您的.NET項目中集成PDF查看功能。

IronPDF內置了一個Chromium引擎,可以很容易地將HTML轉換為PDF。 這不需要任何複雜的低級API來操作PDF文件。 它可以處理HTML源文件,如HTML文檔、JavaScript文件和ASPX網頁。

IronPDF可以自定義PDF的自定義頁眉和頁腳、水印等。 它還使得開發人員讀取PDF文本和提取圖像簡直如同小菜一碟。

IronPDF for .NET的突出功能包括:

  • 使用HTML4/5、CSS和JavaScript創建PDF文檔
  • 加載具有自定義網絡登錄憑據、用戶代理、代理、cookie、HTTP標頭和表單變量的URL。
  • 編程完成HTML/PDF表單字段。
  • 從PDF文件中提取文字和圖形
  • 使用新內容更新PDF頁面。
  • 向PDF添加和自定義頁眉和頁腳。
  • 合併和拆分PDF文檔。
  • 將ASP.NET Web表單轉換成可打印的PDF。
  • 將HTML文件/URL轉換為PDF。
  • 無需使用Adobe Acrobat Reader打印PDF檔。

IronPDF庫適用於幾乎所有兼容C#的操作系統和框架,包括以下:

  • .NET Core 2.1,3.0,3.1,.NET 5,6,和7
  • .NET Standard 2.0符合通用兼容性
  • Azure、AWS、Docker、Linux、Windows

文章的其餘部分如下:

  1. IronPDF C#庫安裝
  2. PDFium.NET SDK安裝
  3. 創建 PDF 文檔
  4. 從多個圖片創建PDF
  5. 數字簽名 PDF
  6. 價格和許可
  7. 結論

1. IronPDF C#庫安裝

下載和安裝IronPDF庫有不同的方法。 最簡單的方法如下:

  1. 使用 Visual Studio
  2. 開發者命令提示符
  3. 直接下載 NuGet 套件
  4. 下載IronPDF.DLL庫

1.1. 使用 Visual Studio

在您的Visual Studio項目中,從“工具”選單或右鍵單擊您的項目在解決方案資源管理器中,選擇“管理NuGet包”。 下面的截圖中顯示了這兩個選項。

class="content-img-align-center">
class="center-image-wrapper"> IronPDF和PDFium.NET之間的比較,圖1:使用工具菜單訪問NuGet包管理器
class="content-img-align-center">
class="center-image-wrapper"> IronPDF和PDFium.NET之間的比較,圖2:使用解決方案資源管理器訪問NuGet包管理器

打開NuGet包管理器後,瀏覽IronPDF包並安裝它,如下面的截圖所示。

class="content-img-align-center">
class="center-image-wrapper"> IronPDF和PDFium.NET之間的比較,圖3:使用NuGet包管理器安裝IronPDF庫

1.2. 使用開發者命令提示符

IronPDF還可以通過開發者命令提示符下載。 按照以下步驟:

  • 從工具菜單打開開發者命令提示符或包管理控制台
  • 輸入以下命令:
Install-Package IronPdf
  • 按下回車鍵
  • 這將下載並安裝該庫

1.3. 直接下載 NuGet 套件

IronPDF還可以通過訪問NuGet IronPDF包直接下載。 步驟是:

  • 查找下載包並點擊它。
  • 該包將被下載並安裝。

1.4. 通過下載庫安裝IronPDF

您還可以直接從IronPDF的包頁面下載IronPDF.DLL文件

class="content-img-align-center">
class="center-image-wrapper"> IronPDF和PDFium.NET之間的比較,圖4:從IronPDF網站下載IronPDF庫DLL

使用以下步驟在項目中引用IronPDF庫:

  • 在“解決方案資源管理器”中右鍵單擊“解決方案”並選擇“引用”
  • 瀏覽 IronPDF.dll 庫
  • 點擊確定!

一切準備就緒! IronPDF已經下載並安裝。 現在我們將安裝PDFium.NET SDK庫。

2. PDFium.NET 安裝

我們可以使用NuGet包管理器或下載PDFium Windows安裝程式來安裝PDFium.NET。

  • 打開 Visual Studio 中的 NuGet 套件,就像我們在 IronPDF 中所做的那樣。
  • 搜尋PDFium.NET.SDK。 在當前項目中點擊安裝。
class="content-img-align-center">
class="center-image-wrapper"> IronPDF和PDFium.NET之間的比較,圖5:PDFium.NET搜索
  • 您還可以使用包管理控制台進行安裝。 按照IronPDF中提到的“使用開發者命令提示符”步驟,輸入以下命令:
Install-Package Pdfium.Net.SDK
  • 按下回車鍵。 這將下載並安裝該庫。

3. 創建 PDF 文檔

3.1. 使用 IronPDF

IronPDF提供多種方法來生成PDF文件。 讓我們來看看兩個重要的方法。

現有 URL 到 PDF

IronPDF使用現有的URL進行URL渲染,非常簡單地將HTML轉換為PDF

請考慮以下源代碼。

IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();

// Use RenderUrlAsPdf method to convert a given URL to a PDF document
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");

// Save the generated PDF document
Pdf.SaveAs("url.pdf");
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();

// Use RenderUrlAsPdf method to convert a given URL to a PDF document
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");

// Save the generated PDF document
Pdf.SaveAs("url.pdf");
Dim Renderer As New IronPdf.ChromePdfRenderer()

' Use RenderUrlAsPdf method to convert a given URL to a PDF document
Dim Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")

' Save the generated PDF document
Pdf.SaveAs("url.pdf")
$vbLabelText   $csharpLabel

HTML 輸入字符串到 PDF

以下代碼片段顯示了如何使用HTML字符串渲染PDF頁面。 您可以使用簡單的HTML,或將其與CSS、圖像和JavaScript結合使用。

var Renderer = new IronPDF.ChromePdfRenderer();

// Render HTML as a PDF
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");

// Load external HTML assets: images, css, and javascript
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo_square.png'>", @"e:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
var Renderer = new IronPDF.ChromePdfRenderer();

// Render HTML as a PDF
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");

// Load external HTML assets: images, css, and javascript
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo_square.png'>", @"e:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
Dim Renderer = New IronPDF.ChromePdfRenderer()

' Render HTML as a PDF
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>")
PDF.SaveAs("pixel-perfect.pdf")

' Load external HTML assets: images, css, and javascript
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
Dim AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo_square.png'>", "e:\site\assets\")
AdvancedPDF.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

輸出如下所示:

class="content-img-align-center">
class="center-image-wrapper"> IronPDF和PDFium.NET之間的比較,圖6:IronPDF從URL和HTML字符串生成PDF

3.2. 使用PDFium.NET

它可以即時使用圖像和文本對象生成PDF文檔。 然而,它無法將URL或HTML字符串轉換為PDF文件。

以下是使用構建PDFium.NET生成PDF的代碼示例:

public void CreatePDF()
{
    // Step 1: Initialize PDF library and create an empty document
    PdfCommon.Initialize();
    var doc = PdfDocument.CreateNew();  // Create a new PDF document

    // Step 2: Add a new page
    // Arguments: page width: 8.27", page height: 11.69", Unit of measure: inches
    //  The PDF unit of measure is a point. There are 72 points in one inch.
    var page = doc.Pages.InsertPageAt(doc.Pages.Count, 8.27f * 72, 11.69f * 72);

    // Step 3: Add graphics and text contents to the page
    // Insert image from file using the standard System.Drawing.Bitmap class
    using (PdfBitmap logo = PdfBitmap.FromFile(@"e:\site\assets\logo_square.png"))
    {
        PdfImageObject imageObject = PdfImageObject.Create(doc, logo, 0, 0);
        // Set image resolution to 300 DPI and location to 1.69 x 10.0 inches
        imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
        page.PageObjects.Add(imageObject);
    }

    // Create fonts for text objects
    PdfFont calibryBold = PdfFont.CreateFont(doc, "CalibriBold");
    // Insert text objects at 7.69"; 11.02" and font size is 25
    PdfTextObject textObject = PdfTextObject.Create("Sample text", 7.69f * 72, 11.02f * 72, calibryBold, 25);
    textObject.FillColor = FS_COLOR.Black;
    page.PageObjects.Add(textObject);

    // Step 5: Generate page content and save PDF file
    // Argument: PDF file name
    page.GenerateContent();
    doc.Save(@"e:\site\sample_document.pdf", SaveFlags.NoIncremental);
}
public void CreatePDF()
{
    // Step 1: Initialize PDF library and create an empty document
    PdfCommon.Initialize();
    var doc = PdfDocument.CreateNew();  // Create a new PDF document

    // Step 2: Add a new page
    // Arguments: page width: 8.27", page height: 11.69", Unit of measure: inches
    //  The PDF unit of measure is a point. There are 72 points in one inch.
    var page = doc.Pages.InsertPageAt(doc.Pages.Count, 8.27f * 72, 11.69f * 72);

    // Step 3: Add graphics and text contents to the page
    // Insert image from file using the standard System.Drawing.Bitmap class
    using (PdfBitmap logo = PdfBitmap.FromFile(@"e:\site\assets\logo_square.png"))
    {
        PdfImageObject imageObject = PdfImageObject.Create(doc, logo, 0, 0);
        // Set image resolution to 300 DPI and location to 1.69 x 10.0 inches
        imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
        page.PageObjects.Add(imageObject);
    }

    // Create fonts for text objects
    PdfFont calibryBold = PdfFont.CreateFont(doc, "CalibriBold");
    // Insert text objects at 7.69"; 11.02" and font size is 25
    PdfTextObject textObject = PdfTextObject.Create("Sample text", 7.69f * 72, 11.02f * 72, calibryBold, 25);
    textObject.FillColor = FS_COLOR.Black;
    page.PageObjects.Add(textObject);

    // Step 5: Generate page content and save PDF file
    // Argument: PDF file name
    page.GenerateContent();
    doc.Save(@"e:\site\sample_document.pdf", SaveFlags.NoIncremental);
}
Public Sub CreatePDF()
	' Step 1: Initialize PDF library and create an empty document
	PdfCommon.Initialize()
	Dim doc = PdfDocument.CreateNew() ' Create a new PDF document

	' Step 2: Add a new page
	' Arguments: page width: 8.27", page height: 11.69", Unit of measure: inches
	'  The PDF unit of measure is a point. There are 72 points in one inch.
	Dim page = doc.Pages.InsertPageAt(doc.Pages.Count, 8.27F * 72, 11.69F * 72)

	' Step 3: Add graphics and text contents to the page
	' Insert image from file using the standard System.Drawing.Bitmap class
	Using logo As PdfBitmap = PdfBitmap.FromFile("e:\site\assets\logo_square.png")
		Dim imageObject As PdfImageObject = PdfImageObject.Create(doc, logo, 0, 0)
		' Set image resolution to 300 DPI and location to 1.69 x 10.0 inches
		imageObject.Matrix = New FS_MATRIX(logo.Width * 72 \ 300, 0, 0, logo.Height * 72 \ 300, 1.69 * 72, 10.0 * 72)
		page.PageObjects.Add(imageObject)
	End Using

	' Create fonts for text objects
	Dim calibryBold As PdfFont = PdfFont.CreateFont(doc, "CalibriBold")
	' Insert text objects at 7.69"; 11.02" and font size is 25
	Dim textObject As PdfTextObject = PdfTextObject.Create("Sample text", 7.69F * 72, 11.02F * 72, calibryBold, 25)
	textObject.FillColor = FS_COLOR.Black
	page.PageObjects.Add(textObject)

	' Step 5: Generate page content and save PDF file
	' Argument: PDF file name
	page.GenerateContent()
	doc.Save("e:\site\sample_document.pdf", SaveFlags.NoIncremental)
End Sub
$vbLabelText   $csharpLabel

輸出如下所示:

class="content-img-align-center">
class="center-image-wrapper"> IronPDF和PDFium.NET之間的比較,圖7:PDFium.NET生成PDF

如果我們比較IronPDF的輸出和PDFium項目的輸出,可以清楚地看到IronPDF的類庫基於HTML渲染的輸出效果更好,而無需調整圖像大小。另一方面,PDFium.NET提供了與IronPDF相似的輸出,但僅限於圖像縮放。 如果我們跳過代碼中的以下行:

imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
imageObject.Matrix = new FS_MATRIX(logo.Width * 72 / 300, 0, 0, logo.Height * 72 / 300, 1.69 * 72, 10.0 * 72);
imageObject.Matrix = New FS_MATRIX(logo.Width * 72 \ 300, 0, 0, logo.Height * 72 \ 300, 1.69 * 72, 10.0 * 72)
$vbLabelText   $csharpLabel

輸出將是:

class="content-img-align-center">
class="center-image-wrapper"> IronPDF和PDFium.NET之間的比較,圖8:PDFium.NET不帶圖像縮放的PDF輸出

4. 從多個圖片創建PDF

4.1. 使用 IronPDF

在IronPDF中合併兩個或多個PDF非常簡單。 使用Merge方法,您可以結合兩個或多個PDF,其中每個文件由逗號分隔。 代碼如下:

using IronPdf;

var html_a = @"<p> [PDF_A] </p>
                <p> [PDF_A] 1st Page </p>
                <div style = 'page-break-after: always;'></div>
                <p> [PDF_A] 2nd Page</p>";

var html_b = @"<p> [PDF_B] </p>
                <p> [PDF_B] 1st Page </p>
                <div style = 'page-break-after: always;'></div>
                <p> [PDF_B] 2nd Page</p>";

var Renderer = new IronPDF.ChromePdfRenderer();

// Render HTML documents as PDFs
var pdfdoc_a = Renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = Renderer.RenderHtmlAsPdf(html_b);

// Merge the documents into one PDF
var merged = IronPDF.PdfDocument.Merge(pdfdoc_a, pdfdoc_b);

// Save the merged document
merged.SaveAs("Merged.PDF");
using IronPdf;

var html_a = @"<p> [PDF_A] </p>
                <p> [PDF_A] 1st Page </p>
                <div style = 'page-break-after: always;'></div>
                <p> [PDF_A] 2nd Page</p>";

var html_b = @"<p> [PDF_B] </p>
                <p> [PDF_B] 1st Page </p>
                <div style = 'page-break-after: always;'></div>
                <p> [PDF_B] 2nd Page</p>";

var Renderer = new IronPDF.ChromePdfRenderer();

// Render HTML documents as PDFs
var pdfdoc_a = Renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = Renderer.RenderHtmlAsPdf(html_b);

// Merge the documents into one PDF
var merged = IronPDF.PdfDocument.Merge(pdfdoc_a, pdfdoc_b);

// Save the merged document
merged.SaveAs("Merged.PDF");
Imports IronPdf

Private html_a = "<p> [PDF_A] </p>
                <p> [PDF_A] 1st Page </p>
                <div style = 'page-break-after: always;'></div>
                <p> [PDF_A] 2nd Page</p>"

Private html_b = "<p> [PDF_B] </p>
                <p> [PDF_B] 1st Page </p>
                <div style = 'page-break-after: always;'></div>
                <p> [PDF_B] 2nd Page</p>"

Private Renderer = New IronPDF.ChromePdfRenderer()

' Render HTML documents as PDFs
Private pdfdoc_a = Renderer.RenderHtmlAsPdf(html_a)
Private pdfdoc_b = Renderer.RenderHtmlAsPdf(html_b)

' Merge the documents into one PDF
Private merged = IronPDF.PdfDocument.Merge(pdfdoc_a, pdfdoc_b)

' Save the merged document
merged.SaveAs("Merged.PDF")
$vbLabelText   $csharpLabel

4.2. 使用PDFium.NET

使用PDFium.NET,不僅可以將多個PDF文件合併到一個文件中,還可以從源文件中選擇特定頁面並將它們合併到一個PDF文檔中。

下面的代碼顯示了如何使用ImportPages方法做到這一點:

public void MergePDF()
{
    // Initialize the SDK library.
    PdfCommon.Initialize();

    // Open and load a PDF document into which other files will be merged 
    using (var mainDoc = PdfDocument.Load(@"c:\test001.pdf")) // Read source PDF File #1
    {
        // Open one PDF document.
        using (var doc = PdfDocument.Load(@"c:\doc1.pdf")) // Read PDF File #2
        {
            // Import all pages from the document
            mainDoc.Pages.ImportPages(
                doc,
                string.Format("1-{0}", doc.Pages.Count),
                mainDoc.Pages.Count
                );
        }

        // Open another PDF document.
        using (var doc = PdfDocument.Load(@"c:\doc2.pdf"))
        {
            // Import all pages from the document
            mainDoc.Pages.ImportPages(
                doc,
                string.Format("1-{0}", doc.Pages.Count),
                mainDoc.Pages.Count
                );
        }

        // Save the merged document
        mainDoc.Save(@"c:\ResultDocument.pdf", SaveFlags.NoIncremental);
    }
}
public void MergePDF()
{
    // Initialize the SDK library.
    PdfCommon.Initialize();

    // Open and load a PDF document into which other files will be merged 
    using (var mainDoc = PdfDocument.Load(@"c:\test001.pdf")) // Read source PDF File #1
    {
        // Open one PDF document.
        using (var doc = PdfDocument.Load(@"c:\doc1.pdf")) // Read PDF File #2
        {
            // Import all pages from the document
            mainDoc.Pages.ImportPages(
                doc,
                string.Format("1-{0}", doc.Pages.Count),
                mainDoc.Pages.Count
                );
        }

        // Open another PDF document.
        using (var doc = PdfDocument.Load(@"c:\doc2.pdf"))
        {
            // Import all pages from the document
            mainDoc.Pages.ImportPages(
                doc,
                string.Format("1-{0}", doc.Pages.Count),
                mainDoc.Pages.Count
                );
        }

        // Save the merged document
        mainDoc.Save(@"c:\ResultDocument.pdf", SaveFlags.NoIncremental);
    }
}
Public Sub MergePDF()
	' Initialize the SDK library.
	PdfCommon.Initialize()

	' Open and load a PDF document into which other files will be merged 
	Using mainDoc = PdfDocument.Load("c:\test001.pdf") ' Read source PDF File #1
		' Open one PDF document.
		Using doc = PdfDocument.Load("c:\doc1.pdf") ' Read PDF File #2
			' Import all pages from the document
			mainDoc.Pages.ImportPages(doc, String.Format("1-{0}", doc.Pages.Count), mainDoc.Pages.Count)
		End Using

		' Open another PDF document.
		Using doc = PdfDocument.Load("c:\doc2.pdf")
			' Import all pages from the document
			mainDoc.Pages.ImportPages(doc, String.Format("1-{0}", doc.Pages.Count), mainDoc.Pages.Count)
		End Using

		' Save the merged document
		mainDoc.Save("c:\ResultDocument.pdf", SaveFlags.NoIncremental)
	End Using
End Sub
$vbLabelText   $csharpLabel

5. 數字簽名 PDF

5.1. 使用 IronPDF

當今最重要的功能之一是數字簽署PDF文檔。 IronPDF提供此功能。 代碼如下:

using IronPdf;

// Cryptographically sign an existing PDF in 1 line of code!
new IronPDF.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");

/***** Advanced example for more control *****/

// Step 1. Create a PDF
var Renderer = new IronPdf.ChromePdfRenderer();
var doc = Renderer.RenderHtmlAsPDF("<h1>Testing 2048 bit digital security</h1>");

// Step 2. Create a Signature.
// You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.

var signature = new IronPDF.Signing.PdfSignature("Iron.pfx", "123456");

// Step 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png");

// Step 4. Sign the PDF with the PDFSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature);

// Step 4. The PDF is not signed until saved to file, stream, or byte array.
doc.SaveAs("signed.pdf"); 
using IronPdf;

// Cryptographically sign an existing PDF in 1 line of code!
new IronPDF.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");

/***** Advanced example for more control *****/

// Step 1. Create a PDF
var Renderer = new IronPdf.ChromePdfRenderer();
var doc = Renderer.RenderHtmlAsPDF("<h1>Testing 2048 bit digital security</h1>");

// Step 2. Create a Signature.
// You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.

var signature = new IronPDF.Signing.PdfSignature("Iron.pfx", "123456");

// Step 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png");

// Step 4. Sign the PDF with the PDFSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature);

// Step 4. The PDF is not signed until saved to file, stream, or byte array.
doc.SaveAs("signed.pdf"); 
Imports IronPdf

' Cryptographically sign an existing PDF in 1 line of code!
Call (New IronPDF.Signing.PdfSignature("Iron.p12", "123456")).SignPdfFile("any.pdf")

'''*** Advanced example for more control ****

' Step 1. Create a PDF
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim doc = Renderer.RenderHtmlAsPDF("<h1>Testing 2048 bit digital security</h1>")

' Step 2. Create a Signature.
' You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.

Dim signature = New IronPDF.Signing.PdfSignature("Iron.pfx", "123456")

' Step 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png")

' Step 4. Sign the PDF with the PDFSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature)

' Step 4. The PDF is not signed until saved to file, stream, or byte array.
doc.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

PDFium.NET沒有這個能力來數字簽署PDF文檔。

6. 價格和許可

IronPDF定價和許可

IronPDF免費用於開發簡單應用程序,並可以隨時獲得商業使用的許可。它提供單個項目許可、單個開發人員許可、代理機構和跨國組織許可。 它還提供SaaS和OEM的重發布許可和支持。

所有IronPDF的許可都享有30天退款保證,並附加一年的軟件支持和升級。 最重要的是,它是一種永久許可(一次性購買)。 提供Lite包。 IronPDF產品絕對沒有任何經常性費用。 關於可用許可的更詳細信息在IronPDF許可頁

IronPDF和PDFium.NET之間的比較,圖9:IronPDF許可

PDFium.NET定價和許可

PDFium.NET提供永久許可。 您可以永遠使用這個支持的SDK版本和您的註冊鍵。 然而,該密鑰僅適用於取決於許可購買或續訂日期的一些特定SDK版本。 您可以免費安裝任何新產品版本,只要它在您購買之前或購買後一年內發布。 PDFium.NET還提供3種不同的許可包:

  • 單個項目許可是為單個開發者和小團隊在單個項目上工作而設計的。 起價從720美元。
  • 組織許可是為在多個項目上工作的開發團隊設計的。
  • 單個開發者許可是為為多個客戶工作的單個開發者和自由職業者設計的。

您可以訪問PDFium.NET購買頁面查看完整的定價細節。

結論

IronPDF庫是一個易於使用的庫,用於創建PDF文檔而不需要任何複雜的API。內置的chromium引擎允許使用HTML、JS、CSS、JPG、PNG、GIF和SVG等開放標準文檔類型進行像素完美的HTML到PDF轉換。

PDFium.NET SDK是一個.NET類庫,旨在滿足開發者的大多數通用需求,成本非常實惠。使用PDFium.NET SDK,您的應用程序可以如芒刺般顯示和操作PDF文檔。 其特有的Page物件編輯API使得該庫特別強大。

PDFium.NET許可如上所述分為三個版本。 單個項目許可為單個開發者和最多三名開發者提供設施,起價分別為720美元和900美元。 這比IronPDF稍微便宜一些,因為IronPDF的Lite版本起價較低。

IronPDF提供具有競爭力的無限許可價格。相比之下,PDFium.NET有一個企業許可,提供給無限開發者的高價。然而,IronPDF提供了一個專業許可,可由10個開發者使用,價格約為PDFium.NET同等的10個開發者許可的一半。

在上面的例子中,您已經看到IronPDF使用比PDFium.NET更少的代碼行創建和修改PDF文檔。 這有助於減輕開發者的工作量,使他們能夠提高生產力。IronPDF提供多種方法將幾乎所有格式轉換為PDF。 相反,PDFium.NET僅提供少數方法,如圖像和文本轉換為PDF。

您現在可以以兩個Iron Software產品庫的價格購買所有產品庫。 此外,還有免費試用來測試功能。

請注意PDFium.NET是其各自所有者的註冊商標。 本網站與PDFium.NET無關,也未經其認可或贊助。 所有產品名稱、徽標和品牌均為其各自所有者的財產。 比較僅供信息參考,並反映撰寫時公開可用的信息。

常見問題解答

怎樣在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換為 PDF。此外,您可以使用 RenderHtmlFileAsPdf 方法將 HTML 文件轉換為 PDF。

IronPDF 用於 PDF 處理的主要功能是什麼?

IronPDF 允許開發人員使用 HTML、CSS 和 JavaScript 創建 PDF 文件。 它具有 URL 到 PDF 的轉換、文本和圖形提取、自定義頁眉和頁腳、PDF 合併和分割,與無需 Adobe Acrobat Reader 打印 PDF 的功能。

IronPDF 能夠對 PDF 文件進行數位簽名嗎?

是的,IronPDF 支持數位簽名,允許您使用加密簽名來保護 PDF 文件。

IronPDF 的安裝選項有哪些?

IronPDF 可以通過 Visual Studio、開發者命令提示符,或者通過下載 NuGet 包,或獲取 IronPDF.DLL 庫進行安裝。

IronPDF 提供哪些授權和定價選項?

IronPDF 提供多種授權選項,包括單項目、單開發人員、代理機構和跨國機構的許可證,還提供 SaaS 和 OEM 再分發許可證,並提供 30 天退款保證。

IronPDF 如何提高開發效率?

IronPDF 專為創建和修改 PDF 文件所需代碼行數少於其他庫如 PDFium.NET 設計,提升了開發人員的生產力。

IronPDF 是否支持跨平台 PDF 功能?

是的,IronPDF 支持多個操作系統和框架,使其成為跨平台 PDF 功能的多功能選擇。

使用 IronPDF 勝過其他 PDF 庫的優勢是什麼?

IronPDF 提供易用性、如 HTML 到 PDF 轉換的強大功能集以及具有競爭力的定價,與其他 PDF 庫相比,它是許多開發人員的首選。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。