比较
Kaizen.io 与 IronPDF:技术比较指南
已更新:
Kaizen.io HTML 到 PDF与 IronPDF:.NET中的云与本地 PDF 生成
当 .NET 开发人员需要将 HTML 内容转换为 PDF 文档时,他们面临着一个基本的架构选择:是使用Kaizen.io HTML 到 PDF这样的云服务,还是使用IronPDF这样的库实现本地处理? 本比较在关键技术方面对这两种方法进行了研究,以帮助开发人员、架构师和技术决策者选择适合其 PDF 生成工作流的解决方案。
什么是 Kaizen.io HTML-to-PDF? Kaizen.io HTML-to-PDF 是一项基于云的服务,可通过外部 API 调用将 HTML 内容转换为 PDF 文档。 开发人员使用 API 密钥集成服务,向 Kaizen.io 服务器发送 HTML 内容,并接收渲染的 PDF 字节作为响应。 这种方法通过将渲染基础设施卸载到第三方服务来简化部署。 基于云的架构意味着开发人员无需在本地管理渲染引擎或处理资源。<代码>HtmlToPdfConverter转换选项代码>什么是 IronPDF? [IronPDF](https://ironpdf.com/) 是一个本地 C# 库,可完全在您的 .NET 应用程序中处理 PDF 生成。IronPDF不向外部服务器发送数据,而是使用嵌入式 Chromium 渲染引擎在本地将 HTML、CSS 和 JavaScript 转换成 PDF 文档。 [ChromePdfRenderer](https://ironpdf.com/object-reference/api/IronPdf.ChromePdfRenderer.html) 类是转换的主要接口。 开发人员通过 `RenderingOptions` 属性配置呈现行为,然后调用 `RenderHtmlAsPdf()` 或 `RenderUrlAsPdf()` 等方法生成 PDF 文档。 由此产生的 `PdfDocument` 对象提供了直接访问二进制数据、保存文件和其他操作功能。 这种本地处理模式消除了网络依赖性,同时使开发人员能够完全控制渲染配置和数据隐私。 ## 架构比较:云处理与本地处理 Kaizen.io HTML-to-PDF 与IronPDF的根本区别在于 PDF 的渲染位置。 这种架构上的区别会影响性能、隐私、可用性和成本结构。 | 特征 |Kaizen.io HTML 到 PDF|IronPDF| |---------|----------------------|---------| |**部署模式**|基于云的|内部/本地| |**处理地点**|外部服务器|翻译中| |**数据隐私**|外部传输的数据|数据永远不会离开您的基础架构| |**处理延迟**|网络往返(100-500ms 以上)|本地处理(50-200 毫秒)| |**可用性**|取决于外部服务|100% 由您控制| |**离线模式**|不可能|全部功能| |**费用限制**|高流量时的 API 节流|无限制| |**定价模式**|按请求或订阅|一次性或年度许可| 对于构建处理敏感文档的应用程序的团队来说,数据隐私的区别非常重要。Kaizen.io HTML 到 PDF要求将 HTML 内容(可能包括客户数据、财务信息或专有内容)传输到外部服务器。IronPDF可在本地处理所有内容,确保敏感文档不会离开您的网络基础架构。 ## 基本 HTML 到 PDF 的转换 最简单的 PDF 生成场景是将 HTML 字符串转换为 PDF 文件。比较代码模式可以发现 API 设计和复杂性方面的差异。 **Kaizen.io HTML 到 PDF 的实现:** ```csharp using Kaizen.IO; using System.IO; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var html = "Hello World
"; var pdfBytes = converter.Convert(html); File.WriteAllBytes("output.pdf", pdfBytes); } } ``` **IronPDF 实现:** ```csharp // NuGet: Install-Package IronPdf using IronPdf; using System.IO; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var html = "Hello World
"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } ``` 两种方法都需要类似数量的代码进行基本转换。 主要区别在于 Kaizen.io 返回 `byte[]` 需要手动文件操作,而IronPDF返回一个 `PdfDocument` 对象,并带有方便的 `SaveAs()` 方法。IronPDF方法还可通过文档对象访问其他 PDF 操作功能。 ## 将 HTML 文件转换为 PDF 文件 在转换 HTML 文件而不是字符串时,库会以不同的方式处理文件读取。 **Kaizen.io HTML 转 PDF 方法:** ```csharp using Kaizen.IO; using System; using System.IO; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var htmlContent = File.ReadAllText("input.html"); var options = new ConversionOptions { PageSize = PageSize.A4, Orientation = Orientation.Portrait }; var pdfBytes = converter.Convert(htmlContent, options); File.WriteAllBytes("document.pdf", pdfBytes); } } ``` **IronPdf 方法:** ```csharp // NuGet: Install-Package IronPdf using IronPdf; using System; using System.IO; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait; var pdf = renderer.RenderHtmlFileAsPdf("input.html"); pdf.SaveAs("document.pdf"); } } ``` Kaizen.io 要求开发人员在转换前手动阅读 HTML 文件内容。IronPDF提供了专门的 [RenderHtmlFileAsPdf](https://ironpdf.com/how-to/html-file-to-pdf/) 方法,可在内部处理文件读取,从而减少模板代码和潜在的文件处理错误。 配置方法也有所不同:Kaizen.io 使用一个<代码>转换选项Company Header代码>
Page {page} of {total}
" }, MarginTop = 20, MarginBottom = 20 }; var pdfBytes = converter.ConvertUrl("https://example.com", options); File.WriteAllBytes("webpage.pdf", pdfBytes); } } ``` **带页眉和页脚的 IronPDF:** ```csharp // NuGet: Install-Package IronPdf using IronPdf; using System; using System.IO; class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.TextHeader.CenterText = "Company Header"; renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}"; renderer.RenderingOptions.MarginTop = 20; renderer.RenderingOptions.MarginBottom = 20; var pdf = renderer.RenderUrlAsPdf("https://example.com"); pdf.SaveAs("webpage.pdf"); } } ``` IronPdf 同时提供 `TextHeader`/`TextFooter` 用于简单的基于文本的页眉,以及 `HtmlHeader`/`HtmlFooter` 用于复杂的基于 HTML 的设计。 [RenderingOptions](https://ironpdf.com/how-to/html-headers-footers/) 类集中了所有配置,通过 IDE 自动完成功能可以轻松发现可用选项。 ### 占位符语法差异 在页眉和页脚中使用动态内容时,不同库的占位符语法有所不同: |Kaizen.io 占位符|IronPdf 占位符|翻译目的| |----------------------|---------------------|---------| |`{page}`|`{page}`|当前页码| |<代码>{总计}代码>{总页数}{日期}{日期}{时间}{时间}{标题}{html-title}{url}{url}{总计}{总页数}{标题}{html-title}HtmlToPdfConverterChromePdfRenderer转换选项ChromePdfRenderOptions标题选项HtmlHeaderFooter脚注选项HtmlHeaderFooter页面大小PdfPaperSize方向PdfPaperOrientationconverter.Convert(html)renderer.RenderHtmlAsPdf(html)converter.ConvertUrl(url)renderer.RenderUrlAsPdf(url)converter.ConvertFile(path)renderer.RenderHtmlFileAsPdf(path)converter.ConvertAsync(...)renderer.RenderHtmlAsPdfAsync(...)页面大小RenderingOptions.PaperSize方向RenderingOptions.PaperOrientation页边距RenderingOptions.MarginTop边距下限RenderingOptions.MarginBottom边距左移RenderingOptions.MarginLeftMarginRightRenderingOptions.MarginRightHeader.HtmlContentHtmlHeader.HtmlFragmentFooter.HtmlContentHtmlFooter.HtmlFragmentBaseUrlRenderingOptions.BaseUrl超时RenderingOptions.超时EnableJavaScriptRenderingOptions.EnableJavaScript打印背景RenderingOptions.PrintHtmlBackgrounds规模RenderingOptions.Zoom