当前位置: 首页 > news >正文

PDF处理控件Spire.PDF系列教程:Python中快速提取PDF文本、表格、图像及文档信息

在 Python 中读取 PDF 文档是实现文档自动化、内容分析和数据提取的基础操作之一。无论你处理的是合同、报告、发票,还是科研论文,能够通过代码访问 PDF 内容,不仅能节省时间,还能带来更高效的处理流程。

要在 Python 中准确提取 PDF 的文本、表格、图像和元数据,一个稳定、功能完善的 PDF 操作库是关键。本文将介绍如何使用 Spire.PDF for Python 实现用 Python 读取 PDF 文档。该库提供简单易用、功能强大的API,无需依赖第三方工具。

Spire.PDF for Python 

配置 Python 读取 PDF 开发环境

Spire.PDF for Python 是一款功能全面的 PDF 读取库,支持通过 Python 代码提取 PDF 中的文本、表格、图像和文档信息。其主要特点包括:

  • 支持从磁盘或内存加载 PDF
  • 可读取文本、表格、图像和元数据
  • 无需依赖外部工具
  • 对结构化数据的识别精准
  • 提供免费版本供试用

非常适合希望快速集成 PDF 数据读取功能的开发者。

使用 pip 安装 Spire.PDF for Python:

pip install spire.pdf

或安装适用于轻量任务的 Free Spire.PDF for Python:

pip install spire.pdf.free

在 Python 中加载 PDF 文档

在读取 PDF 内容之前,需先将其加载到内存中。Spire.PDF 支持从文件路径或内存字节流加载文档,非常适用于处理网页上传或 API 返回的 PDF 数据。

从文件路径加载

使用 PdfDocument.LoadFromFile() 方法从本地读取 PDF 文件:

from spire.pdf import PdfDocument# 创建一个 PdfDocument 实例
pdf = PdfDocument()
# 加载一个 PDF 文档
pdf.LoadFromFile("sample.pdf")

从内存字节加载

如果不希望将文件保存到磁盘,可以先读取字节数据,并使用 Stream 对象加载:

from spire.pdf import PdfDocument, Stream# 将 PDF 文件读取为字节数组
with open("sample.pdf", "rb") as f:byte_data = f.read()# 使用字节数组创建一个流对象
pdfStream = Stream(byte_data)
# 使用流对象创建一个 PdfDocument 实例
pdf = PdfDocument(pdfStream)

用 Python 读取 PDF 中的文本

提取 PDF 中的文本内容是最常见的需求之一。Spire.PDF 提供简单方法,可获取整篇文档或指定页面中的所有可见文本。

读取 PDF 文档所有文本

遍历每一页,使用 PdfTextExtractor.ExtractText() 提取内容:

from spire.pdf import PdfDocument, PdfTextExtractor, PdfTextExtractOptions# 创建一个 PdfDocument 实例
pdf = PdfDocument()
# 加载一个 PDF 文档
pdf.LoadFromFile("sample.pdf")all_text = ""
# 遍历每一页
for pageIndex in range(pdf.Pages.Count):page = pdf.Pages.get_Item(pageIndex)# 创建一个 PdfTextExtractor 实例text_extractor = PdfTextExtractor(page)# 配置提取选项options = PdfTextExtractOptions()options.IsExtractAllText = Trueoptions.IsSimpleExtraction = True# 从当前页面提取文本all_text += text_extractor.ExtractText(options)# 打印提取到的全部文本
print(all_text)

Python 提取 PDF 所有文本示例

提取 PDF 页面指定区域的文本

如只需获取页面中某一特定区域的文本,可通过设置坐标区域实现:

from spire.pdf import RectangleF, PdfDocument, PdfTextExtractor, PdfTextExtractOptions# 加载 PDF 文件
pdf = PdfDocument()
pdf.LoadFromFile("sample.pdf")# 获取第一页
page = pdf.Pages.get_Item(0)
# 创建一个 PdfTextExtractor 实例
textExtractor = PdfTextExtractor(page)
# 设置提取区域,通过配置 PdfTextExtractOptions
options = PdfTextExtractOptions()
area = RectangleF.FromLTRB(0, 200, page.Size.Width, 270)  # x, y, width, height
options.ExtractArea = area
options.IsSimpleExtraction = True# 从指定区域提取文本
text = textExtractor.ExtractText(options)
print(text)

Python 从特定 PDF 页面区域提取文本示例

用 Python 读取 PDF 表格数据

PDF 中的表格广泛用于财务、账单等场景。借助 Spire.PDF 提供的表格提取器,你可以精准读取页面中的表格内容。

