产品比较

IronPDF与ExpertPDF for .NET的比较

Chipego
奇佩戈-卡琳达
2023年三月12日
分享:

C# 开发人员在读取、写入、创建或在不同文件格式之间转换 PDF 时一直面临着挑战。 不过,随着众多库的出现,这些问题都得到了解决,而且这些库易于集成,使得它们在 C# 应用程序中更加流行和易于使用。

本文旨在比较 .NET Framework 和 .NET Core 开发人员最常用的两个 PDF 库:

  • IronPDF
  • 专家PDF

    这两个库都是 .NET C# 库,提供在 .NET 和 .NET Core 中生成、转换和编辑 PDF 的方法。 主要的问题是决定这些 C# PDF 库中哪个最适合我们的项目。 在本文中,我们将对这两个库进行最全面的比较,突出它们的突出特点,以便您在为项目选择合适的库时做出明智的决定。

    首先,让我们看看这两个库都有哪些功能,然后再进行比较。

IronPDF 图书馆

IronPDF 是一个全面的 .NET PDF 库解决方案,特别适合 C# 开发人员使用。 有了这个库,您就可以用 C# 轻松实现创建优秀 PDF 阅读器或 PDF 查看器所需的所有功能。

IronPDF 拥有一个 .NET Chromium 引擎,可将 HTML 内容渲染为 PDF 文档,使设计或定位 PDF 文件变得更加容易,而无需复杂的 API。它的 HTML 到 PDF 转换器可以使用 HTML5、CSS、JavaScript 和图像创建 .NET PDF 库。 此外,它还能让你轻松编辑 PDF、添加页眉和页脚,以及从 PDF 中提取图像。 此外,它还能让 PDF 文本的阅读变得简单明了。

特点

创建 PDF 文件(HTML 转 PDF)

  • 利用 HTML、CSS 和 JavaScript 创建 PDF 文件
  • 从网站 URL 生成 PDF 文档
  • 使用自定义登录凭据加载网页 URL

无需 Adobe Acrobat Reader 的 PDF 编辑器

  • 填写和读取 PDF 格式的完全可编辑表格数据字段
  • 从 PDF 文件中提取文本和图像
  • 在任何现有页面上标记 HTML 内容
  • 添加 HTML 页眉和页脚
  • 添加注释并对 PDF 文档进行数字签名

操作 PDF 文档

  • 加载和解析现有文件
  • 合并和拆分文件内容
  • 添加水印、文本和资产

从多种文件格式转换

  • 只需三行代码即可转换 ASPX WebForms
  • 将 HTML 转换为 PDF 文件
  • 将图像(PNG、JPG、GIF、TIFF)转换为PDF

保存和打印

  • 以二进制数据或内存流形式保存文件
  • 打印 CSS 媒体类型
  • 将 PDF 文件转化为打印文档对象,无需 Adobe 即可打印

专家PDF

访问ExpertPDF官网获取详细信息,了解更多关于他们的.NET库,该库为开发人员提供即时将HTML转换为PDF的功能。 如果你需要生成 PDF 报告或制作 PDF 阅读器,就不必再使用复杂的报告生成软件了。

ExpertPDF 易于使用,但却是一款功能强大的 PDF 编辑器。 它包含一个高级 HTML 转 PDF 转换器,可在几分钟内将其应用到任何 .NET 应用程序中。 它适用于 .NET Framework、.NET Core、.NET 5 和 .NET 6。

它是一个功能强大的 .NET 库,可帮助您在 .NET Framework 或 .NET Core 应用程序中从任何网页 URL 或原始 HTML 标记、字符串或文件创建 PDF 查看器和文档。

突出特点

重要功能如下:

  • 将 URL 网页转换为 PDF
  • 将 HTML 字符串转换为 PDF
  • 多种输出文件选项
  • 设置页边距和尺寸
  • 设置页眉和页脚
  • 添加自动和自定义分页符
  • 只将网页的特定部分转换为 PDF 格式
  • 在转换为 PDF 时隐藏页面中的特定元素
  • 将多个网页合并为一个 PDF 文件
  • 将需要验证的网页转换为 PDF 文件
  • 选择用于渲染的 CSS 媒体类型(屏幕或打印)
  • 书签支持
  • 数字签名支持
  • 检索 PDF 中 HTML 元素的位置
  • 支持最新的 HTML5/CSS3
  • 支持开放式字体和真字体等网络字体
  • 文件类型转换:

    • PDF 文本转换器

    • HTML 至 PDF 转换器

    • HTML 至图像转换器

    • PDF 至图像转换器

    • RTF 至 PDF 转换器

    文章的其余部分将涉及以下主题:

  1. 创建控制台项目

  2. IronPDF 安装

  3. 安装 ExpertPDF

  4. 从 URL 创建 PDF

  5. 从 HTML 输入字符串创建 PDF

  6. 将多个 PDF 合并为一个 PDF

  7. 将图像转换为 PDF

  8. 许可和定价

  9. 结论

