Python 自动化处理 PDF 文件
职场中,PDF (Portable Document Format) 的地位不可替代——它的“跨平台所见即所得特性,能完美规避了Word/PPT在不同设备上排版崩坏的噩梦。在 Daoman Python AI 的日常自动化办公流程里,无论是批量整理扫描件、生成数据报告、还是批量给合同加密,Python 都是处理 PDF 的「瑞士军刀」。
本文整理了5个高频且实用的场景,配的都是能直接改改运行的代码👇
1. 从 PDF 中提取文本
如果只是想快速把标准文本型PDF的文字扒下来,PyPDF2 是首选:轻量、稳定,上手门槛极低。
安装与基础使用
先通过 pip 一键安装:
标准文本型PDF的提取代码非常直观:
✅ 这里加了个
or判空提示,方便定位「非文本页」,更实用
常见问题与替代方案
- 中文乱码:
PyPDF2对中文字体映射做得一般,试试PyMuPDF(性能拉满)或pdfminer.six(侧重布局,保留排版); - 扫描件PDF/OCR需求:上面的库都不行,得用
PaddleOCR +Tesseract 这类专门的 OCR 工具。
2. 基础PDF「小手术」:旋转、加密、合并
PyPDF2 的 PdfWriter 是专门用来**生成/修改现有PDF的核心对象,搭配 PdfReader 就能完成绝大多数“文档级操作”。
2.1 单页/批量旋转
扫描件经常会歪,或者需要批量调整奇偶页方向?看这段👇
2.2 批量加密敏感文件
薪资单、合同这类私密文档要批量加访问密码?一行代码搞定核心逻辑:
3. 批量叠加水印:页面合并的妙用
利用 page.merge_page() 可以把一个“水印页PDF”的内容,像素级叠加到目标PDF的每一页上——这种方法不会改变源文档的可读性和文字可编辑性,是批量打“内部资料”“草稿”“公司Logo水印”的标准做法。
准备工作
先自己做一个只有水印页PDF:用PPT/Word/PS都可以,只留水印元素就行,背景要设为**透明/白色(设白色的话,水印会覆盖掉PDF原来的文字哦,优先透明!
批量加水印代码
4. 从零生成专业PDF报告
如果要根据数据动态生成带**带自定义字体、图形、表格的报告,PyPDF2 就不够用了——必须上 reportlab,它是 Python 生成工业级 PDF 的“画板”。
安装与基础报告生成
先安装依赖:
带中文字体的简单报告代码
reportlab 默认不支持中文,需要**先注册本地的中文字体文件(比如 Windows 自带的 SimSun.ttf):
5. 总结与工具选型
💡 办公最佳实践:合同/报表这类对排版要求严格的,建议先用 Python 把 Excel 数据填入 Word 模板,最后再批量转成 PDF——既好维护排版,又能保证最终文件的不可篡改性!

