IRONSOFTWAREHOME

Iron Suite for .NET

10个.NET库。一整套文档。

IRONPDF
IRONWORD
IRONXL
IRONPPT
IRONOCR
IRONBARCODE
IRONQR
IRONPRINT
IRONZIP
IRONWEBSCRAPER
比较

SelectPdf 与 IronPDF:技术比较指南

Curtis Chau
Curtis Chau
Updated: 2026年5月8日

当.NET 开发人员评估用于文档生成和处理的 PDF 库时,ZetPDF 将作为基于 PDFSharp 基础的商业授权选项出现。 然而,其固有的架构和局限性为构建现代应用程序的团队提出了重要的考虑因素。 本技术比较将ZetPDF与IronPDF一起进行研究,以帮助架构师和开发人员了解在渲染技术、API 设计和功能完整性方面的根本差异。

了解 ZetPDF

ZetPDF 是一个获得商业许可的 PDF 库,设计用于在 C# 应用程序中处理 PDF 文件。 建立在广泛使用的开源PDFSharp库的基础上,该库提供了一种强大的解决方案,用于创建、修改和管理PDF文档,并提供商业支持和许可选项。

作为基于PDFSharp的库,它继承了其基础的能力和限制:

  • **PDFSharp基金会:**利用PDFSharp的核心功能进行商业授权 -**基于坐标的API:**需要手动使用精确坐标定位元素 -**商业支持:**通过商业许可提供优先支持 -**灵活的许可模式:**提供开发者、项目或 OEM 许可模式 -**继承的限制:**继承了 PDFSharp 的一些限制,包括有限的 HTML 转 PDF 功能。

PDFSharp 传统

ZetPDF 基于坐标的编程模型迫使开发人员手动定位每个元素:

// ZetPDF: 手册 positioning with coordinates
graphics.DrawString("Name:", font, brush, new XPoint(50, 100));
graphics.DrawString("John Doe", font, brush, new XPoint(100, 100));
graphics.DrawString("Address:", font, brush, new XPoint(50, 120));
graphics.DrawString("123 Main St", font, brush, new XPoint(100, 120));
// ... hundreds of lines for a simple form

对于需要适应不同内容长度或需要响应式设计模式的文档布局,这种方法可能会变得复杂。

了解IronPDF

IronPDF 采用了一种根本不同的方法,它使用基于 Chromium 的技术来提供 HTML 到 PDF 的转换,并完全支持 Web 标准。 IronPDF不是基于坐标的图形编程,而是让开发人员能够使用熟悉的 HTML 和 CSS 来创建文档。

主要特点包括

  • **Chromium渲染引擎:**采用现代浏览器技术,实现精确的HTML/CSS渲染 -**基于HTML/CSS的设计:**运用网页开发技能进行文档布局 -**完全支持 JavaScript:**使用 ES2024JavaScript渲染动态网页内容 -**自动布局:**内容自然流畅,无需手动计算坐标 -**高级 PDF 功能:**内置支持水印、页眉/页脚、合并等功能

功能对比

下表根据ZetPDF和IronPDF的架构方法重点介绍了它们之间的主要区别:

特征ZetPDFIronPDF
基于 PDFSharp
HTML-PDF 转换有限的是(完全 Chromium 渲染)
商业许可是,永久
开源基金会PDFSharp(MIT 许可)基于 Chromium
与 PDFSharp 的区别有限的完整的 HTML 到 PDF 的独特功能
简单易用缓和高的
支持 PDF 注释
文本提取标准高级
水印支持

详细功能对比

特征ZetPDFIronPDF
内容创建
HTML 至 PDF有限的
URL 至 PDF有限的
CSS 支持完整的 CSS3
JavaScript完整的 ES2024
布局
自动排版
自动分页
表格手工绘图HTML <table>
图片手动放置<img> 标记
PDF操作
页眉/页脚手册HTML/CSS
水印手册代码内置
合并 PDF
拆分 PDF有限的
数字签名
PDF/A
开发
跨平台

API 架构差异

ZetPDF 和IronPDF之间的 API 模式揭示了围绕 PDF 生成的不同设计理念。

ZetPDFHtmlToPdfConverter 模式

该库提供了一个 HtmlToPdfConverter 类用于将HTML转换为PDF:

//ZetPDF— download from zetpdf.com
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        converter.ConvertHtmlToPdf(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}

ConvertHtmlToPdf 方法接收HTML内容和输出文件路径,直接将结果写入硬盘。

IronPDFChromePdfRenderer 模式

IronPDF 使用基于 Chromium 的渲染的 ChromePdfRenderer 类:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully");
    }
}

