C#借助Free Spire.PDF for .NET实现轻松提取PDF文本

 更新时间:2026年03月03日 08:26:35   作者:LAYONTHEGROUND  
在日常办公和开发中,从 PDF 文件中提取文本是一项高频需求,本文将介绍如何使用免费库 Free Spire.PDF for .NET 轻松实现 PDF 文本提取,感兴趣的小伙伴可以了解下

在日常办公和开发中,从 PDF 文件中提取文本是一项高频需求。手动复制粘贴不仅耗时,而且面对大量文档时效率极低。传统的自动化方案往往依赖 Adobe Reader 等外部组件,不仅部署麻烦,遇到加密或扫描件更是难以处理。

本文将介绍如何使用免费库 Free Spire.PDF for .NET ,无需安装任何 PDF 阅读器,轻松实现高精度、高可靠性的 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 设计大大降低了编码难度,同时丰富的扩展功能(如加密处理、区域提取、表格识别)可以满足不同业务场景的需求。

到此这篇关于C#借助Free Spire.PDF for .NET实现轻松提取PDF文本的文章就介绍到这了,更多相关C#提取PDF文本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#控制台程序的开发与打包为一个exe文件实例详解

    C#控制台程序的开发与打包为一个exe文件实例详解

    所谓控制台程序,就是没有界面,运行程序后只有一个黑色的类似cmd窗口,通过这个窗口进行交互,下面这篇文章主要给大家介绍了关于C#控制台程序的开发与打包为一个exe文件的相关资料,需要的朋友可以参考下
    2023-05-05
  • C# winform实现多语言切换功能

    C# winform实现多语言切换功能

    这篇文章主要为大家详细介绍了如何使用C# winform实现多语言切换功能,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解下
    2024-02-02
  • 基于C# 实现刘谦春晚魔术(示例代码)

    基于C# 实现刘谦春晚魔术(示例代码)

    刘谦春晚魔术是一个让人叹为观止的魔术表演,其中涉及到了数学、编程和创意的结合,看了春晚魔术的朋友们,是不是好奇春晚刘谦的魔术是怎么变的,本文分享C# 实现刘谦春晚魔术示例代码,一起看看吧
    2024-02-02
  • C#编写的生辰八字计算程序

    C#编写的生辰八字计算程序

    这篇文章主要介绍了C#编写的生辰八字计算程序,假设一个人的公历出生时间,范围必须要在2012-2015年之间,因为本示例程序只提供了这几年的农历数据,小伙伴们参考下,可以自由扩展
    2015-03-03
  • C#中把英文字母转换为大写或小写的方法

    C#中把英文字母转换为大写或小写的方法

    这篇文章主要介绍了C#中把英文字母转换为大写或小写的方法,在编码中是一个比较常用的功能,需要的朋友可以参考下
    2014-08-08
  • C#编程实现发送邮件的方法(可添加附件)

    C#编程实现发送邮件的方法(可添加附件)

    这篇文章主要介绍了C#编程实现发送邮件的方法,具备添加附件的功能,涉及C#文件传输及邮件发送的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • c# 实现打印机状态查询与阻塞打印

    c# 实现打印机状态查询与阻塞打印

    这篇文章主要介绍了c# 引用System.Management来实现对打印机状态的查询,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-05-05
  • c#中的正则表达式和日期的使用示例

    c#中的正则表达式和日期的使用示例

    在 C# 中,正则表达式(Regular Expressions)是一种强大的文本处理工具,用于执行各种字符串搜索、替换和验证任务,这篇文章主要介绍了c#中的正则表达式和日期的使用示例,需要的朋友可以参考下
    2024-07-07
  • C#开发Windows服务实例之实现禁止QQ运行

    C#开发Windows服务实例之实现禁止QQ运行

    这篇文章主要介绍了通过C#开发Windows服务,查杀qq进程的服务功能,需要的朋友可以参考下
    2013-10-10
  • C#如何判断.Net Framework版本是否满足软件运行需要的版本

    C#如何判断.Net Framework版本是否满足软件运行需要的版本

    这篇文章主要介绍了C#如何判断.Net Framework版本是否满足软件运行需要的版本问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01

最新评论