Python操作PDF全总结
介绍
最近一个小demo需要对PDF进行操作,于是一不做而不休本着人人为我,我为人人的角度写我在做PDF操作时候用到的方法,同时也相当于给自己做知识普及,
pypdf2模块:
可以读取、写入、分割、合并PDF文件,需要单独安装
pdfplumber模块:
为了更好的读取PDF文件内容
可以提取PDF中的表格
因此若处理对象是PDF文档本身,则推荐使用pypdf2,如对 PDF 文档进行分割,合并, 插入等操作。
若处理对象是 PDF 文档中的文本,表格等内容,则推荐使用 pdfplumber。
pdfplumber使用方法
pdfplumber库按页处理 pdf ,获取PDF中的每个文本字符、矩形和行的详细信息,以及可以进行表格提取和可视化调试。主要应用于机器生成的PDF上,而非扫描的pdf文档。
具体介绍地址:https://github.com/jsvine/pdfplumber
安装
- RPM式系统(Redhat、CentOS)
pip install pdfplumber
- DEB式系统(Debian、Ubuntu)以下任一
pip install pdfplumber
apt install python-pdfplumber
- Windows
pip install pdfplumber
然后进行测试,如果能够正常显示则表明倒入成功。
使用
简单样例
import pdfplumber
with pdfplumber.open("test.pdf") as pdf:
first_page = pdf.pages[0]
print(first_page.chars[0])
其中:pdfplumber提供了两种读取pdf的方式:
pdfplumber.open("test.pdf")
pdfplumber.load(file_like_object)
这两种方法都返回pdfplumber.PDF类的实例(instance)。
加载带密码的pdf需要传入参数password,例如:
pdfplumber.open("file.pdf", password = "test")
提取单页pdf文字
import pdfplumber
with pdfplumber.open("test.pdf") as pdf:
first_page = pdf.pages[0]
text = first_page.extract_text()#提取文本
print(text)

提取所有页pdf文字
import pdfplumber
with pdfplumber.open("test.pdf") as pdf:
for page in pdf.pages: #遍历所有页码
text = page.extract_text()#提取文本
print(text)
提取所有pdf文字并写入文本中
import pdfplumber
with pdfplumber.open("test.pdf") as pdf:
for page in pdf.pages:
text = page.extract_text()#提取文本
txt_file = open("test2.txt",mode='a',encoding='utf-8')
txt_file.write(text)
提取PDF表格
pdfplumber的表检测方法大量借鉴了Anssi Nurminen的硕士学位论文),并受到Tabula的启发。 它是这样的:

本文详细介绍了如何使用Python的pdfplumber库和pypdf2库进行PDF文档处理,包括安装、基本用法、文本和表格的提取、PDF的读写、分割、合并、旋转、加密解密以及添加水印等操作,适合需要对PDF进行操作的开发者参考。
最低0.47元/天 解锁文章
4309

被折叠的 条评论
为什么被折叠?



