如何通过 C# 实现 PDF 文本提取?
PDF 文本提取方案对比对比维度传统方案痛点Spire.PDF 解决方案依赖环境需安装 Adobe Reader 等第三方软件完全独立的内核无需任何外部依赖加密文件支持无法处理有密码保护的 PDF支持加载加密 PDF只需提供密码即可开发复杂度需理解 COM 组件调用代码繁琐 ★★★★☆纯 .NET 接口简洁直观 ★★☆文档与社区官方文档零散中文支持差提供完整的 API 文档及中文技术社区C# 实战教程三步完成 PDF 文本提取1. 环境准备首先创建一个 .NET 控制台应用程序支持 .NET Framework 4.6.1 或 .NET Core 3.1。然后通过 NuGet 安装 Spire.PDF 库。在 Visual Studio 中打开“程序包管理器控制台”输入以下命令Install-Package FreeSpire.PDF注意免费版对处理的 PDF 页数有限制如最多10页适用于个人或小型项目。2. 提取单页文本的核心代码下面演示如何加载一个 PDF 文件提取其中某一页的所有文本并保存到 TXT 文件中。using System.IO; using Spire.Pdf; using Spire.Pdf.Texts; namespace ExtractTextFromPage { class Program { static void Main(string[] args) { // 1. 加载 PDF 文档 PdfDocument doc new PdfDocument(); doc.LoadFromFile(示例.pdf); // 2. 获取指定页面Pages 集合从 0 开始此处获取第 2 页 PdfPageBase page doc.Pages[1]; // 3. 创建 PdfTextExtractor 对象用于提取该页文本 PdfTextExtractor textExtractor new PdfTextExtractor(page); // 4. 设置提取选项提取页面上所有文本 PdfTextExtractOptions extractOptions new PdfTextExtractOptions(); extractOptions.IsExtractAllText true; // 提取全部文本 // 5. 执行提取 string text textExtractor.ExtractText(extractOptions); // 6. 将提取的文本写入文件 File.WriteAllText(提取指定页面文本.txt, text); // 7. 释放资源 doc.Close(); } } }关键参数说明PdfTextExtractor文本提取器绑定到指定页面。PdfTextExtractOptions提取选项可设置提取范围全页或矩形区域。ExtractText()执行提取返回该页所有文本的字符串。3. 高级应用技巧处理加密 PDF 文件若 PDF 受密码保护只需在加载时传入密码所有者密码或用户密码均可取决于文件权限doc.LoadFromFile(加密.pdf, password);提取所有页面文本通过遍历文档的每一页将提取的文本合并StringBuilder allText new StringBuilder(); foreach (PdfPageBase page in doc.Pages) { PdfTextExtractor extractor new PdfTextExtractor(page); PdfTextExtractOptions options new PdfTextExtractOptions(); options.IsExtractAllText true; string pageText extractor.ExtractText(options); allText.AppendLine(pageText); } File.WriteAllText(全部页面文本.txt, allText.ToString());提取指定区域的文本有时我们只需要页面中某个矩形区域内的文本可以通过ExtractArea属性指定区域单位点1 点 1/72 英寸PdfTextExtractOptions options new PdfTextExtractOptions(); options.ExtractArea new System.Drawing.RectangleF(50, 100, 400, 300); // 左、上、宽、高 string areaText textExtractor.ExtractText(options);技术组合建议在实际项目中PDF 文本提取往往不是终点还需要结合其他功能实现完整的数据处理流程文本格式提取使用PdfTextFinder可以按样式字体、颜色、大小定位特定文本便于提取标题、关键词等。表格数据提取若 PDF 中包含表格使用PdfTableExtractor可以直接提取结构化表格数据返回 DataTable 或二维数组。扫描件 OCR 集成对于扫描版 PDF图片格式可搭配Spire.OCR库进行光学字符识别提取其中的文字信息。总结通过 Free Spire.PDF for .NET开发者可以轻松绕过传统方案的诸多限制在 .NET 环境中实现稳定、高效的 PDF 文本提取。其简洁的 API 设计大大降低了编码难度同时丰富的扩展功能如加密处理、区域提取、表格识别可以满足不同业务场景的需求。