ChromePdfRenderer 返回一个 PdfDocument 对象,该对象在保存前提供额外的操作能力。 有关全面的 HTML 转换指导,请参阅 HTML 转 PDF 教程

将 URL 转换为 PDF.

将实时网页转换为 PDF 文档展示了每个库的网页渲染方法的功能。

ZetPDF实现

该库还通过其 HtmlToPdfConverter 类处理URL转换:

//ZetPDF— download from zetpdf.com
using ZetPDF;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        converter.ConvertUrlToPdf(url, "webpage.pdf");
        Console.WriteLine("PDF from URL created successfully");
    }
}

IronPDF的实现

IronPDF 使用 Chromium 提供专用 URL 渲染:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("PDF from URL created successfully");
    }
}

RenderUrlAsPdf 方法利用 Chromium 的渲染引擎,以完整的JavaScript执行和现代 CSS 支持处理网页,产生与用户在现代浏览器中看到的内容相匹配的输出。

PDF 合并操作

合并多个 PDF 文档是文档装配工作流程的常见要求。

ZetPDF合并模式

该库提供了一个 PdfMerger 类用于合并文档:

//ZetPDF— download from zetpdf.com
using ZetPDF;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        var files = new List<string> { "document1.pdf", "document2.pdf" };
        merger.MergeFiles(files, "merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}

MergeFiles 方法接受文件路径列表和输出路径,直接将合并结果写入硬盘。

IronPDF静态合并模式

IronPDF 在 PdfDocument 类中提供了一个静态的 Merge 方法:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdfs = new List<PdfDocument>
        {
            PdfDocument.FromFile("document1.pdf"),
            PdfDocument.FromFile("document2.pdf")
        };
        var merged = PdfDocument.Merge(pdfs);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully");
    }
}

PdfDocument.Merge 方法 返回一个 PdfDocument 对象,使得在保存前可以进行如水印、安全设置或元数据修改等额外操作。

API 映射参考

正在评估从ZetPDF向IronPDF过渡的团队会发现此映射有助于理解概念等同:

ZetPDFIronPDF
new HtmlToPdfConverter()new ChromePdfRenderer()
converter.ConvertHtmlToPdf()renderer.RenderHtmlAsPdf()
converter.ConvertUrlToPdf()renderer.RenderUrlAsPdf()
new PdfMerger()PdfDocument.Merge()
merger.MergeFiles()PdfDocument.Merge(list)
new PdfDocument()new ChromePdfRenderer()
document.AddPage()自动翻译
XGraphics.FromPdfPage(page)不适用
graphics.DrawString()HTML 文本元素
graphics.DrawImage()<img> 标记
graphics.DrawLine()CSS 边框
graphics.DrawRectangle()CSS border + div
new XFont()CSS font-family
XBrushes.BlackCSS color
document.Save()pdf.SaveAs()
PdfReader.Open()PdfDocument.FromFile()

基于坐标的设计与基于 HTML 的设计

ZetPDF 和IronPDF在架构上的根本区别在于它们的文档布局方法。

ZetPDF图形编程

ZetPDF 的 PDFSharp 基础需要基于坐标的定位:

using ZetPdf;
using ZetPdf.Drawing;

var document = new PdfDocument();
var page = document.AddPage();
var graphics = XGraphics.FromPdfPage(page);
var titleFont = new XFont("Arial", 24, XFontStyle.Bold);
var bodyFont = new XFont("Arial", 12);

graphics.DrawString("Company Report", titleFont, XBrushes.Navy,
    new XPoint(50, 50));
graphics.DrawString("This is the introduction paragraph.", bodyFont, XBrushes.Black,
    new XPoint(50, 80));
graphics.DrawString("Generated: " + DateTime.Now.ToString(), bodyFont, XBrushes.Gray,
    new XPoint(50, 100));

document.Save("report.pdf");

这种方法需要创建字体对象和笔刷对象,并为每个元素指定精确的 X、Y 坐标。

IronPDFHTML/CSS设计

IronPDF 使用熟悉的网络技术:

using IronPdf;

var html = $@"
<html>
<head>
    <style>
        body {{font-family: Arial, sans-serif; padding: 50px;}}
        h1 {{color: navy;}}
        .date {{color: gray;}}
    </style>
</head>
<body>
    <h1>Company Report</h1>
    <p>This is the introduction paragraph.</p>
    <p class='date'>Generated: {DateTime.Now}</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
C#

HTML 自动处理布局--CSS 提供样式,无需字体对象管理,内容在页面间自然流动。

团队何时考虑从ZetPDF迁移到 IronPDF?

