C#使用Spire.PDF for .NET轻松提取PDF文件中的文字内容

 更新时间:2026年03月31日 08:20:22   作者:LSTM97  
从 PDF 中提取文本内容却常常令人头疼,本文将介绍如何使用 Spire.PDF for .NET 这一强大的组件,通过 C# 代码轻松实现 PDF 文本提取,感兴趣的可以了解下

在数据处理工作中,PDF 文件因其跨平台、格式稳定的特点而被广泛使用。然而,从 PDF 中提取文本内容却常常令人头疼——无论是整理资料、分析数据,还是构建文本检索系统,高效准确地提取 PDF 文本都是一项基础而重要的需求。本文将介绍如何使用 Spire.PDF for .NET 这一强大的组件,通过 C# 代码轻松实现 PDF 文本提取。

Spire.PDF for .NET 简介

Spire.PDF for .NET 是一款专业的 PDF 组件,它允许开发者在 .NET 平台上创建、读取、编辑和转换 PDF 文件,无需安装 Adobe Acrobat 或其他外部依赖。该组件提供了丰富的 API,其中文本提取功能尤为实用,支持提取整页文本,也支持仅提取指定区域的文本内容。

通过 NuGet 安装:

Install-Package Spire.PDF

从指定页面提取全文

在实际应用中,最常见的需求是将某个 PDF 页面的全部文字提取出来。使用 Spire.PDF 可以轻松实现这一目标。以下是用 C# 实现的完整代码:

using Spire.Pdf;
using Spire.Pdf.Texts;
using System.IO;

namespace ExtractTextFromIndividualPages
{
    internal class Program    
    {
        static void Main(string[] args)
        {
            // 创建 PDF 文档实例
            PdfDocument pdf = new PdfDocument();
            // 加载 PDF 文件
            pdf.LoadFromFile("Input.pdf");

            // 获取要提取文本的页面(例如,索引1对应第二页,注:索引从0开始)
            PdfPageBase page = pdf.Pages[1];

            // 为选中的页面创建PdfTextExtractor实例
            PdfTextExtractor extractor = new PdfTextExtractor(page);
            // 设置提取选项
            PdfTextExtractOptions option = new PdfTextExtractOptions
            {
                IsExtractAllText = true
            };
            // 从指定页面提取文本
            string text = extractor.ExtractText(option);

            // 将提取的文本保存到文本文件
            File.WriteAllText("Extracted.txt", text);
            // 关闭 PDF 文档
            pdf.Close();
        }
    }
}

上述代码的执行流程如下:首先创建 PdfDocument 对象并加载目标 PDF 文件。接着,通过 Pages 集合获取指定页面(本例为第一页)。为了实现完整的文本提取,设置 PdfTextExtractOptions 对象的 IsExtractAllText 属性为 true,确保提取时不会遗漏任何文本内容。随后,创建 PdfTextExtractor 对象并传入页面实例,调用 ExtractText 方法即可获得该页面的全部文字。最后,将提取到的文本写入本地文件,并关闭文档释放资源。整个过程简洁明了,仅需几行核心代码,便能完成从 PDF 页面到纯文本的转换。

从指定区域提取文本

在某些场景下,我们并不需要整页的内容,而只需要提取页面中的特定区域——例如表格中的某列数据、标题栏、签章区域等。Spire.PDF 同样提供了灵活的解决方案。以下是区域提取的 C# 实现代码:

using Spire.Pdf;
using Spire.Pdf.Texts;
using System.IO;
using System.Drawing;

namespace ExtractTextFromDefinedArea
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 创建 PDF 文档实例
            PdfDocument pdf = new PdfDocument();
            // 加载 PDF 文件
            pdf.LoadFromFile("Input.pdf");

            // 获取第二页(索引1对应第二页)
            PdfPageBase page = pdf.Pages[1];

            // 为选中的页面创建 PdfTextExtractor 实例
            PdfTextExtractor textExtractor = new PdfTextExtractor(page);
            // 设置提取选项(指定矩形区域)
            PdfTextExtractOptions extractOptions = new PdfTextExtractOptions
            {
                // 矩形区域参数:X坐标、Y坐标、宽度、高度
                ExtractArea = new RectangleF(0, 0, 595, 300)
            };

            // 从指定矩形区域提取文本
            string text = textExtractor.ExtractText(extractOptions);

            // 将提取的文本保存到文本文件
            File.WriteAllText("Extracted.txt", text);

            // 关闭 PDF 文档
            pdf.Close();
        }
    }
}

