乐于分享
好东西不私藏

从 PDF 中提取文本:开发者基础、方法与资源

从 PDF 中提取文本:开发者基础、方法与资源

无论你处理的是扫描文档、复杂版式还是编码文本,PDF 文本提取都需要合适的工具与技术,才能获取干净、可用的内容。在本篇博客中,我们将讲解 PDF 文本提取的基础知识,介绍不同方法,并拆解文本提取代码示例与使用场景,帮你找到满足需求的解决方案。

需要从 PDF 中提取文本的常见场景包括:

  • 为文本建立索引
  • 对文本进行分析无论是否包含文本的位置 / 样式信息

PDF 文本提取的核心要素

文本提取技术

  • Unicode 文本提取
    PDF 可使用 Unicode 编码存储文本,支持以正确字符编码提取文本。
  • OCR
    当 PDF 包含扫描图像或不可选文本时,可使用 OCR 技术从图像中识别并提取文本。

  • 使用场景
  • 内容分析
    文本提取常用于内容分析,让应用程序能够解析和处理 PDF 文档内的文本信息。
  • 数据提取
    从 PDF 中提取结构化数据(如表格或表单数据)是常见场景。
  • 可搜索归档
    通过提取文本使 PDF 内容可检索,方便用户在海量文档中查找特定信息。

  • 挑战
  • 文本版式
    PDF 存储文本的方式会反映文档视觉布局,提取时保持原始格式存在难度。
  • 基于图像的文本
    部分 PDF 将文本以图片形式存在,需要 OCR 才能准确提取。
  • 加密 PDF
    加密 PDF 需要先解密,才能进行文本提取。
  • 编程接口
    多数编程语言都有支持 PDF 文本提取的库或 API,可解析 PDF 结构并提取文本内容。

PDF 文本提取方法与代码示例

Adobe PDF Library SDK 几乎可以处理任何 PDF 文本提取场景。以下是我们提供的文本提取代码示例及其适用场景。注意:本文示例基于 .NET/C#,GitHub 主页还提供 C++、Java/Maven、Kotlin 等其他语言版本。

提取页面文本

TextExtract 示例从 PDF 文件中提取文本并导出为 TXT 文件。它会打开名为 Constitution.PDF 的文件,生成输出文件 TextExtract-untagged-out.txt,导出文件包含页码引用,文本使用标准 Times Roman 编码。程序还支持处理带标签文档,可判断原始 PDF 是否带标签。标签用于让视障人士可访问 PDF。

提取 PDF 表单数据

ExtractAcroFormFieldData 示例演示如何从 PDF 的 AcroForm 字段中提取文本。适用于处理可填写表单的用户,可将表单内文本提取为 JSON 文件,用于文本编辑器或浏览器。

按模式匹配搜索

ExtractTextByPatternMatch 示例使用简单统一的命令在文档文本中搜索模式(如电话号码),并将数据提取到 TXT 文件。例如,美国电话号码格式为 ###-###-####,全球格式各不相同。该示例只需在代码中使用 PHONE_PATTERN,即可轻松提取任意电话号码,无需编写复杂正则表达式。

你还可以使用 ExtractCJKTextByPatternMatch 示例搜索中、日、韩(CJK)Unicode 字符。全球有超过 15 亿人使用这些语言,企业必须能够正确提取海量不同字符。

按区域提取文本

ExtractTextByRegion 示例从 PDF 页面指定区域提取文本,并保存为 TXT 文件。例如,企业有成千上万份格式统一的发票,需要从 PDF 固定区域提取编号;或美国国税局需要从 1044 表格特定区域提取社保号,均可使用该功能。

从多区域提取文本

ExtractTextFromMultiRegions 示例批量处理文件夹中的 PDF,从页面多个指定区域提取文本,并保存为 CSV 文件。例如,可将文件夹内所有发票的编号、日期、订单号、客户 ID、金额汇总到一个文件中,实现数据一站式查看。

提取批注信息

PDF 可能包含数千条批注。ExtractTextFromAnnotations 示例演示如何提取批注信息并保存为独立的 JSON 文件。例如,合同谈判中包含已通过或驳回的评论与疑问,该功能可提取相关数据。

保留样式提取

ExtractTextPreservingStyleAndPositionInfo 示例从 PDF 提取所有文本及文本相关信息(保存为 JSON),包括样式、颜色、字号等,实现样式保留。


其他基于文本的使用场景与代码示例

除上述文本提取示例外,我们还提供向 PDF 添加文本元素的相关示例,均可在 GitHub 的 “Text” 文件夹中找到。

添加字形

字形可表示标准文本字体中没有的特殊符号或字符,如字母、数字、标点及其他符号。字形常见于技术文档、数学论文或需要特殊符号的专业领域(设计、印刷、金融、法律等)。设计师常使用字形作为装饰元素、项目符号或图标,提升可读性与设计一致性。此外,部分语言的字符在通用字体中不受支持,添加专用字形可确保准确呈现,对保留文本含义与可读性至关重要。

添加 Unicode 文本

Unicode 提供全面的字符编码标准,支持几乎所有书面语言,包括中文、阿拉伯文、梵文等非拉丁文字。使用 Unicode 可在 PDF 中包含多语言文本,确保准确呈现与可读性。Unicode 还能保证文本在不同设备、操作系统和 PDF 阅读器中一致显示,极具通用性。这在全球通信中尤为重要,同一文档可能在多平台查看。Unicode 还支持文本检索,优势显著。

添加竖排文字

竖排是部分语言的传统书写方式,尤其中、日、韩等东亚语言。这些语言常采用从上到下、从右到左的阅读顺序。在 PDF 中添加竖排文字对保留这些语言的文化与语言规范至关重要。

正则表达式提取文本

正则表达式(regex)支持高精度、灵活的搜索模式。可搜索短语的不同形式,如不同拼写、单词形态或简单关键词无法匹配的部分内容。处理大型文档或多个 PDF 时,正则表达式可快速找到所有目标内容,节省人工检索时间。

Regex PDF Text Search

在输入 PDF 中搜索短语或文本模式。提供用于搜索电话、邮箱、URL 的示例正则表达式,可直接使用或自定义。支持搜索整个 PDF 或指定页码范围。程序生成与原文件一致的输出 PDF,仅将搜索内容高亮显示。可输入输入文件名与输出文件名。示例使用 PDDocTextFinder 在输入 PDF 中查找短语或模式。


不止于此!你还可以使用 APDFL 对 PDF 文本执行以下操作:

  • Unicode Text
    演示 Unicode 文本操作,向 PDF 页面添加多语言文本。
  • Text Select Enum
    使用 PDTextSelect 功能,演示如何在 PDF 页面指定区域内选择文本。
  • Text Search
    演示如何在输入 PDF 中查找并高亮显示指定单词的所有实例。
  • Hello Japan
    相当于日文版的 Hello World,运行后生成包含日文汉字 “Hello Japan” 的 PDF 文档。

使用 Adobe PDF Library 简化开发流程

访问 Datalogics GitHub 仓库,了解更多关于 Adobe PDF Library 以及 PDF 文本创建、修改与管理的示例。立即开始免费试用,体验我们的 PDF SDK 如何帮你缩短开发周期。

#AdobePDFLibrarySDK#PDF内容提取#PDF开发#导出PDF
联系销售:400-838-9650
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 从 PDF 中提取文本:开发者基础、方法与资源

评论 抢沙发

2 + 4 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