跳至页脚内容
产品比较

IronPDF和PDFium.NET之间的比较

本次比较涵盖了IronPDF和 PDFium.NET SDK 这两个用于 PDF 创建、操作和渲染的 .NET 库,比较内容包括架构、功能范围和许可。 这两个库都可以创建和处理 PDF,但它们的渲染模型和 API 接口有很大不同。

什么是 PDFium.NET?

PDFium.NET 用于创建、修改和查看 PDF(可移植文档格式)文件。 它提供了一个高级 C#/VB.NET API,用于在网络服务器上动态创建 PDF,并在现有的桌面或网络应用程序中实现 Save as 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 引擎,只需三行 C# 代码即可将 HTML 转换为 PDF。 这不需要使用底层坐标 API 来操作 PDF 文件。 它可以处理 HTML 源文件,例如 HTML 文档、JavaScript 文件和 ASPX 网页,并且您可以通过一次方法调用将任何 HTML 字符串直接渲染为 PDF

IronPDF 可以通过自定义页眉和页脚、水印等来定制 PDF。 它还简化了开发人员阅读 PDF 文本和提取图形的过程。

IronPDF for .NET 的突出特点包括:

  • 使用 HTML4/5、CSS 和 JavaScript 创建 PDF 文档
  • 使用自定义网络登录凭证、用户代理、代理服务器、cookie、HTTP 标头和表单变量加载 URL。
  • 以编程方式完成 HTML/PDF 表单字段。
  • 从 PDF 文件中提取文本和图形
  • 用新内容更新 PDF 页面。
  • 在 PDF 文件中添加并自定义页眉和页脚。 -合并和拆分 PDF 文档
  • 将 ASP.NET 网络表单转换为可打印的 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

下表总结了每个库的优势所在,然后再深入探讨代码层面的细节。

特征 IronPDF PDFium.NET
HTML/URL 转 PDF 是的(内置 Chromium 引擎) 不包含
从图像/文本创建 PDF
PDF 合并 是的(支持页面范围选择)
数字签名 不包含
PDF 查看器控件(WinForms/WPF) 不包含
支持 .NET Core / .NET 5+
跨平台(Linux、macOS、Azure) Windows 和 macOS

要测试IronPDF的 HTML 渲染和安全功能是否与 PDFium.NET 在您自己的项目中进行比较,可以使用 30 天免费试用版

文章的其余部分如下:

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 包"。 这两个选项的截图如下所示。

IronPDF 与 PDFium.NET 的比较,图 1:使用
图 2:IronPDF 与 PDFium.NET 的比较:使用解决方案资源管理器访问 NuGet 包管理器

打开 NuGet 软件包管理器后,浏览IronPDF软件包并安装,如下图所示。

IronPDF 与 PDFium.NET 的比较,图 3:使用 NuGet 包管理器安装IronPDF库

1.2.使用开发人员命令提示符。

IronPDF 也可通过开发人员命令提示符下载。 请按照以下步骤操作:

  • 从工具菜单中打开 Developer 命令提示符或软件包管理器控制台
  • 键入以下命令:
Install-Package IronPdf
  • 按回车键
  • 这将下载并安装库

1.3.直接下载 NuGet 软件包。

IronPDF 也可以通过访问 NuGetIronPDF软件包直接下载。 步骤如下

  • 查找下载软件包并点击。
  • 软件包将被下载和安装。

1.4.通过下载库安装 IronPDF.

您还可以直接从IronPDF的软件包页面下载 IronPdf.DLL 文件。

图 4:IronPDF 与 PDFium.NET 的比较:从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。 单击 "在当前项目中安装"。
IronPDF 与 PDFium.NET 的比较,图 5:PDFium.NET 搜索
  • 您也可以使用软件包管理器控制台进行安装。 按照IronPDF中提到的 "使用开发人员命令提示符 "步骤,键入以下命令:
Install-Package Pdfium.Net.SDK
  • 按回车键。 这将下载并安装库。

3. 创建PDF文档

3.1.使用 IronPDF.

IronPDF 提供多种生成 PDF 文件的方法。 让我们来看两个重要的。

将现有 URL 转换为 PDF.

IronPDF 使用其内置的 Chromium 渲染引擎,直接将现有 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");
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");
Imports IronPdf

Dim Renderer As New ChromePdfRenderer()

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

' 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 AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo_square.png'>", "e:\site\assets\")
    AdvancedPDF.SaveAs("html-with-assets.pdf")
End Using
$vbLabelText   $csharpLabel

译文如下:

图 6:IronPDF 与 PDFium.NET 的比较:IronPDF 从 URL 和 HTML 字符串生成 PDF

3.2.使用 PDFium.NET.

PDFium.NET 使用图像和文本对象即时生成 PDF 文档。 它的渲染管道是围绕底层页面合成而不是基于 HTML 的转换构建的,因此 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

译文如下:

IronPDF 与 PDFium.NET 的比较,图 7:PDFium.NET 生成 PDF

