【数据提取】 Python 提取PDF中的文字和图片

从PDF中提取内容能帮助我们获取文件中的信息,以便进行进一步的分析和处理。此外,在遇到类似项目时,提取出来的文本或图片也能再次利用。要使用Python从PDF文件中提取文本和图片 ,可以借助**Spire.PDF for Python** 这个第三方库。具体操作方法查阅下文。

目录

[安装 Spire.PDF for Python](#安装 Spire.PDF for Python)

[使用 Python 提取PDF文本](#使用 Python 提取PDF文本)

[使用 Python 提取PDF页面中指定矩形区域的文本](#使用 Python 提取PDF页面中指定矩形区域的文本)

[使用 Python 提取PDF图片](#使用 Python 提取PDF图片)


安装 Spire.PDF for Python

本文中用到的Python PDF库支持在各种 Python 程序中创建、读取、编辑、转换和保存 PDF 文档。要安装此产品,使用以下 pip 命令。

复制代码
pip install Spire.PDF

详细安装教程点击: 如何在 VS Code 中安装 Spire.PDF for Python

使用 Python 提取PDF文本

Spire.PDF for Python 提供的 PdfPageBase.ExtractText() 方法能提取一个 PDF 页面中文本。根据你的具体需求,你可以选择仅提取某页中的文本,或者遍历所有页面以提取整个PDF文件中的文本。完整Python代码如下:

python 复制代码
from spire.pdf import *
from spire.pdf.common import *

# 创建PdfDocument类的实例
pdf = PdfDocument()

# 加载PDF文档
pdf.LoadFromFile("大数据.pdf")

# 创建一个TXT文件来保存提取的文本
extractedText = open("Output/提取文本.txt", "w", encoding="utf-8")

# 遍历文档的每一页
for i in range(pdf.Pages.Count):
    # 获取页面
    page = pdf.Pages.get_Item(i)
    # 从页面提取文本
    text = page.ExtractText()
    # 将文本写入TXT文件
    extractedText.write(text + "\n")

extractedText.close()
pdf.Close()

提取结果:

使用 Python 提取PDF页面中指定矩形区域的文本

如果你只需要提取某个PDF页面中指定区域的文本,你可以指定一个矩形范围然后使用 PdfPageBase.ExtractText(RectangleF rectangleF) 方法提取其中的文本内容。完整Python代码如下:

python 复制代码
from spire.pdf import *
from spire.pdf.common import *

# 创建PdfDocument类的对象
pdf = PdfDocument()

# 加载PDF文档
pdf.LoadFromFile("大数据.pdf")

# 获取第一页
page = pdf.Pages.get_Item(0)

# 从页面的指定矩形区域提取文本
text = page.ExtractText(RectangleF(0.0, 400.0, 770.0, 180.0))

# 将提取的文本保存到TXT文件中
extractedText = open("Output/PDF文本.txt", "w", encoding="utf-8")
extractedText.write(text)
extractedText.close()
pdf.Close()

提取结果:

使用 Python 提取PDF图片

除了提取文本外,Spire.PDF for Python 还提供了 PdfPageBase.ExtractImages() 方法来提取PDF文件中的图片。要提取一个PDF文件中的所有图片并保存到指定路径,参考以下Python代码。

python 复制代码
from spire.pdf import *
from spire.pdf.common import *

# 创建PdfDocument类的实例
pdf = PdfDocument()

# 加载PDF文档
pdf.LoadFromFile("大数据.pdf")

# 创建一个列表来存储图篇
images = []

# 遍历文档的每一页
for i in range(pdf.Pages.Count):
    # 获取页面
    page = pdf.Pages.get_Item(i)
    # 从页面提取图片并存储在创建的列表中
    for img in page.ExtractImages():
        images.append(img)

# 保存图像
i = 0
for image in images:
    i += 1
    image.Save("Output/图片/图片-{0:d}.png".format(i), ImageFormat.get_Png())

pdf.Close()

提取结果:

通过Spire.PDF for Python库提供的以上示例,就能轻松实现PDF文件内容的提取。如果对该Python库感兴趣,可点击了解更多功能:Spire.PDF for Python 中文教程

相关推荐
linweidong2 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理
小玮看世界2 小时前
[Python]OD算法在OD实际运用转化参考清单
开发语言·python·算法
萧鼎2 小时前
2026实战:用 tomlkit 优雅读写 TOML 配置,告别手写解析器
python·开源·教程·python库
小刘在重生~3 小时前
Java 常用类|包装类 装箱拆箱、Integer 缓存面试题
java·python·缓存
2601_962099463 小时前
Python xlwt设置excel单元格字体及格式
python·excel·xlwt·样式设置·单元格格式
奇牙coding1233 小时前
GPT-6-Astra API 接入教程:OpenRouter 路由配置 + Python/curl 示例 + 静默降级踩坑
开发语言·python·gpt·ai
2601_962298274 小时前
Python与Selenium结合的Web自动化测试全流程实践教程
自动化测试·python·selenium·web测试·pageobjectmodel
天衍四九-4 小时前
第一章:从 LLM 到 Agent —— DeepSeek Harness 入门
网络·数据库·人工智能·python
529宝宝起名网4 小时前
用 Python 实现名字寓意评分算法:基于 NLP 语义分析的名字内涵深度评估
python·算法·自然语言处理
2601_962298674 小时前
Python:对象缓存优化机制(CPython)
python·性能优化·内存优化·cpython·对象缓存