1.创建控制台项目

按照步骤使用 Visual Studio 2022 用 C# 创建一个控制台应用程序:

  • 打开 Visual Studio 2022,点击创建新项目

    IronPDF与ExpertPDF for .NET的比较:图1:Visual Studio

    Visual Studio 2022

  • 选择 C# 控制台应用程序,然后单击下一步

    IronPDF 与 ExpertPDF for .NET 的比较:图2:新建项目对话框

    新建项目对话框

  • 在下一个屏幕中,键入项目名称,然后点击下一步

    IronPDF与ExpertPDF for .NET的比较:图3:网络表格

    网络表格

  • 为您的应用程序选择 .NET Framework。 我们将使用最新的 6.0 版本。
    IronPDF 与 ExpertPDF for .NET 的比较:图 4:附加信息

    其他信息

    现在我们的控制台项目已经创建,可以测试我们的库了。 不过,我们仍然需要将它们纳入我们的项目。 让我们先安装 IronPDF。

2.IronPDF 安装

下载和安装 IronPDF 库有多种方法。 具体如下

  1. 使用 Visual Studio

  2. 直接下载 NuGet 软件包

  3. 下载 IronPDF .DLL 库

2.1.使用 Visual Studio

Visual Studio 本身提供了 NuGet 包管理器,用于在 C# 项目中安装所有 NuGet 包。 您可以通过

  • 项目菜单工具,或
  • 右键单击解决方案资源管理器中的项目
    IronPDF与ExpertPDF for .NET的比较:图5:解决方案资源管理器

    解决方案资源管理器

    IronPDF 与 ExpertPDF for .NET 的对比:图 6:项目菜单 > 管理 NuGet 包

    项目菜单 > 管理 NuGet 软件包

    选择后,浏览 IronPDF NuGet 软件包并安装,如下图所示:

    IronPDF 与 ExpertPDF for .NET 的比较:图 7:从 NuGet 包安装 IronPDF

    从 NuGet 软件包安装 IronPDF

2.2.直接下载 NuGet 软件包

另一种方法是从 NuGet 网站下载 IronPDF。直接访问 IronPDF NuGet 页面 并下载该软件包。 按照步骤操作:

  • 移动到 NuGet IronPDF Package
  • 选择 "下载软件包
  • 双击下载的软件包
  • 然后安装软件包
  • 重新加载 Visual Studio 并开始使用

2.4.安装 IronPDF:下载库

您也可以直接从IronPDF网站下载IronPDF .DLL文件。 点击下载 IronPDF DLL进行安装。

接下来,按照以下步骤在项目中引用 IronPDF:

  • 右键单击解决方案资源管理器中的解决方案
  • 选择 "参考资料 "选项
  • 浏览 IronPDF.dll 库
  • 点击确定,完成!

    完成! 现在 IronPDF 已安装完毕,可以随时使用。 不过,在此之前,我们先安装 ExpertPDF 进行比较。

3.安装 ExpertPDF

下载和安装 ExpertPDF Library 有两种方法:

  • 为 .NET Framework、.NET Core、.NET 5、.NET 6 使用 Visual Studio NuGet 包管理器
  • 下载程序集(旧版.NET Framework)

    我们将使用新的 .NET Framework,因此将使用 NuGet 软件包管理器安装 ExpertPDF。

3.1.使用 Visual Studio NuGet 软件包管理器

与 IronPDF 一样,您也可以通过以下方式访问 NuGet 包管理器:

  • 项目菜单工具
  • 右键单击解决方案资源管理器中的项目
    IronPDF与ExpertPDF for .NET对比:图8:解决方案资源管理器

    解决方案资源管理器

    IronPDF和ExpertPDF for .NET对比:图9:项目菜单 > 管理NuGet包

    项目菜单 > 管理 NuGet 软件包

    选择后,浏览 ExpertPDF NuGet 软件包并安装,如下图所示:

    IronPDF与ExpertPDF for .NET的比较:图10:ExpertPDF包

    ExpertPDF 软件包

    注意:ExpertPDF 仅支持 Windows 操作系统。

4.从 URL 创建 PDF

这两个库都能将 HTML 标记转换为 PDF。 现在,让我们逐一看看每个库的 C# 代码。

4.1.使用 IronPDF 将 URL 转换为 PDF

IronPDF 将现有 URL 中的 HTML 呈现为 PDF 时非常简单直接。 它对 CSS、JavaScript、图像和表单的支持程度非常高。

以下代码示例可直接从网站 URL 创建 PDF。

using IronPdf;

ChromePdfRenderer Renderer = new ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
 
Pdf.SaveAs("url.pdf");
using IronPdf;

