在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
本文由Jeff Fritz撰写,他是.NET开发领域备受认可的权威。
在本文中,Jeff 评审并比较了 IronPDF 库与另外三个领先的 C#.NET PDF 库:Aspose、SyncFusion 和 iTextPdf。
我正在调查与三款面向开发人员的商业 PDF 管理产品交互的整个开发人员体验,并将它们与 IronPDF 的体验进行比较。 我们将在以下方面对每个产品进行比较和评分:
发现和获取经验
许可清晰度
兼容性
入门体验
API的易用性对于C#开发者
文档质量,包括代码示例和教程
HTML 转 PDF 功能
CSS3 符合性
HTML 5 兼容性
JavaScript 兼容性
生成表单支持
技术支持
发布节奏和功能开发
我们将以工具的最终评分卡作为总结。
开发者可以从众多PDF产品中进行选择。 他们如何区分产品并为自己的项目选择合适的产品? C# 开发人员在研究软件工具时主要从三个方面入手:搜索引擎、GitHub 和 NuGet。 我们将在私人搜索引擎 DuckDuckGo 上搜索 "PDF 软件 C#",并在 GitHub 以及 NuGet.org 上查找这些 PDF 工具。 NuGet 是 .NET 软件包库。
注意:我将搜索限制在每个服务的前100个结果,并且无法在DuckDuckGo上找到IronPDF's GitHub存储库以及iText网站。 SyncFusion 没有包含 PDF 创建示例的 GitHub 存储库。
每种产品在其网站上获取产品的方式各不相同。
IronPDF 在主页上通过一个下载按钮清楚地展示出来
图 1- IronPDF 下载发现
下载按钮指向 NuGet.org 和标准 .NET 软件包安装说明。
Aspose 在首页有一个点击链接,您必须选择一种语言,然后您将看到有关该版本产品的详细信息以及一个下载按钮。
图 2 - Aspose.PDF 语言选择器
图 3 - Aspose.PDF C# 下载发现
Aspose 然后会提示您下载包含 NuGet 指南和几段促销材料的工具页面
图 4 - Aspose 下载页面
SyncFusion 将其 PDF 管理库归入“文档处理 - PDF”类别。 他们的子网站如下所示:
图 5 - SyncFusion PDF 发现
然后,您必须填写一份表格,在他们的网站上创建一个账户,并提供电子邮件地址、电话号码和公司名称。 SyncFusion 通过短信验证您的电子邮件,然后允许您下载其软件的安装程序。 您也可以从 NuGet 安装试用版软件包,但他们说安装程序提供的是 "完整产品"。 在注册SyncFusion网站后的几天内,我收到了两封电子邮件和两通电话,提供帮助以便开始使用。 电子邮件和电话的语气都很友好,但我觉得电话有点咄咄逼人。
iTextPDF 通过一个产品和一个链接明确表示:
图 7 - iTextPDF 发现
下载屏幕提供三个下载选项,要求注册时提供电话号码、电子邮件、职位和公司名称。
图 7 - iText 下载屏幕
我发现来自iText的选择繁多,让我不确定该下载什么。 我选择了 iText 7,然后进入另一个屏幕,从九个 PDF 相关产品中选择要下载的产品。 再次,我发现这很混乱,让我不确定我的项目需要哪些库和工具。
我收到了来自iText的后续电子邮件,其中包含其客户门户的链接和生成的密码。 我尝试使用提供的凭证通过他们的门户网站进行访问,但无法进入该网站。
在开发者下载的任何库中,授权将决定他们是否以及如何将产品与他们的项目一起使用。 更宽松的许可证将允许将该工具随移动或桌面应用程序一起提供,而更严格的许可证可以限制使用该工具只能在受保护的服务器上运行。
IronPDF 在主页上提供了一个清晰的按钮,位于“Free NuGet Download”按钮旁边,链接到许可条款。 生成的页面非常清楚地显示了涵盖多少开发人员以及产品可以用于多少个项目。 组织拥有办公室的数量有限制。 将软件作为 SaaS 产品或原生应用重新分发需要支付额外的授权费。
Aspose 提供六种不同的许可模式,包括无支持、支持或支持和咨询。 我发现他们的选项相当令人困惑,因为还限制了可以使用该产品的项目类型、获得许可的开发人员数量以及组织的规模。
面向公众的网站项目,包括支持:
Inclusion | IronPDF | Syncfusion | AsposePDF | iText |
---|---|---|---|---|
1 website, 1 developer, 1 location, Support | $749 | $2,495 | $5,394 | |
10 websites, 10 developers, 10 locations, Support | $1,999 | $13,990 | $28,771 | |
Unlimited websites, Support | $3,999 | N/A | $25,785+ (per year) |
图 8 - Aspose 许可模型
SyncFusion的文件格式产品一次性收费,包含对所有.NET应用程序类型的支持。费用按每位开发人员收取,在合同的第二年会有费率折扣。 翻译不受组织规模或产品使用项目数量的限制。 他们还为初创公司提供免费的社区许可证。
图 9 - SyncFusion 许可
iText 有几个开源产品,但他们让人觉得你需要购买许可证才能使用这些产品。
图 10 - iText 开放源码产品
购买商业许可证的选项会导致一个界面,界面上没有立即列出购买选项。 您必须在配置工具中填写有关您的位置、语言、使用量和希望使用的产品的信息。 该工具随后将提供商业许可证的报价。
图 11 - iText 许可证配置工具
如果该产品是开源的,我可以不用任何商业支持选项就这样使用吗? 直到您点击进入他们的iText 7 Community 网站,才会清楚这款软件在 AGPL 许可证下发布,该许可证要求您发布使用其库编写的应用程序的源代码。 这是一个有趣的选择,但可能会让开发人员感到困惑。
在每个产品的不同部署模型中,每个网站承诺不同级别的兼容性。需要进行更多研究以确定与不同托管提供商和托管工具(如Docker)的兼容性。
COM | Yes | |||
.NET Framework | Yes | Yes | Yes | Yes |
.NET 5 | Yes | Yes | Yes | |
.NET 6 | Yes | Yes | Yes | |
.NET Standard | Yes | Yes | Yes | |
Xamarin | Yes | Yes | ||
MAUI | Yes | |||
Azure | Yes | |||
AWS | Yes | Yes | ||
Mac | Yes | |||
Linux | Yes | |||
Docker | Yes |
Aspose 是唯一声称可以与 COM 应用程序协同工作的产品,这通常是开发人员的一个旧式需求。 iText 在其网站上没有列出其支持的平台,而对其 NuGet 包的扫描表明支持所指示的平台。 SyncFusion 列出了对多个用户界面框架的支持,但没有特定的运行时版本。 iText 是除 IronPDF 之外唯一声称支持云服务的产品,并有一个横幅突出显示对 AWS 的支持。
图 12 - AWS 上的 iText 支持
我审查了他们网站上列出的每个产品及其“入门”体验。 这是每个产品的“使用该产品构建您的第一款应用程序”的指南。
我能够使用 NuGet 安装并开始使用 IronPDF 的示例版本,并只用了一行代码。 非常方便,且没有使我的系统变得杂乱。
IronPDF的获取开始页面上的示例可以与使用.NET 6及更早版本的简单控制台或本机应用程序一起使用。 它创建并加载一个新的PDF,其中包含一个简单的“Hello World”文本块,并通过写出文件来完成一个5行代码示例。
样例代码清晰,并且与 .NET 6 / C# 10 格式兼容得很好。 在线代码块有一个 "复制到剪贴板 "按钮,可以快速运行。
该文件被写入项目下的 bin/ 文件夹,作为快速示例,它可以正常工作。 我希望能把它写在我刚写的代码文件旁边,因为有些人可能不知道在 bin/ 文件夹中查找内容。
我必须安装一个大文件,大小为217MB,才能开始在我的系统上使用Aspose库。 这并没有安装任何应用程序,只是将Aspose的库文件放置在磁盘上。
Aspose 的示例位于其文档中的“入门”部分,这使得找到它有些困难。 Aspose 的 Hello World 示例 中的代码示例包含了一些解释代码意图的文字,这些文字与代码中的注释有些重复。
Aspose 示例按照原样无法工作,需要改进。 在我审查他们的产品时,我遇到了以下问题:
我必须下载一个 874MB 的大文件才能开始使用,安装时需要登录 Syncfusion 服务器才能提取和使用库。 安装程序创建了一个“控制面板”应用程序,让我可以在磁盘上浏览多个演示。
图 13 - SyncFusion 控制面板应用程序
SyncFusion 的演示位于其产品页面中段,地址为 Syncfusion's PDF Framework for .NET,背景为蓝色,上面有浅蓝色文字。 根据Lighthouse的说法,这是低对比度,对一些用户来说不可访问。
我将Syncfusion代码粘贴到Visual Studio中,但无法让Visual Studio为演示代码中提到的对象生成合适的“using语句”。 事实上,当我让Visual Studio尝试定位并生成一个using声明时,它建议我安装一个竞争对手的包:
图 14 - Visual Studio 建议我安装 iTextSharp 以使用 SyncFusion
SyncFusion 示例的代码在屏幕上展示时没有任何作用。 演示代码将PDF写入MemoryStream,这是一个在内存中管理文件内容的对象。 我修改了代码以便将数据写入磁盘上的文件中,并且它正确地生成了一个包含“Hello World”的文件。
iText 演示是在其产品主页中间的一个清晰的代码编辑器中编写的。 iText 7 Community 与其他演示不同,iText 包含了一个链接,可以查看此代码生成的 PDF。
我被要求从他们的客户门户网站下载一个安装包,注册一天后,我在凌晨 5 点收到了一封电子邮件,上面有注册说明。凭据不起作用,我转而下载并安装了 NuGet 上提供的社区软件包。
提供的iText7示例代码按原样无法运行。 这段代码还缺少一些使用语句,但一旦添加了这些语句,应用程序就会生成 PDF 文件并将其写入项目的 bin/ 文件夹。
此审查部分研究开发者将与库进行的API和互动。 这些工具中的每一个都有几种创建和与PDF文档交互的方式。 让我们来看看每一个。
产品的文档将决定其在开发者中的长期成败。 当他们深入研究并需要更高级的功能时,他们能多快找到相关材料?是否提供了有助于教授这些概念的样本?
在这些产品中的每一个中,我搜索了它们的API文档,以寻找向PDF添加数字签名的功能。
API文档清晰且结构良好,左侧面板有目录,带有实时过滤功能。 右上方的搜索框还包括一个实时过滤器,可以快速返回几篇关于提供签名功能的各种组件的文章。 API 网站具有浅色和深色模式,这是开发者喜欢的一个好功能。
图 15 - IronPDF API 对签名的搜索结果
PdfSignature
类文档描述了该对象,但不包含任何示例代码的链接。 我在ironpdf.com网站上搜索了“signature”,并找到了在IronPDF Digitally Sign a PDF Example中引用PdfSignature
对象的示例代码。
Aspose API 文档在我搜索签名时将我链接到了它们的 PdfFileSignature 类。 此页面与IronPDF的页面一样,显示了PdfFileSignature
类的详细信息,但不包括任何演示链接或描述如何使用该类。
我返回到 Aspose PDF for .NET 文档 的Aspose文档基础页面,并搜索了签名。 然后,我看到了一系列相关的文章,并点击进入了Aspose 在 PDF 中添加签名 文章。
SyncFusion 的 PDF 文件格式产品的基本文档页面在 Syncfusion PDF File Formats Overview,需要通过他们的网站点击几次才能找到。 我不需要远赴而去,因为文档的首页就有那个签名样本。
SyncFusion 网站上没有支持数字签名功能的 API 文档。
iText 的 API 文档非常详尽,是从每个发布版本生成的。 这是您在互联网上其他库中常见的标准外观和感觉。 在搜索签名时发现了一些围绕这些功能进行了精彩描述的类,但同样没有样本链接。
我在 iText 网站上搜索 Signature 样本,但没有找到,只看到几篇宣布新合作关系的博客文章。
每种工具提供的 API 都具有很强的描述性,而且每种工具都采用了自己的方法,让开发人员能够完全访问 PDF 文档内容的创建和管理。 幸运的是,所有的框架都提供了完整的自动完成提示,当你在像 Visual Studio 或 Visual Studio Code 这样的现代代码编辑器中使用它们的工具时,可以提供出色的行内文档。
IronPDF API 通过 "RenderHtmlAsPdf "这样的简化命令,使非常困难和复杂的交互变得简单易行,但仍可深入访问文档的内容创建和放置、安全性、元数据和表单。 作为开发者,这些API“对我思考内容渲染的方式来说很有吸引力”。
IronPDF API 使用的名称和术语清楚表明您正在渲染文档或构建文档。 有些设置中的时间属性是表示毫秒的整数,我更希望使用本地 TimeSpan 类型。 最后,我希望能够提供具有现代流畅配置API的设置和选项类型,如下所示:
var Renderer = new IronPdf.ChromePdfRenderer(options => {
RenderDelay = TimeSpan.FromSeconds(1)
});
var Renderer = new IronPdf.ChromePdfRenderer(options => {
RenderDelay = TimeSpan.FromSeconds(1)
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
SyncFusion API 明确且提供了非常详细的控制,指导如何与它们的转换工具进行互动。 这里没有捷径,一切都是必需的,您必须告诉它您正在使用哪些工具,没有默认可用。 设置非常详细,对包括磁盘上WebKit渲染器位置在内的所有内容都有细致的控制。
这种额外的配置虽然在某些安装中不需要,但过去曾为人们带来问题,SyncFusion 承诺在未来版本中不会再是问题。
Aspose API 非常冗长,这让我怀疑他们是否真的在尽力提高开发者的工作效率。 从网站加载文档所需的配置量令人惊讶,十行代码或是SyncFusion(五行)的两倍。
例如,Aspose没有API让您指定一个URL来获取并转换。
iText 的 API 与 Aspose 类似,非常冗长,允许直接交互,可将不同的数据类型写入文档,但不清楚如何创建文档的部分。 由于API的明确性以及文档的低质量,使用iText进行工作至少可以说是困难的。
接下来,我想测试一下每种工具在将 HTML 内容转换为 PDF 时的渲染能力和速度。 我编写了一些代码,可以从Jeff的用于PDF比较的GitHub存储库中获取,您可以查看以了解更多关于我如何执行每个测试的信息。 我还在那里存储了每个结果 PDF 的副本供您查看。 我将测试每个产品的:
参考网站非常简单,没有CSS,只有文本、链接和图片。
图 16 - 静态网页测试参考网站
这只是简单的三行代码执行,性能看起来不错,为 835ms。 然而,当我打开 PDF 文件时,我发现所有的图片都没有包含在渲染中,默认配置的结果令人失望。
经过一番探索,我了解到可以添加渲染延迟,有了这个配置,我就能渲染出包含页面上适当图像的 PDF。
在该工具的测试版本中,渲染的PDF中包含了一个水印。 在完全授权版本中,不存在此水印。
图 17 - IronPDF 静态网站渲染图
SyncFusion 是一次奇怪且令人困惑的旅程。他们的文档提到了多种不同的方法来渲染和传递 HTML 和 PDF,这些方法有不同的版本号和不同的框架,需要不同的代码和配置,以及需要安装二进制工具才能正常工作。
就像IronPDF演示一样,SyncFusion没有为页面渲染图像,并输出了一个边距非常小的PDF。
在该工具的测试版本中,渲染的PDF中包含了一个水印。 在完全授权版本中,不存在此水印。
图 18 - 静态网站的 SyncFusion 渲染。
Aspose对于如何使用他们的工具有一套非常清晰的指示。 然而,根据他们网站上关于将网站转换为PDF的说明,他们有一个严重的漏洞导致该功能无法正常工作。 此外,他们的将网站转换为PDF的在线工具不再运作。
iText 的文档并不容易找到,我们不得不阅读一本电子书来获取我们想要的示例代码,以运行这个示例。 我们没有修改代码,没有额外的配置,只用了四行代码,就完成了一份没有水印、页边空白、非常美观的 PDF 文件。
图 19 - iText 静态网站渲染。
Tool Used | Speed in milliseconds (lower is better) |
---|---|
IronPDF | 835ms |
SyncFusion | 1799ms |
Aspose | N/A |
iText | 2975ms |
对于这个测试,我们使用的是ESPN.com,这是一个包含大量CSS、图片和JavaScript的体育网站。 鉴于Aspose在简单测试中无法正常工作,我们将在未来跳过它们。 我们将使用上次演示中使用的相同代码来创建这些捕获,只需替换网站地址。
以下是本次测试时 ESPN 的外观,以供参考:
图 20 - ESPN.com 在浏览器中的完整呈现
顶部的分数和屏幕中间的游戏状态报告使用 JavaScript 放置,所有定位和颜色均使用 CSS3 处理。
IronPDF 的渲染能够忠实地复制和加载动态内容,但是,页面看起来好像是为移动设备渲染的,内容元素被分割成不同的部分并平铺在一起。
图 21 - ESPN 的 IronPDF 渲染图
SyncFusion 使用“移动风格”的渲染方式,内容垂直平铺。 然而,我们丢失了几张由ESPN网站动态加载的图片,一些字体格式也丢失了:
图 22 - ESPN 的 SyncFusion 渲染图
在此测试中,iText 无法运行并抛出了 NullReferenceException,导致它无法尝试渲染网站。
Tool Used | Speed in milliseconds (lower is better) |
---|---|
IronPDF | 835ms |
SyncFusion | 1799ms |
Aspose | N/A |
iText | 2975ms |
最终测试是基于网站生成一个带有表单输入字段的PDF。我编写的简易通讯注册表单在GitHub仓库中可用,并且在Firefox中使用Bootstrap 5进行渲染,如下所示:
图 23 - Firefox 中的表单网站
注:"州 "是组合框,"电话 "是电话字段,"电子邮件 "是电子邮件字段,"鞋码 "是数字字段。
Iron在这次测试中表现出色,快速渲染出与移动友好布局相似的界面,顶部右侧的汉堡菜单按钮证明了这一点。 测试版本中页面上的水印很烦人,但在完全授权的版本中会被移除。
除了最后的单选按钮和复选框外,所有文本框字段都将呈现为我可以与之交互的 PDF 表单字段。 文本框与浏览器中的文本框一样,没有特定的验证或内容强制。
图 24 - IronPDF 对表格的渲染
SyncFusion渲染出了一个看上去是完整桌面版本的网站,因为页面上没有汉堡菜单按钮。 表单元素显示在屏幕上,看起来像是方块、按钮和框,但它们都不是标凊的PDF数据输入字段。 标题和页脚上的链接虽然被水印遮挡,但仍然可以点击。
图 25 - SyncFusion 渲染的表单网站
iText 是三个框架中渲染内容速度最快的。 然而,速度的提升是有代价的。他们的渲染确实提供了点击后可导航的锚标签,但无法到达原始网站。所有来自bootstrap的格式都丢失了,所有表单字段都被渲染成了普通的框框。
图 26 - iText 渲染的表格网站
Tool Used | Speed in milliseconds (lower is better) |
---|---|
IronPDF | 835ms |
SyncFusion | 1799ms |
Aspose | N/A |
iText | 2975ms |
这些框架中的每一个都有独立的支持能力和发布节奏。 对于一个可行的、正在开发并且不断成长的框架,我们希望看到在线支持可用并且有规律的发布时间表,以更好地支持PDF标准。
从NuGet网站来看,IronPDF 每2到4周发布一次新版本。 提供实时聊天和电子邮件支持选项。 建立一个在线论坛或者Discord / Slack服务器,以便与支持人员和IronPDF社区的其他成员交流,这会是个不错的主意。
根据NuGet,他们每周更新一次 PDF 库。 SyncFusion拥有在线论坛和在线支持票务系统。 SyncFusion没有实时聊天支持选项。
根据NuGet,Aspose.PDF 每月发布一次。 他们提供免费帮助台、付费帮助台和付费咨询服务。 我没有看到任何实时互动或社区互动。
NuGet 报告称,iText 每 2-3 个月更新一次他们的包。 他们唯一提供的支持是通过在线JIRA问题跟踪器和一个“联系我们”表格。 没有可用的实时互动或托管论坛。
在本文档的每个部分,我都对产品进行了排名,其中四个排名最高。
笔记: