news 2026/7/2 5:08:11

解锁 PDF 内容:如何用 Python 从 PDF 中快速提取文本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
解锁 PDF 内容:如何用 Python 从 PDF 中快速提取文本

在现代办公环境中,PDF 文件作为一种通用的文档格式被广泛使用。无论是合同、报告还是电子书,很多重要信息都储存于 PDF 文件中。因此,从 PDF 文件中提取文本数据的需求也逐渐增加。本文将为大家介绍如何使用 Spire.PDF for Python 来实现这一功能,具体包括从某一页和从指定区域提取文本。

1. 环境准备

首先,确保你已经安装了 Python 和 Spire.PDF 的相关库。你可以通过以下命令安装 Spire.PDF:

pip install Spire.PDF

2. 从指定页面提取文本

2.1 代码示例

以下代码展示了如何从 PDF 文档中的特定页(例如第2页)提取文本:

from spire.pdf.common import * from spire.pdf import * # 创建一个 PdfDocument 对象 doc = PdfDocument() # 加载 PDF 文档 doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf') # 创建 PdfTextExtractOptions 对象并启用全文本提取 extractOptions = PdfTextExtractOptions() # 提取所有文本,包括空格 extractOptions.IsExtractAllText = True # 获取特定的页面(例如,第2页) page = doc.Pages.get_Item(1) # 创建 PdfTextExtractor 对象 textExtractor = PdfTextExtractor(page) # 从页面中提取文本 text = textExtractor.ExtractText(extractOptions) # 使用 UTF-8 编码将提取的文本写入文件 withopen('output/TextOfPage.txt', 'w', encoding='utf-8') as file: file.write(text)

2.2 代码解析

  1. 创建PdfDocument对象:这一步是加载 PDF 文件的第一步。
  2. 加载 PDF 文档:使用指定路径加载你要处理的 PDF 文件。
  3. 配置提取选项:通过设置IsExtractAllText为 True,确保提取所有文本,包括空格。
  4. 获取特定页面doc.Pages.get_Item(1)获取的是 PDF 的第二页(索引从0开始)。
  5. 创建文本提取器并提取文本:使用PdfTextExtractor对象来提取文本。
  6. 将提取的文本保存为文件:最终将文本内容保存到指定路径的文件中。

3. 从指定区域提取文本

有时候,仅提取 PDF 中的某一特定区域的文本更加有效。这可以通过定义一个矩形区域来实现。

3.1 代码示例

以下代码将展示如何从 PDF 的指定区域提取文本:

from spire.pdf.common import * from spire.pdf import * # 创建一个 PdfDocument 对象 doc = PdfDocument() # 加载 PDF 文档 doc.LoadFromFile('C:/Users/Administrator/Desktop/Terms of service.pdf') # 获取特定的页面(例如,第2页) page = doc.Pages.get_Item(1) # 创建 PdfTextExtractor 对象 textExtractor = PdfTextExtractor(page) # 创建 PdfTextExtractOptions 对象 extractOptions = PdfTextExtractOptions() # 定义提取的矩形区域 # RectangleF(left, top, width, height) extractOptions.ExtractArea = RectangleF(0.0, 100.0, 890.0, 80.0) # 从指定区域提取文本,保留空格 text = textExtractor.ExtractText(extractOptions) # 使用 UTF-8 编码将提取的文本写入文件 withopen('output/TextOfRectangle.txt', 'w', encoding='utf-8') as file: file.write(text)

3.2 代码解析

  1. 加载 PDF 文件:与之前相同,首先加载 PDF 文档。
  2. 获取特定页面:依然使用doc.Pages.get_Item(1)来获取第2页。
  3. 定义提取区域:通过RectangleF类来定义一个矩形区域,该区域的左上角坐标为(0, 100),宽度为890,高度为80
  4. 执行文本提取:然后使用ExtractText方法从指定区域提取文本。
  5. 保存文本:最后,提取的文本同样保存为 UTF-8 编码的文件。

结论

通过以上方法,我们可以方便地从 PDF 文档中提取所需的文本信息。Spire.PDF for Python 提供的 API 简洁高效,能够满足多种文本提取需求。不论是从全页提取还是从特定区域提取,在实际工作中都能显著提高效率,尤其对于需要处理大量 PDF 文件的场合,使用此工具将使你事半功倍。

希望这篇博客能够帮助你更好地理解如何使用 Python 提取 PDF 文本,让你的工作更轻松高效!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 21:15:19

缓冲技术与 Spooling 技术是操作系统中实现高效 I/O 管理的关键手段

缓冲技术与 Spooling 技术是操作系统中实现高效 I/O 管理的关键手段。它们通过不同的机制解决 CPU 与外设之间的速度差异和资源独占问题,从而提升系统整体性能。 1. 缓冲技术 作用:缓解 CPU 与 I/O 设备间的速度不匹配,提高设备利用率和系统并…

作者头像 李华
网站建设 2026/6/30 17:41:29

国产 DM 数据库技术学习心得与实践探索

目录一、学习背景与整体认知1.1 国产数据库发展现状1.2 DM 数据库核心定位与技术架构1.3 学习目标与核心收获二、DM 数据库核心技术深度剖析2.1 存储引擎底层原理2.1.1 数据存储结构(页、区、段)2.1.2 事务日志与恢复机制2.2 SQL 引擎与优化器2.2.1 执行…

作者头像 李华
网站建设 2026/6/26 16:58:06

排水管道缺陷数据集4767张VOC_YOLO(已增强)

排水管道缺陷数据集4767张VOC_YOLO(已增强)数据集格式:VOC格式YOLO格式压缩包内含:3个文件夹,分别存储图片、xml、txt文件JPEGImages文件夹中jpg图片总计:4767Annotations文件夹中xml文件总计:4…

作者头像 李华
网站建设 2026/6/28 23:13:57

深度学习毕设项目:机器学习基于python深度学习的猫狗表情识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/29 0:23:35

基于微信小程序的自习室预约小程序的设计与实现(源代码+文档+PPT+调试+讲解)

课题摘要基于微信小程序的自习室预约系统,聚焦自习室运营 “座位精细化管控、预约便捷化、数据可视化” 的核心需求,针对传统自习室 “座位抢占、人工登记繁琐、时段利用率低” 的痛点,构建覆盖预约用户、自习室管理员的全流程预约管理生态。…

作者头像 李华