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

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

1. 环境准备

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

python 复制代码
pip install Spire.PDF

2. 从指定页面提取文本

2.1 代码示例

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

python 复制代码
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 的指定区域提取文本:

python 复制代码
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 文本,让你的工作更轻松高效!

相关推荐
LaughingZhu5 小时前
Product Hunt 每日热榜 | 2026-01-28
数据库·经验分享·神经网络·搜索引擎·chatgpt
晚霞的不甘5 小时前
Flutter for OpenHarmony《智慧字典》 App 底部导航栏深度解析:构建多页面应用的核心骨架
前端·经验分享·flutter·ui·前端框架·知识图谱
WZgold1415 小时前
黄金突破5200美元!去美元化浪潮中的价值锚点重构
经验分享·重构
asyxchenchong8885 小时前
R语言生物群落数据分析——涵盖数据清洗、多元统计分析、混合效应模型、随机森林及结构方程模型等
经验分享
中屹指纹浏览器5 小时前
AI驱动指纹浏览器风控对抗:动态指纹自适应与GAN行为拟真全链路技术解析
经验分享·笔记
源代码•宸5 小时前
分布式理论基础——Raft算法
经验分享·分布式·后端·算法·golang·集群·raft
中屹指纹浏览器18 小时前
指纹浏览器性能优化实操——多实例并发与资源占用管控
经验分享·笔记
方见华Richard1 天前
递归对抗引擎RAE V4.0(AGI自主进化版)
经验分享·笔记·其他·交互·学习方法
LaughingZhu1 天前
Product Hunt 每日热榜 | 2026-01-27
大数据·人工智能·经验分享·神经网络·搜索引擎·产品运营
方见华Richard1 天前
递归对抗引擎RAE V2.0(多智能体分布式对抗版)
人工智能·经验分享·交互·学习方法·原型模式