ChromePdfRenderer Renderer = new ChromePdfRenderer();
var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
 
Pdf.SaveAs("url.pdf");
Imports IronPdf

Private Renderer As New ChromePdfRenderer()
Private Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")
'
Pdf.SaveAs("url.pdf")
$vbLabelText   $csharpLabel
IronPDF与ExpertPDF for .NET之间的比较:图11:URL转PDF输出

使用 IronPDF 将 URL 转换为 PDF

4.2.使用 ExpertPDF 将 URL 转换为 PDF

ExpertPDF使用savePdfFromUrlToFile方法将URL转换为PDF,该方法快速、安全且高效。 页面的格式将按照实际网络浏览器的格式保存。

using ExpertPdf.HtmlToPdf;

PdfConverter pd = new PdfConverter();
pd.SavePdfFromUrlToFile("https://www.html-to-pdf.net/", "output.pdf");
using ExpertPdf.HtmlToPdf;

PdfConverter pd = new PdfConverter();
pd.SavePdfFromUrlToFile("https://www.html-to-pdf.net/", "output.pdf");
Imports ExpertPdf.HtmlToPdf

Private pd As New PdfConverter()
pd.SavePdfFromUrlToFile("https://www.html-to-pdf.net/", "output.pdf")
$vbLabelText   $csharpLabel
A Comparison between IronPDF and ExpertPDF for .NET: Figure 12:  使用 ExpertPDF 将 URL 转换为 PDF Output

使用 ExpertPDF 将 URL 转换为 PDF

5.从 HTML 输入字符串创建 PDF

IronPDF 和 Expert PDF 都提供了从包含 HTML 的标记字符串创建 PDF 的功能。

5.1.使用 IronPDF 输入 HTML 字符串

以下代码片段演示了如何使用 HTML 输入字符串渲染 PDF 文档图像。

using IronPdf;

var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").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 
var PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
PDF.SaveAs("html-with-assets.pdf");
using IronPdf;

var Renderer = new ChromePdfRenderer();
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").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 
var PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
PDF.SaveAs("html-with-assets.pdf");
Imports IronPdf

Private Renderer = New ChromePdfRenderer()
Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>").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 PDF = Renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
PDF.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

5.2.使用专家 PDF 输入 HTML 字符串

ExpertPDF HTML To PDF 转换器支持从 HTML 字符串到 PDF 的转换。 代码简单,不言自明,如 URL 到 PDF:

using ExpertPdf.HtmlToPdf;

PdfConverter pd = new PdfConverter();

pd.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf");
using ExpertPdf.HtmlToPdf;

PdfConverter pd = new PdfConverter();

pd.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf");
Imports ExpertPdf.HtmlToPdf

Private pd As New PdfConverter()

pd.SavePdfFromHtmlStringToFile("<h1>PDF using Expert PDF</h1>", "html-to-pdf.pdf")
$vbLabelText   $csharpLabel

第一个参数是实际的 HTML 字符串,第二个参数是保存扫描文档的文件名。

6.将多个 PDF 文件合并为一个 PDF 文件

IronPDF 和 ExpertPDF 都提供将多个 PDF 文件合并为一个 PDF 文件的功能。该功能对于整合分散的数据并更高效地通过互联网发送非常有用。

6.1.使用 IronPDF 进行合并

以下代码渲染了两个由不同HTML字符串创建的PDF,然后使用Merge方法合并它们。 只需一行代码,使用非常简单。 在渲染 PDF 时,还可以在 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 ChromePdfRenderer();

var pdfdoc_a = renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = renderer.RenderHtmlAsPdf(html_b);
var merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b);

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 ChromePdfRenderer();

var pdfdoc_a = renderer.RenderHtmlAsPdf(html_a);
var pdfdoc_b = renderer.RenderHtmlAsPdf(html_b);
var merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b);

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 ChromePdfRenderer()

Private pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
Private pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
Private merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b)

merged.SaveAs("Merged.pdf")
$vbLabelText   $csharpLabel

Merge方法还具有一个重载,可以以Enumerable对象的形式接受多个文档。 您可以在此IronPDF 合并 PDF 的代码示例中查看其用法示例。

请注意,如果合并的 PDF 文件包含可编辑的表单,生成的 PDF 表单字段的名称将附加索引编号。

6.2.使用 ExpertPDF 进行合并

ExpertPDF 使用合并 PDF 组件来完成这项任务。 必须通过 NuGet 软件包管理器安装才能使用。 有一个AppendPDFFile方法,可以将PDF文件附加到PDFMerge类对象。 合并之前由 ExpertPDF 创建的两个 PDF 文件的代码如下:

using ExpertPdf.MergePdf;

PDFMerge pDF = new PDFMerge();
pDF.AppendPDFFile("output.pdf");
pDF.AppendPDFFile("html-to-pdf.pdf");
pDF.SaveMergedPDFToFile("merged.pdf");
using ExpertPdf.MergePdf;

