在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
从PDF文档中提取文本是现代软件项目中的常见需求——从处理发票到为搜索引擎挖掘内容。 开发人员需要可靠的库,这些库不仅提供准确的结果,还在 C# .NET 应用程序中提供高效的集成体验。 一些开发人员使用OCR(光学字符识别)工具从扫描文档和图像中提取数据,但有时工作需要一个强大的文本提取工具。
然而,市场上有多种PDF库,选择合适的工具可能会让人感到不知所措。 在谈话中经常提到的两个库是iTextSharp和IronPDF。 两者都可以从PDF中提取文本,但在可用性、支持、性能和定价方面有显著不同。 本文比较了这两个库,查看了不同的代码示例以展示它们如何处理文本提取,从而帮助您决定哪个最适合您的项目。
iTextSharp 长期以来一直是一个流行的开源 PDF 库,用于 .NET,提供强大的工具用于生成、操作和提取内容。 作为基于Java的iText的C#移植,它提供对PDF结构的深度控制,非常适合高级用户。 然而,这种灵活性伴随着陡峭的学习曲线和许可限制; 商业用途通常需要付费许可证以避免 AGPL 义务。
进入IronPDF——一个为.NET构建的现代开发者友好的PDF库。 它通过直观的API、清晰的文档和响应迅速的支持,使文本提取等常见任务更加简化。 使用此工具,开发人员可以轻松从PDF文档中提取图像和文本,创建新的PDF文件,实施PDF安全性等。
与iTextSharp不同,IronPDF避免了复杂的低级结构,使您能够更快更高效地工作。 无论您是在处理单页还是数百个PDF文件,它都能保持简洁。
它同样得到了积极的维护,定期更新并采用简单明了的许可模式,包括免费试用和适合团队及单独开发者的经济实惠计划。
--LIBRARY_NUGET_INSTALL_BLOCK--
IronPDF 也可以通过运行以下命令在 NuGet 包管理器控制台中通过 NuGet 安装:
Install-Package IronPdf
或者,您可以通过解决方案屏幕的NuGet包管理器安装它。 为此,请导航到“工具 > NuGet 包管理器 > 为解决方案管理 NuGet 包”。
然后,搜索IronPDF,并点击“安装”。
安装完成后,提取文本非常简单:
using IronPdf;
var pdf = PdfDocument.FromFile("invoice.pdf");
string extractedText = pdf.ExtractAllText();
Console.WriteLine(extractedText);
using IronPdf;
var pdf = PdfDocument.FromFile("invoice.pdf");
string extractedText = pdf.ExtractAllText();
Console.WriteLine(extractedText);
Imports IronPdf
Private pdf = PdfDocument.FromFile("invoice.pdf")
Private extractedText As String = pdf.ExtractAllText()
Console.WriteLine(extractedText)
📝 注意:此方法读取整个PDF文件,并按照阅读顺序返回文本,与传统库相比,节省了数小时的解析时间。
无需处理编码、内容流或手动解析。 IronPDF 内部处理所有这些,实现清晰准确的输出且设置最少。然后,您可以轻松地将提取的文本保存到一个新的文本文件中以便进一步操作或使用。
下载 iTextSharp 的核心包以生成 PDF:
Install-Package iTextSharp
Install-Package iTextSharp
您还可以通过解决方案屏幕上的软件包管理器使用iTextSharp。 要执行此操作,您首先需要转到工具下拉菜单,然后找到“NuGet 包管理器 > 为解决方案管理 NuGet 包”。
然后,只需搜索 iTextSharp,然后点击“安装”。
以下是从单个 PDF 页面提取文本的示例:
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
string path = "sample.pdf";
using (PdfReader reader = new PdfReader(path))
using (PdfDocument pdf = new PdfDocument(reader))
{
var strategy = new SimpleTextExtractionStrategy();
string pageText = PdfTextExtractor.GetTextFromPage(pdf.GetPage(1), strategy);
Console.WriteLine(pageText);
}
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
string path = "sample.pdf";
using (PdfReader reader = new PdfReader(path))
using (PdfDocument pdf = new PdfDocument(reader))
{
var strategy = new SimpleTextExtractionStrategy();
string pageText = PdfTextExtractor.GetTextFromPage(pdf.GetPage(1), strategy);
Console.WriteLine(pageText);
}
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser
Imports iText.Kernel.Pdf.Canvas.Parser.Listener
Private path As String = "sample.pdf"
Using reader As New PdfReader(path)
Using pdf As New PdfDocument(reader)
Dim strategy = New SimpleTextExtractionStrategy()
Dim pageText As String = PdfTextExtractor.GetTextFromPage(pdf.GetPage(1), strategy)
Console.WriteLine(pageText)
End Using
End Using
这个例子展示了iTextSharp的功能,但是请注意,完成一个简单任务所需的代码冗长且需要额外的对象。
现在我们已经介绍了安装和基本用法,让我们来深入比较一下这两个库如何通过从多页PDF文档中提取文本来进行文本提取。
IronPDF支持对页面选择的精细控制和基于布局的文本提取。
using IronPdf;
// Load PDF document
var pdf = PdfDocument.FromFile("longPdf.pdf");
int[] pages = new[] { 2, 3, 4 };
var text = pdf.ExtractTextFromPages(pages);
Console.WriteLine("Extracted text from pages 2, 3, and 4:" + text);
using IronPdf;
// Load PDF document
var pdf = PdfDocument.FromFile("longPdf.pdf");
int[] pages = new[] { 2, 3, 4 };
var text = pdf.ExtractTextFromPages(pages);
Console.WriteLine("Extracted text from pages 2, 3, and 4:" + text);
Imports IronPdf
' Load PDF document
Private pdf = PdfDocument.FromFile("longPdf.pdf")
Private pages() As Integer = { 2, 3, 4 }
Private text = pdf.ExtractTextFromPages(pages)
Console.WriteLine("Extracted text from pages 2, 3, and 4:" & text)
输出
在iTextSharp中,您需要手动指定页面范围,并使用PdfTextExtractor提取文本:
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
using System.Text;
// Load 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());
reader.Close();
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
using System.Text;
// Load 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());
reader.Close();
Imports iTextSharp.text.pdf
Imports iTextSharp.text.pdf.parser
Imports System.IO
Imports System.Text
' Load PDF document
Private reader As New PdfReader("longPdf.pdf")
Private textBuilder As New StringBuilder()
' Extract text from pages 2–4
For i As Integer = 2 To 4
Dim pageText As String = PdfTextExtractor.GetTextFromPage(reader, i, New LocationTextExtractionStrategy())
textBuilder.AppendLine(pageText)
Next i
' Output the extracted text
Console.WriteLine(textBuilder.ToString())
reader.Close()
输出
IronPDF和iTextSharp都能够进行高级PDF文本提取,但它们在复杂性和清晰度上的方法有显著差异:
iTextSharp,另一方面,需要对PDF结构有更深的理解。 提取文本需要设置自定义渲染监听器,手动管理页面,并逐行解释布局数据。虽然功能强大,但它更冗长且不太直观,这使得IronPDF成为大多数.NET项目中更快速和更易维护的选择。
但我们的比较并未在此结束,接下来,让我们看看这两个库在其他领域的比较。
在评估用于.NET的PDF文本提取库时,开发人员通常会权衡简便性、性能和长期支持之间的平衡。 让我们分析IronPDF和iTextSharp在实际使用中的对比,特别是在C#中从PDF中提取文本的情况。
✅ 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
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
Console.WriteLine(extractedText);
Imports IronPdf
' Load the PDF
Private pdf = PdfDocument.FromFile("sample.pdf")
' Extract all text from every page
Private extractedText As String = pdf.ExtractAllText()
' Output
Console.WriteLine(extractedText)
IronPDF 将复杂性抽象化至简单的方法调用,如 ExtractAllText(),无需样板或解析逻辑。
iTextSharp:输入更详细且更底层
iTextSharp需要手动解析每一页并且需要更多的努力来提取纯文本。
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
// 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
Console.WriteLine(text.ToString());
using iTextSharp.text.pdf;
using iTextSharp.text.pdf.parser;
using System.IO;
// 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
Console.WriteLine(text.ToString());
Imports iTextSharp.text.pdf
Imports iTextSharp.text.pdf.parser
Imports System.IO
' Load the PDF
Private reader = New PdfReader("sample.pdf")
Private text As New StringBuilder()
For i As Integer = 1 To reader.NumberOfPages
text.Append(PdfTextExtractor.GetTextFromPage(reader, i))
Next i
' Output
Console.WriteLine(text.ToString())
开发人员需要手动遍历页面,这会引入更多代码,并在出现边缘情况时增加出现错误的可能性。
功能 IronPDF iTextSharp
许可证类型 商业版(提供免费试用) AGPL(免费)/ 商业(付费)
价格透明度 公开定价与永久许可 复杂的层级和重新分配规则
支持 专门支持团队 社区支持(除非有许可)
在闭源应用中使用 ✅ 是(需要许可证) ❌ 不适用于 AGPL
📌 注意:如果您正在构建商业或专有软件,iTextSharp AGPL将强制您开源代码,或者购买商业许可证。
IronPDF 为闭源项目提供更灵活的许可模式。
标准 IronPDF iTextSharp
简单性 ✅ 高效 – 单行文本提取 ⚠️ 中等 – 手动页面迭代
性能 ✅ 快速现代的解析 ⚠️ 在处理复杂或扫描的PDF时速度较慢
商业友好 ✅ 是的,没有 AGPL 限制 ❌ AGPL限制在闭源应用程序中的使用
支持与文档 ✅ 专注,响应迅速 ⚠️ 社区依赖
.NET Core 支持 ✅ 完整 ✅ 完整
在从PDF中提取C#文本时,IronPDF和iTextSharp都是有能力的工具——但它们适用于不同类型的开发人员。 如果您正在寻找一个现代的、易于集成的解决方案,并且拥有出色的支持、积极维护的功能以及无缝的布局保留,IronPDF显然脱颖而出。 它减少了开发时间,提供了直观的API,并在广泛的.NET框架应用中表现良好,从网络应用到企业系统。
另一方面,iTextSharp对于已经深入其生态系统的开发者或需要对文本提取策略进行细致控制的开发者来说仍然是一个强有力的选择。 然而,其陡峭的学习曲线和缺乏商业支持可能会减缓需要快速扩展或维护干净代码库的项目。
对于重视速度、清晰度和可靠结果的 .NET 开发人员,IronPDF 提供了一条面向未来的道路。 无论您是在构建文档自动化工具、搜索引擎还是内部仪表板,IronPDF 强大的功能和性能将帮助您更快更智能地交付。
👉 通过下载免费试用版,今天就试用IronPDF,亲自体验不同之处。 通过免费试用和开发者友好的 API,您可以在几分钟内开始使用。