👉 项目官网:https://www.python-office.com/ 👈

github star

大家好,这里是程序员晚枫,正在all in AI编程实战

工作中 PDF 无处不在——合同、报告、手册、论文……

今天教你怎么用 python-office 处理 PDF

1、PDF读取:提取文字内容

假设有一个 合同.pdf,想提取里面的文字:

1
2
3
4
5
6
7
import office

# 1行代码读取PDF
text = office.pdf.read(path='合同.pdf')

# 打印内容
print(text)

🎉 Done!PDF 文字全部提取出来了!

2、PDF合并:把多个PDF合并成一个

假设有三个 PDF 要合并:

1
2
3
4
5
6
7
import office

# 合并多个PDF
office.pdf.merge(
file_list=['合同1.pdf', '合同2.pdf', '合同3.pdf'],
output_file='合并合同.pdf'
)

运行后,合并合同.pdf 包含了所有内容。

3、PDF拆分:把一个大PDF拆成多个

想把一个 PDF 的某些页面单独拆出来:

1
2
3
4
5
6
7
8
import office

# 拆分PDF:提取第1-3页和第5页
office.pdf.split(
path='长文档.pdf',
page_list=[1, 2, 3, 5],
output_file='提取页面.pdf'
)

4、PDF转Word:把PDF内容转成Word

想把 PDF 内容转成可编辑的 Word:

1
2
3
4
import office

# PDF转Word
office.pdf.pdf2docx(path='报告.pdf', output_file='报告.docx')

⚠️ 这个功能需要较新的 python-office 版本,如果没有先更新:

1
pip install python-office -U

5、PDF转图片:把PDF页面转成图片

1
2
3
4
import office

# 把PDF每一页转成图片
office.pdf.pdf2img(path='演示文稿.pdf', output_folder='图片文件夹')

每个页面会生成一张 PNG 图片。

6、实战案例:批量提取合同关键信息

财务每月要提取所有合同的金额和日期:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import office
import os
import re

# 合同文件夹
folder = 'C:\\合同'

# 遍历所有PDF
results = []
for file in os.listdir(folder):
if file.endswith('.pdf'):
path = os.path.join(folder, file)
text = office.pdf.read(path=path)

# 提取金额(正则匹配)
amounts = re.findall(r'¥(\d+\.?\d*)', text)

# 提取日期
dates = re.findall(r'(\d{4}年\d{1,2}月\d{1,2}日)', text)

results.append({
'文件名': file,
'金额': amounts[0] if amounts else '未找到',
'日期': dates[0] if dates else '未找到'
})

# 写入Excel
office.excel.write(path='合同汇总.xlsx', data=results)
print('合同汇总完成!')

7、常见问题

Q:PDF是扫描件,没有文字怎么办?

A:用 OCR 识别(第15讲会讲)。

Q:合并后文件太大?

A:合并前可以先压缩:

1
office.pdf.compress(path='大文件.pdf', output_file='压缩后.pdf')

Q:转换失败?

A:部分复杂 PDF 格式可能不支持,换用专业工具试试。

8、下讲预告

学会了 PDF,下一讲我们学 Word处理——读取Word、写入Word、Word转PDF。

敬请期待!


有问题欢迎加微信 python-office 进群交流~

程序员晚枫专注AI编程培训,小白看完他和图灵社区合作的教程《30讲 · AI编程训练营》就能上手做AI项目。

🎓 AI 编程实战课程

想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!