PDFMerge pDF = new PDFMerge();
pDF.AppendPDFFile("output.pdf");
pDF.AppendPDFFile("html-to-pdf.pdf");
pDF.SaveMergedPDFToFile("merged.pdf");
Imports ExpertPdf.MergePdf

Private pDF As New PDFMerge()
pDF.AppendPDFFile("output.pdf")
pDF.AppendPDFFile("html-to-pdf.pdf")
pDF.SaveMergedPDFToFile("merged.pdf")
$vbLabelText   $csharpLabel

7.将图像转换为 PDF

IronPDF 能够将各种图像转换为 PDF 文件,而 ExpertPDF 则不提供此功能。 不过,ExpertPDF 可以从 PDF 文件中提取图像,还可以将 PDF 文件转换为图像,IronPDF 也提供了这一功能。

7.1.使用 IronPDF 将图像转换为 PDF

在IronPDF中,可以使用ImageToPdfConverter类轻松地从一张或多张图像创建PDF文档。 您可以从应用程序中的任意文件夹加载图像。

// One or more images as IEnumerable.  This example selects all JPEG images in a specific folder.
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\assets").Where(f => f.EndsWith(".jpg") 
 f.EndsWith(".jpeg"));

// Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\composite.pdf");

//Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
// One or more images as IEnumerable.  This example selects all JPEG images in a specific folder.
var ImageFiles = System.IO.Directory.EnumerateFiles(@"C:\project\assets").Where(f => f.EndsWith(".jpg") 
 f.EndsWith(".jpeg"));

// Convert the images to a PDF and save it.
ImageToPdfConverter.ImageToPdf(ImageFiles).SaveAs(@"C:\project\composite.pdf");

//Also see PdfDocument.RasterizeToImageFiles() method to flatten a PDF to images or thumbnails
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

除了能将各种图像转换为 PDF 文件外,IronPDF 还能将扫描文件、纸质文件和商业文件转换为单独的图像。 它还可以从这些类型的文件中提取图像。

8.许可和定价

IronPDF 是一个完全开放的商业 C# PDF 库,可以在 IronPDF 网站上获取。它对私人开发免费,并且可以随时获得商业用途的许可。 提供多种许可证,适用于单个项目、单个或多个开发人员、代理机构和全球公司。 它还支持 SaaS 和 OEM 再分发。

IronPDF与ExpertPDF for .NET的比较:图13:IronPDF许可证

IronPDF 许可选项

所有许可证均提供 30 天退款保证,以及一年的支持和产品更新。 许可证是永久性的,这意味着只需一次性购买,无需支付额外费用。 针对单个开发人员和单个项目的Lite套件起价为$749。

ExpertPDF 提供按开发人员或公司购买许可证。 您可以免费试用ExpertPDF。 您可以从下图中查看许可证功能列表。

IronPDF 与 ExpertPDF for .NET 的比较:图 14:ExpertPDF 许可证

ExpertPDF 许可选项

ExpertComponents Toolkit Total 开发者许可证起价为 $850,而 ExpertPDF Toolkit 起价为 $750。您也可以购买单个组件。 ExpertPDF的完整价格列表可以在网站上查看。

9.结论

IronPDF 可在本地将 HTML 转换为 PDF,因此无需互联网连接。 实际上,它隐含地启动了一个真正符合标准的网络浏览器对象。 HTML 渲染完全准确,采用矢量格式,适合最高标准的商业印刷。 输出干净整洁,生成高质量的 PDF 文件。 它可以授权用于商业用途,所有价格都在网站上列出,没有任何隐藏费用。

ExpertPDF的HTML-to-PDF转换器库是一款多功能工具,可以将网页和HTML代码转换为PDF文档,从ASP.NET网页生成PDF报告,甚至可以用电子签名签署合同。 它可以免费使用,但也可以获得额外功能的许可。

虽然这两个库都能处理 PDF 文件并转换流行格式,但 IronPDF 与 ExpertPDF 相比有一些优势。 IronPDF 提供更广泛的格式转换,包括 XML、图像和 AngularJS,以及更强大的生成、格式化和编辑 PDF 的功能。 IronPDF 是一种省时的解决方案,推荐给追求高效的务实开发人员。

ExpertPDF 有独立的组件,必须单独安装,而 IronPDF 是一个完整的软件,所有功能都集中在一处。 对于只需要单一组件的项目,如 HTML 到 PDF 的转换,ExpertPDF 可能是一个不错的选择。 IronPDF 的软件包提供终身许可,无需持续费用,而 ExpertPDF 则需要续费。

Chipego
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
使用 Itextsharp 添加数字签名到 PDF 在 C# 中
下一步 >
带有 IronPDF 的产品比较