有几种情况通常会促使开发团队将IronPDF作为ZetPDF的替代品进行评估:

现代网络内容要求

构建从基于网络的模板、仪表盘或报告生成 PDF 的应用程序的团队会发现基于坐标的方法非常有限。IronPDF的 Chromium 引擎可渲染基于坐标的库无法完全支持的现代 CSS 网格、Flexbox 和JavaScript驱动的内容。

HTML/CSS开发人员技能

具有较强网络开发技能的团队会发现基于坐标的 PDF 生成的学习曲线非常陡峭。HTML 和 CSS 是广为人知的技术,使得IronPDF的方法更容易被没有专业 PDF 或图形编程知识的开发人员所接受。

降低代码复杂性

基于坐标的应用程序接口会产生冗长的代码,随着文档布局的不断变化而难以维护。 一个简单的报告在ZetPDF可能需要几十个 DrawString 和坐标计算,而在IronPDF中只需几行HTML/CSS。

自动分页和布局

该库需要手动跟踪Y轴位置,并在内容超出页面边界时显式创建页面。IronPDF可根据 CSS 规则和内容流自动处理分页符:

//IronPDF- automatic page breaks
var html = @"
<div>Page 1 content</div>
<div style='page-break-after: always;'></div>
<div>Page 2 content</div>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("multipage.pdf");

高级 PDF 功能

IronPDF 为需要手动实现或使用坐标方法依赖外部工具的功能提供内置支持:

-**数字签名应用加密签名来验证文档的真实性 -水印:**内置基于 HTML 的水印支持

优势和考虑因素

ZetPDF的优势

-**商业支持:**通过商业许可提供优先支持,确保开发人员获得及时的帮助。

  • **PDFSharp 集成:**利用 PDFSharp 的核心功能,这些功能已获得众多 .NET 开发人员的认可。

ZetPDF注意事项

  • 继承的限制: 由于基于PDFSharp,该库继承了底层框架的限制
  • 有限的区分度: 与直接使用PDFSharp相比,商业许可提供的附加价值有限 -**基于坐标的复杂度:**手动定位要求会增加动态文档的代码复杂度

IronPDF的优势

-**完整的 HTML 转 PDF 解决方案:**全面的 HTML 转 PDF 功能,是实现网页转换自动化的必要条件 -**增强渲染:**基于 Chromium 的渲染技术提供更卓越的网页内容处理能力,直接影响输出质量。 -**高级功能:**独特的功能包括 PDF 表单管理、动态水印和数字签名,超越了标准的 PDF 操作。 -**积极开发:**定期更新确保与现代 .NET 版本兼容

.NET兼容性和未来准备情况

这两个库都支持跨平台 .NET 开发。IronPDFfor .NET 保持着定期更新的积极开发态势,确保与 .NET 8、.NET 9 以及包括预计于 2026 年发布的 .NET 10 在内的未来版本兼容。该库的HTML/CSS方法符合现代网络开发实践,充分利用了 .NET 开发人员通过熟悉网络技术已经掌握的技能。

结论

ZetPDF 和IronPDF代表了在 .NET 中生成 PDF 的不同方法。ZetPDF以 PDFSharp 为基础,为熟悉基于坐标的图形编程的开发人员提供了可靠的解决方案。 其商业 License 为投资于 PDFSharp 生态系统的团队提供支持和可靠性。

IronPDF 基于 Chromium 的方法将 PDF 生成视为网页渲染,使开发人员能够使用 HTML、CSS 和 JavaScript,而不是学习基于坐标的图形 API。自动布局、分页符和现代网络标准支持(CSS 网格、Flexbox、ES2024 JavaScript)大大降低了代码的复杂性,同时生成的输出与现代浏览器渲染相匹配。

对于构建生成基于网络的报告、仪表盘或动态文档的应用程序的团队来说,IronPDF 的方法与现代开发实践自然地保持一致。 对于已有 PDFSharp 专业知识或对底层 PDF 控制有特殊要求的团队,ZetPDF 的商业产品可在熟悉的 PDFSharp 基础上提供支持和 License 选项。

选择最终取决于您团队的要求:如果您的 PDF 源自网络内容,或者您更喜欢用HTML/CSS进行文档设计,那么IronPDF将为您带来显著的生产力优势。 如果您要在现有 PDFSharp 技能的基础上进行开发,或者需要ZetPDF提供的特定许可模式,那么该路径可能会满足您的需求。

有关更多实施指导,请浏览 IronPDF 文档和涵盖特定用例和高级功能的 教程

请注意: PDFSharp和ZetPDF是各自所有者的注册商标。 本网站与ZetPDF或empira Software GmbH没有关联、认可或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。
Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户