对比两种输出方式,IronPDF 的 HTML 渲染方法可以自动处理图像放置——无需手动缩放,并且必要时还可以将独立图像直接转换为 PDF 文档。 PDFium.NET 也能产生类似的结果,但它依赖于显式的图像缩放代码来正确定位内容。 如果我们跳过代码中的以下一行:

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

输出将是:

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

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

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

Dim Renderer As New IronPdf.ChromePdfRenderer()

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

' Merge the documents into one PDF
Dim 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.

如今最重要的功能之一是使用 PFX 证书对 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 As 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 的当前范围内,因此需要此功能的团队需要集成额外的库,或者评估像IronPDF这样将其作为一项主要操作的工具。

6.定价和许可

IronPDF定价和许可

IronPDF 可免费用于开发简单的应用程序,也可随时授权用于商业用途。它提供单个项目许可证、单个开发人员许可证、机构和跨国组织许可证。 它还提供 SaaS 和 OEM 再分发许可和支持。

所有IronPDFLicense 均提供 30 天退款保证,Plus 还提供一年的软件支持和升级服务。 最重要的是,这是一个永久许可证(一次性购买)。 提供 Lite 软件包。 IronPDF产品绝对没有任何经常性费用。 有关可用许可证的更多详细信息,请访问 IronPDF Licensing 页面

A Comparison betweenIronPDFand PDFium.NET, Figure 9:IronPDFLicensing

PDFium.NET定价和许可

PDFium.NET 提供永久许可证。 您可以凭借注册密钥永久使用此受支持的 SDK 版本。 不过,该密钥仅适用于某些特定的 SDK 版本,这取决于许可证的购买或续订日期。 您可以免费安装任何新版本的产品**,前提是该版本是在您购买之前或一年之内发布的**。 PDFium.NET 还提供 3 种不同的许可证包:

  • 单个项目许可证专为从事一个项目的单个开发人员和小型团队设计。 起价 720 美元。
  • 组织许可证专为开发多个项目的开发团队而设计。
  • 单个开发人员许可证适用于为多个客户工作的单个开发人员和自由职业者。

您可以访问 PDFium.NET 购买页面,了解完整的定价详情。

除了许可费用之外,项目总成本还包括开发人员在基于坐标的页面布局、手动图像缩放以及集成数字签名和 HTML 到 PDF 转换等功能所需的单独库上花费的时间。 对于评估多年项目生命周期成本的团队来说,这些集成和维护时间往往会超过两个库标价之间的差额。

你应该选择哪个库?

IronPDF 提供了一个高级 API,可以从头开始创建 PDF 文档,而无需基于坐标的布局代码。 它内置的 Chromium 引擎可以将 HTML、JS、CSS、JPG、PNG、GIF 和 SVG 转换为 PDF,并完全支持 CSS3 和现代布局。

PDFium.NET SDK 是一个 .NET 类库,旨在以合理的价格满足开发人员的大多数常见需求。有了 PDFium.NET SDK,您的应用程序就能轻松显示和处理 PDF 文档。 其特殊的页面对象编辑 API 使这个库特别强大。

如上所述,PDFium.NET 许可证有三个版本。 单个项目许可证为单个开发人员和最多三个开发人员提供便利,起价分别为 720 美元和 900 美元。 这款软件比IronPDF便宜一些,后者的 Lite 版本起价较低。

IronPDF 提供价格极具竞争力的无限量许可证,而 PDFium.NET 则提供更高级别的组织许可证,可供无限数量的开发人员使用。 对于中型团队而言,IronPDF 的专业版许可证最多可供 10 名开发人员使用,价格约为 PDFium.NET 同类产品的一半。

在上面的示例中,与 PDFium.NET 相比,IronPDF 使用更少的代码行创建和修改 PDF 文档——例如,HTML 到 PDF 的转换只需 3 行代码,而 PDFium.NET 基于坐标的方法需要大约 20 行代码才能获得类似的结果。IronPDF提供多种方法,可将 HTML、URL 和 ASPX 页面等格式转换为 PDF。 PDFium.NET 专注于基于图像和文本的合成,这使得开发人员可以更精细地控制页面布局,但对于常见的转换任务需要更多的人工操作。

您现在可以购买 Iron Software 的所有产品库,只需支付两个产品库的价格。 此外,还提供了免费试用以测试功能。

[{i:(PDFium.NET 是其各自所有者的注册商标。 本网站与 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 设计为比其他库(如 PDFium.NET)需要更少的代码行数来创建和修改 PDF 文档,从而提高开发人员的生产力。

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

是的,IronPDF支持各种操作系统和框架,使其成为跨平台PDF功能的多功能选择。

与其他 PDF 库相比,使用 IronPDF 有哪些优点?

IronPDF易于使用,具有强大的HTML到PDF转换等功能,以及竞争力的定价,与其他PDF库相比,它成为许多开发人员的首选。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我