与全文提取类似,首先加载 PDF 并获取目标页面。关键区别在于设置提取区域:通过 PdfTextExtractOptionsExtractArea 属性,可以定义一个矩形区域,该区域由左上角坐标 (X, Y) 以及宽度和高度共同确定。组件会智能地仅提取该矩形范围内的文本内容。本例中定义的矩形区域起始坐标为 (0, 0),宽度为 595,高度为 300,单位为磅(Point)。

这种方法特别适合处理结构化的 PDF 文档,比如财务报表、发票或表单,可以精准定位并提取所需字段,大大提高了信息获取的效率和准确性。

实际应用与注意事项

在实际开发中,文本提取功能可广泛应用于数据采集、内容分析、文档归档等场景。例如,将合同 PDF 中的条款提取后存入数据库,或从科研论文 PDF 中抽取摘要部分进行检索分析。

使用 Spire.PDF 进行文本提取时,有几个要点值得注意:首先,确保矩形区域的坐标和尺寸准确无误,可以通过预览或测量工具辅助定位;其次,对于复杂的 PDF(如包含多列排版或特殊字体),建议启用完整提取模式以保证最佳效果;最后,提取完成后务必调用 Close 方法释放文档资源,避免内存占用。

总结

借助 Spire.PDF for .NET,C# 开发者可以以极简的代码实现高质量的 PDF 文本提取功能。无论是整页提取还是区域提取,该组件都提供了直观、可靠的解决方案。对于需要处理 PDF 文本的 .NET 项目而言,Spire.PDF 无疑是一个值得考虑的高效工具。

以上就是C#使用Spire.PDF for .NET轻松提取PDF文件中的文字内容的详细内容,更多关于C#提取PDF文本的资料请关注脚本之家其它相关文章!

相关文章

  • c#项目将dll打包到exe中的步骤

    c#项目将dll打包到exe中的步骤

    这篇文章主要介绍了c#项目将dll打包到exe中的步骤,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • Unity UGUI的CanvasScaler画布缩放器组件介绍使用

    Unity UGUI的CanvasScaler画布缩放器组件介绍使用

    这篇文章主要为大家介绍了Unity UGUI的CanvasScaler画布缩放器组件介绍使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 基于C#实现的多边形冲突检测实例

    基于C#实现的多边形冲突检测实例

    这篇文章主要给大家介绍了基于C#实现的多边形冲突检测的相关资料,文中介绍的方法并未使用第三方类库,可以完美解决这个问题,需要的朋友可以参考下
    2021-07-07
  • C# 拷贝数组的几种方法(总结)

    C# 拷贝数组的几种方法(总结)

    下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • C#中载入界面的常用方法

    C#中载入界面的常用方法

    这篇文章主要介绍了C#中载入界面的常用方法,涉及窗体的操作,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C#实现身份证号码验证的方法

    C#实现身份证号码验证的方法

    这篇文章主要介绍了C#实现身份证号码验证的方法,通过封装的类文件实例化调用实现了对身份证号码的验证,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • 利用Aspose.Word控件实现Word文档的操作

    利用Aspose.Word控件实现Word文档的操作

    偶然一次机会,一个项目的报表功能指定需要导出为Word文档,因此寻找了很多篇文章,不过多数介绍的比较简单一点,于是也参考了官方的帮助介绍,终于满足了客户的需求。下面我由浅入深来介绍这个控件在实际业务中的使用过程吧
    2013-05-05
  • C#之多余控件事件及代码删除问题

    C#之多余控件事件及代码删除问题

    这篇文章主要介绍了C#之多余控件事件及代码删除问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • C#使用FileStream对象读写文件

    C#使用FileStream对象读写文件

    这篇文章主要为大家详细介绍了C#使用FileStream对象读写文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • C#自动删除Word文档空白行和空白页的完整代码

    C#自动删除Word文档空白行和空白页的完整代码

    在处理 Word 文档时,经常会遇到空白行、空表格或空白页的问题,这不仅影响排版美观,还可能导致文档页数冗余,所以本文将介绍如何使用 Spire.Doc for .NET 在 C# 中自动删除 Word 文档的空白行、空表格和空白页,需要的朋友可以参考下
    2025-08-08

最新评论