比较
PDF Duo 与 IronPDF:技术比较指南
已更新:
PDF Duo vs IronPDF:晦涩难懂的库 VS 生产就绪的 PDF 解决方案。
当 .NET 开发人员搜索 PDF 生成库时,他们偶尔会遇到 PDF Duo .NET--生态系统中一个难以捉摸且鲜为人知的选项。 本对比报告对 PDF Duo 和IronPDF进行了研究,分析了库的可行性、文档质量、功能完整性和长期可维护性,以帮助开发人员和架构师为他们的 PDF 工作流程做出明智的决定。
什么是 PDF Duo? PDF Duo .NET 是一个在 .NET 应用程序中将 HTML 和其他格式转换为 PDF 的库。 该库提供了一个用于 HTML 到 PDF 转换的 `HtmlToPdfConverter` 类和一个用于合并 PDF 文档的 `PdfMerger` 类。 然而,PDF Duo .NET 面临着影响其实际可用性的重大挑战。 该库的特点是文档有限、社区参与度不高,以及持续支持和维护的不确定性。 与成熟的库不同,PDF Duo 的来源并不明确--没有可见的 GitHub 存储库、有限的 NuGet 下载统计以及不确定的许可条款。 该库的支持论坛显示活动极少(帖子可追溯到 2019 年),也没有官方 API 参考资料或全面的教程。 这些因素会给任何生产级应用程序带来巨大风险。什么是 IronPDF? [IronPDF](https://ironpdf.com/) 是 Iron Software 积极开发和维护的 .NET 综合 PDF 库。 [ChromePdfRenderer](https://ironpdf.com/object-reference/api/IronPdf.ChromePdfRenderer.html) 类使用基于 Chromium 的现代渲染引擎将 HTML、CSS 和 JavaScript 转换为高保真 PDF 文档。 IronPDF 的 NuGet 下载量已超过 4100 万次,在生产环境中有着良好的记录。 该库提供大量文件、专业支持和定期更新,确保与当前 .NET 版本兼容。 除了基本的转换功能外,IronPDF 还提供 PDF Duo 无法提供的功能:带页码的页眉和页脚、水印、密码保护、文本提取以及 PDF 到图片的转换。 ## 库可行性比较 PDF Duo 和IronPDF的根本区别在于库的成熟度和支持基础设施。 |方面|PDF Duo .NET|IronPDF| |--------|--------------|---------| |**维护**|未知/无活动|积极开发| |**文档**|几乎不存在|综合性| |**支持**| 无 |专业的支持团队| |**社区**|~0 用户|41M+ NuGet 下载次数| |**渲染引擎**|未知|现代 Chromium| |**特点**| 基本的 |全功能| |**稳定性**|未知|经过生产验证| |**许可**|不明确|透明| 对于任何需要可靠生成 PDF 的应用程序来说,PDF Duo 的不确定状态都会带来巨大的项目风险。 在维护不善的库上构建的应用程序会面临潜在的问题,如依赖库无法获得更新,或在没有支持资源的情况下出现问题。 ## HTML 至 PDF 转换 这两个库都处理 HTML 到 PDF 的基本转换,但 API 模式和返回类型不同。 **PDF Duo HTML 转 PDF 方法:** ```csharp // NuGet: Install-Package PDFDuo.NET using PDFDuo; using System; class Program { static void Main() { var converter = new HtmlToPdfConverter(); var htmlContent = "Hello World
Hello World
This is a PDF document.
"; converter.ConvertHtmlString(htmlContent, "output.pdf"); Console.WriteLine("PDF created successfully!"); } } ``` **IronPDF HTML 转 PDF 方法:** ```csharp // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var htmlContent = "Hello World
This is a PDF document.
"; var pdf = renderer.RenderHtmlAsPdf(htmlContent); pdf.SaveAs("output.pdf"); Console.WriteLine("PDF created successfully!"); } } ``` PDF Duo 的 `ConvertHtmlString()` 方法同时获取 HTML 内容和输出路径,并直接保存到文件系统中。IronPDF的 `RenderHtmlAsPdf()` 返回一个 `PdfDocument` 对象,可在保存前进行进一步操作。 IronPDF 中的 [HTML 到 PDF 的转换](https://ironpdf.com/how-to/html-file-to-pdf/)方法提供了一个可链式 API--您可以在调用 `SaveAs()` 之前应用水印、添加安全设置或从生成的 `PdfDocument` 中提取文本。 ## 将 URL 转换为 PDF. 将网页转换为 PDF 文档时,每个库都遵循类似的模式。 **PDF Duo URL 转 PDF 方法:** ```csharp // NuGet: Install-Package PDFDuo.NET using PDFDuo; using System; class Program { static void Main() { var converter = new HtmlToPdfConverter(); converter.ConvertUrl("https://www.example.com", "webpage.pdf"); Console.WriteLine("Webpage converted to PDF!"); } } ``` **IronPDF URL 转 PDF 方法:** ```csharp // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderUrlAsPdf("https://www.example.com"); pdf.SaveAs("webpage.pdf"); Console.WriteLine("Webpage converted to PDF!"); } } ``` 两个库都使用各自的转换器/渲染器来处理 URL 转换。IronPDF的 [RenderUrlAsPdf](https://ironpdf.com/how-to/url-to-pdf/) 方法返回一个 `PdfDocument` 对象,为保存前的其他操作提供了灵活性。 关键区别在于渲染质量。 PDF Duo 的底层渲染引擎未知,因此 CSS 和 JavaScript 支持无法预测。 IronPdf 基于 Chromium 的引擎提供现代网络标准支持,包括 CSS3、Flexbox、网格和 JavaScript 执行。 ## PDF 合并 文档合并展示了不同库之间的不同架构方法。 **PDF Duo 合并方法:** ```csharp // NuGet: Install-Package PDFDuo.NET using PDFDuo; using System; class Program { static void Main() { var merger = new PdfMerger(); merger.AddFile("document1.pdf"); merger.AddFile("document2.pdf"); merger.Merge("merged.pdf"); Console.WriteLine("PDFs merged successfully!"); } } ``` **IronPDF 合并方法:** ```csharp // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var pdf1 = PdfDocument.FromFile("document1.pdf"); var pdf2 = PdfDocument.FromFile("document2.pdf"); var merged = PdfDocument.Merge(pdf1, pdf2); merged.SaveAs("merged.pdf"); Console.WriteLine("PDFs merged successfully!"); } } ``` PDF Duo 使用专门的 `PdfMerger` 类,该类具有 `AddFile()` 模式,可在调用 `Merge()` 之前对文件进行排队。IronPDF使用静态<代码>PdfDocument.Merge()new HtmlToPdfConverter()代码>new ChromePdfRenderer()converter.ConvertHtmlString(html,路径)renderer.RenderHtmlAsPdf(html).SaveAs(path)converter.ConvertUrl(url, path)renderer.RenderUrlAsPdf(url).SaveAs(path)converter.ConvertFile(文件, 路径)renderer.RenderHtmlFileAsPdf(file).SaveAs(path)new PdfMerger()PdfDocument.Merge()merger.AddFile(path)PdfDocument.FromFile(路径)merger.Merge(output)merged.SaveAs(输出)converter.PageWidth = ...renderer.RenderingOptions.PaperSizeconverter.PageHeight = ...renderer.RenderingOptions.SetCustomPaperSize()new Margins(t, r, b, l)settings.PageSize = PageSize.A4RenderingOptions.PaperSize = PdfPaperSize.A4settings.Orientation(设置)= Landscape(横向)RenderingOptions.PaperOrientation = LandscapeRenderingOptions.HtmlHeader,<代码>HtmlFooter代码>pdf.ApplyWatermark(html)pdf.SecuritySettingspdf.ExtractAllText()pdf.RasterizeToImageFiles()pdf.SignWithFile()pdf.Form.Fields使用 PDFDuo;使用 IronPdf;使用 PDFDuo.Document;使用 IronPdf;使用 PDFDuo.Rendering;使用 IronPdf.Rendering;使用 PDFDuo.Settings;使用 IronPdf;Install-Package IronPdf文档组装的IronPDF合并功能