在C#中使用iTextSharp从PDF提取文本与IronPDF
从 PDF 文档中提取文本是现代软件项目中的常见需求——从处理发票到为搜索引擎挖掘内容。 开发人员需要可靠的库,不仅能提供准确的结果,还能在 C# .NET 应用程序中提供高效的集成体验。 \u4e00\u4e9b\u5f00\u53d1\u4eba\u5458\u4f7f\u7528 OCR\uff08\u5149\u5b66\u5b57\u7b26\u8bc6\u522b\uff09\u5de5\u5177\u4ece\u626b\u63cf\u7684\u6587\u6863\u548c\u56fe\u50cf\u4e2d\u63d0\u53d6\u6570\u636e\uff0c\u4f46\u6709\u65f6\u5de5\u4f5c\u9700\u8981\u4e00\u4e2a\u5f3a\u5927\u7684\u6587\u672c\u63d0\u53d6\u5de5\u5177\u3002<\/S>
但是市场上有多种 PDF 库,选择合适的工具可能令人不知所措。 两个经常被提及的库是 iTextSharp 和 IronPDF。 两者都能从 PDF 中提取文本,但在可用性、支持、性能和定价上存在显著差异。 本文比较了这两个库,查看不同的代码示例来演示它们如何处理文本提取,帮助您决定哪一个最适合您的项目。
IronPDF 和 iTextSharp 库概览
iTextSharp 长期以来一直是 .NET 中流行的开源 PDF 库,提供强大的工具用于生成、操作和提取内容。 作为基于 Java 的 iText 的 C# 移植版,它提供对 PDF 结构的深度控制——是高级用户的理想选择。 然而,这种灵活性伴随着陡峭的学习曲线和许可限制; 商业用途通常需要付费许可证以避免 AGPL 义务。
引入 IronPDF——一个为 .NET 构建的现代、开发者友好的 PDF 库。 它通过直观的 API、清晰的文档和响应的支持简化了如文本提取等常见任务。 使用此工具,开发人员可以轻松从 PDF 文档中提取图像和文本,创建新的 PDF 文件,实现 PDF 安全性等。
与 iTextSharp 不同,IronPDF 避免了复杂的低级结构,让您可以更快、更高效地工作。 无论您是处理单页还是数百个 PDF,它都保持简单。
它还得到积极维护,定期更新并具有简洁的许可模式,包括免费试用以及适合团队和个人开发者的实惠计划。
安装和使用 IronPDF
IronPDF 可以通过运行 NuGet Package Manager Console 中的以下命令通过 NuGet 安装:
Install-Package IronPdf
或者,您可以通过解决方案的 NuGet 包管理器安装它。 为此,请导航到"工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包"。 然后,搜索 IronPDF 并单击"安装"。
使用 IronPDF 从 PDF 文件中提取文本
安装后,提取文本就很简单:
using IronPdf;
// Load the PDF document
var pdf = PdfDocument.FromFile("invoice.pdf");
// Extract text from the PDF
string extractedText = pdf.ExtractAllText();
// Output the extracted text
Console.WriteLine(extractedText);using IronPdf;
// Load the PDF document
var pdf = PdfDocument.FromFile("invoice.pdf");
// Extract text from the PDF
string extractedText = pdf.ExtractAllText();
// Output the extracted text
Console.WriteLine(extractedText);注意: 此方法读取整个 PDF 文件并按读取顺序返回文本,相比传统库节省数小时的解析时间。
无需处理编码、内容流或手动解析。 IronPDF 内部处理所有这些,提供干净准确的输出,设置极少。然后您可以轻松地将提取的文本保存到新的文本文件中以便进一步操作或使用。
安装 iTextSharp PDF 库
要下载 iTextSharp 的用于 PDF 生成的核心包,请使用以下命令:
Install-Package iTextSharp
您还可以通过解决方案屏幕的包管理器安装 iTextSharp。 为此,您首先需要进入工具下拉菜单,然后找到"NuGet 包管理器 > 管理解决方案的 NuGet 包"。 然后,只需搜索 iTextSharp 并点击"安装"。
使用 iTextSharp 从 PDF 文档中提取文本
这是一个从单个 PDF 页面提取文本的示例:
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
// Define the path to your PDF
string path = "sample.pdf";
// Open the PDF reader and document
using (PdfReader reader = new PdfReader(path))
using (PdfDocument pdf = new PdfDocument(reader))
{
// Use a simple text extraction strategy
var strategy = new SimpleTextExtractionStrategy();
// Extract text from the first page
string pageText = PdfTextExtractor.GetTextFromPage(pdf.GetPage(1), strategy);
// Output the extracted text
Console.WriteLine(pageText);
}using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
// Define the path to your PDF
string path = "sample.pdf";
// Open the PDF reader and document
using (PdfReader reader = new PdfReader(path))
using (PdfDocument pdf = new PdfDocument(reader))
{
// Use a simple text extraction strategy
var strategy = new SimpleTextExtractionStrategy();
// Extract text from the first page
string pageText = PdfTextExtractor.GetTextFromPage(pdf.GetPage(1), strategy);
// Output the extracted text
Console.WriteLine(pageText);
}本示例展示了 iTextSharp 的能力,但请注意,为了完成一个简单任务,所需的冗长和额外对象。
详细比较
现在我们已经介绍了安装和基础使用,让我们来深入比较这两个库如何通过从多页 PDF 文档中提取文本来处理文本提取。
高级示例:使用 IronPDF 从页面范围提取文本
IronPDF 支持页面选择的细粒度控制和布局感知的文本提取。
using IronPdf;
// Load the PDF document
var pdf = PdfDocument.FromFile("longPdf.pdf");
// Define the page numbers to extract text from
int[] pages = new[] { 2, 3, 4 };
// Extract text from the specified pages
var text = pdf.ExtractTextFromPages(pages);
// Output the extracted text
Console.WriteLine("Extracted text from pages 2, 3, and 4:\n" + text);using IronPdf;
// Load the PDF document
var pdf = PdfDocument.FromFile("longPdf.pdf");
// Define the page numbers to extract text from
int[] pages = new[] { 2, 3, 4 };
// Extract text from the specified pages
var text = pdf.ExtractTextFromPages(pages);
// Output the extracted text
Console.WriteLine("Extracted text from pages 2, 3, and 4:\n" + text);高级示例:使用 iTextSharp 从页面范围提取文本
在 iTextSharp 中,您需要手动指定页面范围并使用 PdfTextExtractor 提取文本:
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
using System.Text;
// Load the PDF document
PdfReader reader = new PdfReader("longPdf.pdf");
StringBuilder textBuilder = new StringBuilder();
// Extract text from pages 2–4
for (int i = 2; i <= 4; i++)
{
string pageText = PdfTextExtractor.GetTextFromPage(reader, i, new LocationTextExtractionStrategy());
textBuilder.AppendLine(pageText);
}
// Output the extracted text
Console.WriteLine(textBuilder.ToString());
// Close the PDF reader
reader.Close();using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
using System.Text;
// Load the PDF document
PdfReader reader = new PdfReader("longPdf.pdf");
StringBuilder textBuilder = new StringBuilder();
// Extract text from pages 2–4
for (int i = 2; i <= 4; i++)
{
string pageText = PdfTextExtractor.GetTextFromPage(reader, i, new LocationTextExtractionStrategy());
textBuilder.AppendLine(pageText);
}
// Output the extracted text
Console.WriteLine(textBuilder.ToString());
// Close the PDF reader
reader.Close();代码比较总结
IronPDF 和 iTextSharp 都具备高级 PDF 文本提取功能,但它们在复杂性和清晰度上的方法差异显著:
IronPDF 保持干净和易访问。 其高级方法如 PdfDocument.ExtractAllText() 允许您以最少的设置提取结构化内容。代码简单直接,即使是 PDF 处理的新手开发者也容易实现。
- 另一方面,iTextSharp 需要对 PDF 结构有更深入的了解。 提取文本涉及设置自定义渲染监听器,手动管理页面,并逐行解释布局数据。虽然功能强大,但它更冗长且不够直观,使 IronPDF 对于大多数 .NET 项目来说是一个更快速和更易维护的选择。
但我们的比较尚未结束。 接下来,让我们看看这两个库在其他方面的比较。
详细比较:IronPDF vs iTextSharp
在为 .NET 评估 PDF 文本提取库时,开发人员通常权衡简单性、性能和长期支持之间的平衡。 让我们分解IronPDF 和 iTextSharp 在实际使用中的对比,尤其是在 C# 中从 PDF 中提取文本。
1. 易用性
IronPDF:干净现代的 API
IronPDF 强调开发者体验。 安装通过 NuGet 很容易,语法直观:
using IronPdf;
// Load the PDF
var pdf = PdfDocument.FromFile("sample.pdf");
// Extract all text from every page
string extractedText = pdf.ExtractAllText();
// Output the extracted text
Console.WriteLine(extractedText);using IronPdf;
// Load the PDF
var pdf = PdfDocument.FromFile("sample.pdf");
// Extract all text from every page
string extractedText = pdf.ExtractAllText();
// Output the extracted text
Console.WriteLine(extractedText);IronPDF 通过像 ExtractAllText() 这样的简单方法调用抽象了复杂性,不需要样板代码或解析逻辑。
iTextSharp:更冗长且较低级
iTextSharp 需要手动解析每个页面并付出更多努力来提取纯文本。
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
using System.Text;
// Load the PDF
var reader = new PdfReader("sample.pdf");
StringBuilder text = new StringBuilder();
for (int i = 1; i <= reader.NumberOfPages; i++)
{
text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
}
// Output the extracted text
Console.WriteLine(text.ToString());using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
using System.Text;
// Load the PDF
var reader = new PdfReader("sample.pdf");
StringBuilder text = new StringBuilder();
for (int i = 1; i <= reader.NumberOfPages; i++)
{
text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
}
// Output the extracted text
Console.WriteLine(text.ToString());开发人员需要手动遍历页面,这会引入更多代码并在出现边缘案例时可能导致错误。
2. 性能和可靠性
IronPDF 基于现代渲染引擎 (Chromium) 构建,使其适合现代 PDF,即使是带有嵌入字体、旋转文本和多种布局的 PDF。 文本提取具有布局感知性,更自然地保留了间距。
- 尽管功能强大,iTextSharp 在复杂格式上可能会遇到困难。 带有混合方向或非标准编码的 PDF 文件可能产生乱码或文本顺序不正确。
3. 成本和许可
| 功能 | IronPDF | iTextSharp |
|---|---|---|
| 许可证类型 | 商用(可试用) | AGPL(免费)/ 商用(付费) |
| 透明定价 | 公开定价 & 永久许可 | 复杂的层次和重分发规则 |
| 支持 | 专门的支持团队 | 社区支持(除非有许可) |
| 在闭源应用中的使用 | 是(有许可证) | 不支持 AGPL |
@@--BRACKET--i-OPEN--@@如果您正在构建商业软件或专有软件,iTextSharp AGPL 将迫使您开源代码或支付商业许可费用。 IronPdf为闭源项目提供了更为灵活的许可模式。
4. 开发者支持和文档
IronPDF:提供现代化的文档、视频教程和快速的工单支持。
- iTextSharp:文档齐全,但除非你是付费用户,否则免费支持有限。
5. 跨库总结
| 标准 | IronPDF | iTextSharp |
|---|---|---|
| 简单性 | 高 – 一行文本提取 | 中等 – 手动页面迭代 |
| 性能 | 快速现代解析 | 复杂或扫描的 PDF 上较慢 |
| 商业友好 | 是,没有 AGPL 限制 | AGPL 限制闭源应用的使用 |
| 支持与文档 | 专门的,响应式的 | 依赖社区 |
| .NET Core 支持 | Full | 满的 |
结论
在 C# 中从 PDF 中提取文本时,IronPDF 和 iTextSharp 都是有效的工具——但它们服务于不同类型的开发人员。 如果您正在寻找现代、易于集成的解决方案,具有出色支持、积极维护的功能和无缝布局保留,那么 IronPDF 明显脱颖而出。 它减少了开发时间,提供了直观的 API,并在 .NET 框架内的广泛应用中表现出色,从 Web 应用程序到企业系统。
另一方面,iTextSharp 仍然是那些已经嵌入其生态系统的开发人员或需要对文本提取策略进行精细控制的开发人员的强大选择。 然而,它更陡峭的学习曲线和缺乏商业支持可能会减慢需要快速扩展或保持干净代码库的项目。
对于重视速度、清晰度和可靠结果的 .NET 开发人员来说,IronPDF 提供了一条面向未来的路径。 无论您是在构建文档自动化工具、搜索引擎还是内部仪表板,IronPDF 的强大功能和性能将帮助您更快、更智能地交付。
立即试用 IronPDF,下载免费试用,亲自体验不同之处。 凭借免费试用和开发者友好的 API,您可以在几分钟内开始。
常见问题解答
如何使用现代库从 PDF 中提取文本?
您可以使用 IronPDF 提取 PDF 中文本,通过其方法 PdfDocument.ExtractAllText(),简化流程并确保即使是复杂文档布局也能获得准确结果。
IronPDF 和 iTextSharp 在文本提取方面的关键区别是什么?
IronPDF 提供比 iTextSharp 更直观的 API 和更快的性能。它旨在有效处理复杂布局,并提供现代渲染引擎,简化文本提取,而 iTextSharp 则需要更多手动编码和对 PDF 结构的理解。
IronPDF 如何处理从扫描文档中提取文本?
IronPDF 支持从标准 PDF 中提取文本。对于扫描文档,可以集成像 IronOCR 这样的 OCR 工具以从 PDF 中的图像中提取文本。
在商业项目中使用 IronPDF 的许可优势是什么?
IronPDF 提供明确的商业许可模式,不受 AGPL 限制,适合于闭源应用。它为个人开发者和团队提供负担得起的计划。
IronPDF 适合从具有复杂布局的 PDF 中提取文本吗?
是的,IronPDF 非常适合从复杂布局的 PDF 中提取文本,因为其对布局感知的文本提取能力确保格式和间距得到准确保留。
如何将 PDF 处理库集成到我的 C# 项目中?
您可以通过 NuGet 将 IronPDF 集成到 C# 项目中。在 NuGet 包管理器控制台运行命令 Install-Package IronPdf 以将其添加到您的项目中。
对于使用 IronPDF 的开发人员,有哪些支持和资源可用?
IronPDF 提供了全面的支持,现代化文档、视频教程和快速的票务支持,使其成为适合用于 .NET 项目的开发者友好工具。
IronPDF 能否从 PDF 的特定页面中提取文本?
是的,IronPDF 允许您使用方法 PdfDocument.ExtractTextFromPages() 从特定页面中提取文本,为文本提取过程提供了细粒度的控制。
为什么推荐新开发者使用 IronPDF 进行 PDF 文本提取?
推荐新开发者使用 IronPDF,因为其易于使用的 API、简单的集成过程和详细的支持资源,使即使对 PDF 处理不熟悉的人也能使用。
IronPDF 相比其他库有哪些性能优势?
由于其现代渲染引擎,IronPDF 提供增强的性能,优化文本提取速度并高效处理复杂 PDF 布局,使其比许多其他库更快。






