IronPDF和PDFium.NET之间的比较
随着技术的进步和互联网使用的增加,数据大多以数字形式发送和接收,主要是 PDF 文件。
在最近的过去,用 C# 处理 PDF 文档对开发人员来说一直是个难题。在许多情况下,开发人员需要在其应用程序中集成 PDF 查看和 PDF 生成功能。 考虑到这一点,我们开发了许多库来帮助完成这些任务和类似任务。
本文将对 .NET 和 .NET Core 开发人员最常用的两个 PDF 库进行比较。 这两个库是:
- IronPDF for .NET 库
- PDFium.NET SDK 库
IronPDF 和 PDFium.NET 可以在 .NET 应用程序中创建、处理和打印 PDF。 出现的问题是:应该使用哪个库? 通过阅读本文,您可以自己做出决定。
首先,让我们来看看这两个库都有哪些功能,然后再进行比较。
PDFium.NET SDK 库及其功能
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 引擎,可以非常轻松地将 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 网络表单转换为可打印的 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 库有不同的方法。 最简单的方法如下:
- 使用 Visual Studio 2.开发人员命令提示符 3.直接下载 NuGet 软件包 4.下载 IronPdf.DLL 库
1.1.使用 Visual Studio
在您的 Visual Studio 项目中,从 "工具 "菜单或在解决方案资源管理器中右键单击您的项目,然后选择 "管理 NuGet 包"。 这两个选项的截图如下所示。


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

1.2.使用开发人员命令提示符。
IronPdf 也可通过开发人员命令提示符下载。 请按照以下步骤操作:
- 从工具菜单中打开 Developer 命令提示符或软件包管理器控制台。
- 键入以下命令:
Install-Package IronPdf
- 按回车键
- 这将下载并安装库
1.3.直接下载 NuGet 软件包。
IronPDF 也可以通过访问 NuGet IronPDF 软件包直接下载。 步骤如下
- 查找下载软件包并点击。
- 软件包将被下载和安装。
1.4.通过下载库安装 IronPdf.
您还可以直接从 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 中提到的 "使用开发人员命令提示符 "步骤,键入以下命令:
Install-Package Pdfium.Net.SDK
- 按回车键。 这将下载并安装库。
3. 创建PDF文档
3.1.使用 IronPDF.
IronPDF 提供多种生成 PDF 文件的方法。 让我们来看两个重要的。
将现有 URL 转换为 PDF.
IronPDF 使使用现有 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");将 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");译文如下:

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);
}译文如下:

如果将 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);输出将是:

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");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);
}
}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"); PDFium.NET 缺乏对 PDF 文档进行数字签名的功能。
6.定价和许可
IronPDF 定价和许可
IronPDF 可免费用于开发简单的应用程序,也可随时授权用于商业用途。它提供单个项目许可证、单个开发人员许可证、机构和跨国组织许可证。 它还提供 SaaS 和 OEM 再分发许可和支持。
所有 IronPDF License 均提供 30 天退款保证,Plus 还提供一年的软件支持和升级服务。 最重要的是,这是一个永久许可证(一次性购买)。 提供 Lite 软件包。 IronPDF产品绝对没有任何经常性费用。 有关可用许可证的更多详细信息,请访问 IronPDF Licensing 页面。

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 文档。 其特殊的页面对象编辑 API 使这个库特别强大。
如上所述,PDFium.NET 许可证有三个版本。 单个项目许可证为单个开发人员和最多三个开发人员提供便利,起价分别为 720 美元和 900 美元。 这款软件比 IronPDF 便宜一些,后者的 Lite 版本起价较低。
IronPDF 提供无限制许可证,价格极具竞争力。相比之下,PDFium.NET 的组织许可证适用于无限数量的开发人员,但价格昂贵。相反,IronPDF 提供的专业 License 可供 10 名开发人员使用,价格约为 PDFium.NET 供 10 名开发人员使用的同等许可证的一半。
在上面的例子中,您已经看到 IronPDF for .NET 与 PDFium.NET 相比,使用更少行的代码创建和修改 PDF 文档。 这有助于减轻开发人员的工作量,提高他们的工作效率。IronPDF 提供多种方法将几乎所有格式转换为 PDF。 相比之下,PDFium.NET 只提供了将图像和文本转换为 PDF 的几种方法。
您现在可以购买 Iron Software 的所有产品库,只需支付两个产品库的价格。 此外,还提供了免费试用以测试功能。
常见问题解答
如何在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库相比,它成为许多开发人员的首选。






