比较
PdfPig 与 IronPDF:技术比较指南
已发布:
当 .NET 开发人员处理 PDF 文件时,他们经常会寻找能够处理读取、提取和生成 PDF 文档等任务的库。 在众多可用选项中,pdfpig 已成为一款主要专注于读取和提取 PDF 内容的工具。 本文将 pdfpig 与IronPDF进行比较,考察它们在架构、功能完整性和对各种应用需求的适用性方面的差异。
什么是 PdfPig? PdfPig 是一个专门为 C# 设计的开源 PDF 阅读和提取库。 它允许开发人员准确访问 PDF 内容,并提供从 PDF 文件中提取文本、图像、表单数据和元数据的工具。 pdfpig 采用 Apache 2.0 许可证授权,既是开源软件,又对商业用户友好,允许对其进行修改,并作为专有应用程序的一部分进行分发。 虽然 pdfpig 在提取功能方面表现出色,但其范围仅限于解析现有文档。 该库不能从 HTML、URL 或程序中创建 PDF--它只专注于阅读已有的内容。 pdfpig 的主要特点包括 -**只读模式:**专为 PDF 解析和提取而设计 -**开源:**采用 Apache 2.0 许可证,无需支付许可费用 -**基于位置数据的文本提取:**能够精确提取包含位置数据的文本,并能妥善处理字符字体。 -**词级分析:**提供用于布局分析的单词边界框 -**纯 .NET:**无原生依赖,可在任何 .NET 运行环境中运行 -**基于 1 的页面索引:**页面访问采用基于 1 的索引方式什么是 IronPDF? [IronPDF](https://ironpdf.com/)是一个完整的 .NET 库,提供完整的 PDF 生命周期管理。 [ChromePdfRenderer](https://ironpdf.com/object-reference/api/IronPdf.ChromePdfRenderer.html)类使用基于 Chromium 的现代引擎进行 HTML 到 PDF 的转换,而`PdfDocument`类提供广泛的操作和提取功能。 与 pdfpig 的只读功能不同,IronPDF 同时支持 PDF 生成和提取,使其成为各种 PDF 相关任务的灵活选择。 该库可处理 HTML 和 URL 创建、文本提取、文档操作、合并、水印、安全功能和数字签名,所有这些都在一个库中完成。 ## 架构比较 pdfpig 和IronPDF的主要区别在于它们的范围:pdfpig 仅提供读取功能,而IronPDF提供完整的 PDF 生命周期管理。 |方面|PdfPig|IronPDF| |--------|--------|---------| |**主要关注点**|阅读/提取|完整的 PDF 生命周期| |**PDF 创建**|非常有限|综合性| |**HTML 到 PDF**| 不支持 |完整的 Chromium 引擎| |**URL 转 PDF**| 不支持 |支持| |**文本提取**| 出色的 | 出色的 | |**图像提取**| 是 | 是 | |**元数据访问**| 是 | 是 | |**PDF 操作**| 不支持 |合并、拆分、旋转| |**水印**。| 不支持 |支持| |**安全/加密**| 不支持 |支持| |**表格填写**| 不支持 |支持| |**数字签名**| 不支持 |支持| |**页面索引**|1 基于|基于 0| |**许可**|Apache 2.0(免费)|商业翻译| |**支持**|社区|专业| 对于仅需要 PDF 阅读和文本提取的应用程序,pdfpig 可提供出色的功能。 对于需要 PDF 生成、文档操作或任何创建功能的应用程序,IronPDF 可提供完整的解决方案。 ## 文本提取对比 文本提取展示了两个库在这一常见工作流程中的优势,但在 API 设计方面存在明显差异。 **PdfPig 文本提取方法:** ```csharp // NuGet: Install-Package PdfPig using UglyToad.PdfPig; using System; using System.Text; class Program { static void Main() { using (var document = PdfDocument.Open("input.pdf")) { var text = new StringBuilder(); foreach (var page in document.GetPages()) { text.AppendLine(page.Text); } Console.WriteLine(text.ToString()); } } } ``` **IronPDF 文本提取方法:** ```csharp // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var pdf = PdfDocument.FromFile("input.pdf"); string text = pdf.ExtractAllText(); Console.WriteLine(text); } } ``` PdfPig 要求使用 `using` 语句进行正确处理,通过 `GetPages()` 对页面进行迭代,并使用 `StringBuilder` 手动聚合文本。<代码>page.TextHello World
This is a PDF from HTML
"); pdf.SaveAs("output.pdf"); } } ``` PdfPig 无法从 HTML 创建 PDF,因为它不支持此功能。 该库专门用于读取和解析现有的 PDF 文档,而不是生成新文档。 IronPDF 的 `ChromePdfRenderer` 使用现代 Chromium 引擎转换 HTML 内容,完全支持 CSS3 和 JavaScript,可从网页内容生成高保真 PDF 输出。 有关 HTML 到IronPDF转换模式的详细指导,请参阅 [HTML 到 PDF 教程](https://ironpdf.com/how-to/html-file-to-pdf/)。 ## PDF 元数据访问 阅读 PDF 元数据可以看到不同 API 模式的类似功能。 **PdfPig 元数据阅读:** ```csharp // NuGet: Install-Package PdfPig using UglyToad.PdfPig; using System; class Program { static void Main() { using (var document = PdfDocument.Open("input.pdf")) { var info = document.Information; Console.WriteLine($"Title: {info.Title}"); Console.WriteLine($"Author: {info.Author}"); Console.WriteLine($"Subject: {info.Subject}"); Console.WriteLine($"Creator: {info.Creator}"); Console.WriteLine($"Producer: {info.Producer}"); Console.WriteLine($"Number of Pages: {document.NumberOfPages}"); } } } ``` **IronPDF 元数据阅读:** ```csharp // NuGet: Install-Package IronPdf using IronPdf; using System; class Program { static void Main() { var pdf = PdfDocument.FromFile("input.pdf"); var info = pdf.MetaData; Console.WriteLine($"Title: {info.Title}"); Console.WriteLine($"Author: {info.Author}"); Console.WriteLine($"Subject: {info.Subject}"); Console.WriteLine($"Creator: {info.Creator}"); Console.WriteLine($"Producer: {info.Producer}"); Console.WriteLine($"Number of Pages: {pdf.PageCount}"); } } ``` 这两个库都可以访问标准的 PDF 元数据属性。PdfPig使用 `document.Information` 而IronPDF使用 `pdf.MetaData` 。 在 pdfpig 中通过<代码>document.NumberOfPagespdf.PageCountPdfDocument.Open(path)代码>PdfDocument.FromFile(路径)代码>PdfDocument.Open(字节)PdfDocument.FromBinaryData(字节)PdfDocument.Open(stream)PdfDocument.FromStream(流)使用(var doc = ...)var pdf = ...document.NumberOfPagespdf.PageCountdocument.GetPages()pdf.Pagesdocument.GetPage(1)pdf.Pages[0]page.Textpdf.Pages[i].Textpage.GetWords()pdf.ExtractTextFromPage(i)document.Information.Titlepdf.MetaData.Titledocument.Information.Authorpdf.MetaData.Authordocument.Information.Subjectpdf.MetaData.Subjectdocument.Information.Creatorpdf.MetaData.Creatordocument.Information.Producerpdf.MetaData.Producerrenderer.RenderHtmlAsPdf(html)renderer.RenderUrlAsPdf(url)PdfDocument.Merge(pdfs)pdf.CopyPages(start, end)pdf.ApplyWatermark(html)pdf.SecuritySettings.UserPasswordpdf.Sign(证书)pdf.Form.GetFieldByName(name).Value安装-打包 IronPdf入门文档