产品比较 从PDF中提取文本在C#中:使用iTextSharp与IronPDF Curtis Chau 已更新:八月 20, 2025 Download IronPDF NuGet 下载 DLL 下载 Windows 安装程序 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 从 PDF 文档中提取文本是现代软件项目中的常见需求——从处理发票到为搜索引擎挖掘内容。 开发人员需要可靠的库,不仅能提供准确的结果,还能在 C# .NET 应用程序中提供高效的集成体验。 一些开发人员使用 OCR (光学字符识别) 工具从扫描文档和图像中提取数据,但有时需要一个强大的文本提取工具。 但是市场上有多种 PDF 库,选择合适的工具可能令人不知所措。 Two libraries that often come up in the conversation are iTextSharp and 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); Imports IronPdf ' Load the PDF document Private pdf = PdfDocument.FromFile("invoice.pdf") ' Extract text from the PDF Private extractedText As String = pdf.ExtractAllText() ' Output the extracted text Console.WriteLine(extractedText) $vbLabelText $csharpLabel 注意: 此方法读取整个 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); } Imports iText.Kernel.Pdf Imports iText.Kernel.Pdf.Canvas.Parser Imports iText.Kernel.Pdf.Canvas.Parser.Listener ' Define the path to your PDF Private path As String = "sample.pdf" ' Open the PDF reader and document Using reader As New PdfReader(path) Using pdf As New PdfDocument(reader) ' Use a simple text extraction strategy Dim strategy = New SimpleTextExtractionStrategy() ' Extract text from the first page Dim pageText As String = PdfTextExtractor.GetTextFromPage(pdf.GetPage(1), strategy) ' Output the extracted text Console.WriteLine(pageText) End Using End Using $vbLabelText $csharpLabel 本示例展示了 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); Imports Microsoft.VisualBasic Imports IronPdf ' Load the PDF document Private pdf = PdfDocument.FromFile("longPdf.pdf") ' Define the page numbers to extract text from Private pages() As Integer = { 2, 3, 4 } ' Extract text from the specified pages Private text = pdf.ExtractTextFromPages(pages) ' Output the extracted text Console.WriteLine("Extracted text from pages 2, 3, and 4:" & vbLf & text) $vbLabelText $csharpLabel 高级示例:使用 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(); Imports iTextSharp.text.pdf Imports iTextSharp.text.pdf.parser Imports System.IO Imports System.Text ' Load the 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()) ' Close the PDF reader reader.Close() $vbLabelText $csharpLabel 代码比较总结 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); Imports IronPdf ' Load the PDF Private pdf = PdfDocument.FromFile("sample.pdf") ' Extract all text from every page Private extractedText As String = pdf.ExtractAllText() ' Output the extracted text Console.WriteLine(extractedText) $vbLabelText $csharpLabel 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()); Imports iTextSharp.text.pdf Imports iTextSharp.text.pdf.parser Imports System.IO Imports System.Text ' 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 the extracted text Console.WriteLine(text.ToString()) $vbLabelText $csharpLabel 开发人员需要手动遍历页面,这会引入更多代码并在出现边缘案例时可能导致错误。 2. 性能和可靠性 IronPDF 基于现代渲染引擎 (Chromium) 构建,使其适合现代 PDF,即使是带有嵌入字体、旋转文本和多种布局的 PDF。 文本提取具有布局感知性,更自然地保留了间距。 尽管功能强大,iTextSharp 在复杂格式上可能会遇到困难。 带有混合方向或非标准编码的 PDF 文件可能产生乱码或文本顺序不正确。 3. 成本和许可 功能 IronPDF iTextSharp 许可证类型 商用(可试用) AGPL(免费)/ 商用(付费) 透明定价 公开定价 & 永久许可 复杂的层次和重分发规则 支持 专门的支持团队 社区支持(除非有许可) 在闭源应用中的使用 是(有许可证) 不支持 AGPL [{i:(如果您正在构建商业或专有软件,iTextSharp AGPL 将强迫您开源代码或支付商业许可证。 IronPDF 为闭源项目提供更灵活的许可模式。)] 4. 开发者支持和文档 IronPDF:附带现代文档、视频教程和快速基于工单的支持。 iTextSharp:文档良好,但除非您是付费客户,否则有限的免费支持。 5. 跨库总结 标准 IronPDF iTextSharp 简单性 高 – 一行文本提取 中等 – 手动页面迭代 性能 快速现代解析 复杂或扫描的 PDF 上较慢 商业友好 是,没有 AGPL 限制 AGPL 限制闭源应用的使用 支持与文档 专门的,响应式的 依赖社区 .NET Core 支持 完整 完整 结论 在 C# 中从 PDF 中提取文本时,IronPDF 和 iTextSharp 都是有效的工具——但它们服务于不同类型的开发人员。 如果您正在寻找现代、易于集成的解决方案,具有出色支持、积极维护的功能和无缝布局保留,那么 IronPDF 明显脱颖而出。 它减少了开发时间,提供了直观的 API,并在 .NET 框架内的广泛应用中表现出色,从 Web 应用程序到企业系统。 另一方面,iTextSharp 仍然是那些已经嵌入其生态系统的开发人员或需要对文本提取策略进行精细控制的开发人员的强大选择。 然而,它更陡峭的学习曲线和缺乏商业支持可能会减慢需要快速扩展或保持干净代码库的项目。 对于重视速度、清晰度和可靠结果的 .NET 开发人员来说,IronPDF 提供了一条面向未来的路径。 无论您是在构建文档自动化工具、搜索引擎还是内部仪表板,IronPDF 的强大功能和性能将帮助您更快、更智能地交付。 立即试用 IronPDF,下载免费试用,亲自体验不同之处。 凭借免费试用和开发者友好的 API,您可以在几分钟内开始。 {i:(iTextSharp 是其各自所有者的注册商标。 本网站与 iTextSharp 无关,也未得到 iTextSharp 的支持或赞助。所有产品名称、徽标和品牌均为其各自所有者的财产。 比较仅供参考,反映的是撰写时的公开信息。] 常见问题解答 如何使用现代库从 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 布局,使其比许多其他库更快。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十一月 13, 2025 比较 C# HTML 到 PDF 开源与 IronPDF 比较开源 HTML 到 PDF 库与 IronPDF for C#。发现哪个解决方案为您的 .NET 项目提供最佳的 PDF 生成能力。 阅读更多 已发布十月 27, 2025 哪种 ASP.NET Core PDF 库性价比最高? 发现适合ASP.NET Core应用程序的最佳PDF库。比较IronPDF的Chrome引擎与Aspose和Syncfusion的替代品。 阅读更多 已发布十月 27, 2025 如何使用 Aspose C# 与 IronPDF 创作 PDF 通过此逐步指南,学习如何使用 Aspose C# 与 IronPDF 创建 PDF,专为开发人员设计。 阅读更多 iTextSharp文档审核与IronPDF对比IronPDF和Puppeteer Sharp:完整C...
已发布十一月 13, 2025 比较 C# HTML 到 PDF 开源与 IronPDF 比较开源 HTML 到 PDF 库与 IronPDF for C#。发现哪个解决方案为您的 .NET 项目提供最佳的 PDF 生成能力。 阅读更多
已发布十月 27, 2025 哪种 ASP.NET Core PDF 库性价比最高? 发现适合ASP.NET Core应用程序的最佳PDF库。比较IronPDF的Chrome引擎与Aspose和Syncfusion的替代品。 阅读更多
已发布十月 27, 2025 如何使用 Aspose C# 与 IronPDF 创作 PDF 通过此逐步指南,学习如何使用 Aspose C# 与 IronPDF 创建 PDF,专为开发人员设计。 阅读更多