from spire.pdf import PdfDocument, PdfTableExtractor# 加载 PDF 文件
pdf = PdfDocument()
pdf.LoadFromFile("sample.pdf")# 创建一个 PdfTableExtractor 实例
table_extractor = PdfTableExtractor(pdf)
# 从第一页提取表格
tables = table_extractor.ExtractTable(0)
for table in tables:# 获取行数和列数row_count = table.GetRowCount()column_count = table.GetColumnCount()# 遍历每一行for i in range(row_count):table_row = []# 遍历每一列for j in range(column_count):# 获取单元格文本cell_text = table.GetText(i, j)table_row.append(cell_text)print(table_row)

PDF 表格提取效果图 Python

用 Python 提取 PDF 中的图像

PDF 文件常含有徽标、插图或扫描图像。Spire.PDF 支持提取并保存这些嵌入图像,方便后续使用或归档。

from spire.pdf import PdfDocument, PdfImageHelper# 加载 PDF 文件
pdf = PdfDocument()
pdf.LoadFromFile("sample.pdf")# 获取第一页
page = pdf.Pages.get_Item(0)# 创建一个 PdfImageHelper 对象
image_helper = PdfImageHelper()
# 获取页面上的图像信息
images_info = image_helper.GetImagesInfo(page)
# 将页面中的图像保存为图像文件
for i in range(len(images_info)):images_info[i].Image.Save("output/Images/image" + str(i) + ".png")

Python 提取 PDF 图像效果图

获取 PDF 元数据(标题、作者等)

你可以通过 Spire.PDF 获取文档的元数据信息,如标题、作者、主题和关键词等,有助于文档管理与归档。

from spire.pdf import PdfDocument# 加载 PDF 文件
pdf = PdfDocument()
pdf.LoadFromFile("sample.pdf")# 获取文档属性
properties = pdf.DocumentInformation
print("标题: " + properties.Title)
print("作者: " + properties.Author)
print("主题: " + properties.Subject)
print("关键词: " + properties.Keywords)

使用 Python 获取 PDF 元数据示例

常见问题答疑

Python 能读取 PDF 文件吗?

可以。Spire.PDF for Python 提供了读取文本、提取表格、图像和元数据的完整 API,支持结构化内容的精准解析。

能在 Jupyter Notebook 中使用 Spire.PDF 吗?

当然可以。只需通过 pip 安装,就能在 Jupyter Notebook 中调用 API 读取 PDF 文件、提取文本与图像等内容。

如何提取 PDF 文本?

加载文档后,使用 PdfTextExtractor.ExtractText() 方法遍历每一页即可提取所有可见文本。

可以不保存文件直接读取 PDF 吗?

可以。通过 LoadFromStream() 方法可直接读取字节数据,非常适合处理网页上传或接口返回的临时文件。

总结

借助 Spire.PDF for Python,你可以轻松完成 PDF 文件的读取和处理任务,包括文本、表格、图像和元数据的提取,还可将 PDF 转换为可分析的文本内容,是实现数据采集与文档自动化的理想方案。

http://www.lryc.cn/news/575218.html

相关文章:

  • Python 数据分析与可视化 Day 7 - 可视化整合报告实战
  • 视频中的开放世界目标计数
  • gitbash中执行命令巨慢
  • 淘宝API安全合规指南:避免数据泄露与封禁
  • AI助教来袭:用n8n和Gemini搭建英语作文自动批阅与学情分析系统
  • 【网站内容安全检测】之2:从网站所有URL页面中提取所有外部及内部域名信息
  • request这个包中,get 这个方法里传入的是params ,post这个方法里传入的是data 和 json。这个区别是什么?
  • 每日AI资讯速递 | 2025-06-25
  • 深入理解 Spring 框架的 Bean 管理与 IOC​
  • 车牌识别与标注:基于百度OCR与OpenCV的实现(一)
  • (C++)vector数组相关基础用法(C++教程)(STL库基础教程)
  • MiniMax-M1混合MoE大语言模型(本地运行和私有化搭建)
  • 数据结构 顺序表与链表
  • 深入学习入门--(一)前备知识
  • C++11原子操作:从入门到精通
  • 从数据到决策:UI前端如何利用数字孪生技术提升管理效率?
  • Webpack 构建过程详解
  • Web层注解
  • python学习笔记(深度学习)
  • FPGA基础 -- Verilog 格雷码(Gray Code)计数器设计与原理解析
  • 【网站内容安全检测】之3:获取所有外部域名访问后图像
  • ABP VNext + Ocelot API 网关:微服务统一入口与安全策略
  • Boosting:从理论到实践——集成学习中的偏差征服者
  • webman 利用tcp 做服务端 对接物联网
  • 机器学习×第十五卷:集成学习下篇——她开始构建每一轮更接近你的贴靠路径(XGBoost)
  • 基于STM32的个人健康助手的设计
  • Containerd 容器技术
  • 基于Hp感染的慢性胃炎居家管理小程序的设计与实现(消息震动)
  • LVS-DR负载均衡群集深度实践:高性能架构设计与排障指南
  • 鸿蒙OpenHarmony[Disassembler反汇编工具]ArkTS运编译工具链