一、PyPDF2简介
利用Python+PyPDF2,我们能够实现对PDF的一些操作。
当然,PyPDF2对PDF的操作并非万能的,在使用过程中我们需要注意以下问题:
- PyPDF2无法从PDF文档中提取图像、图表或其他媒体,它可以提取文本并返回字符串
- 有时候PDF提取文本会出错,甚至无法打开某些PDF
- PyPDF2不能任意将文本写入PDF,仅限于从其他PDF拷贝页面、旋转页面、重叠页面和加密文件
- 模块不能直接编辑PDF,必须创建一个新的PDF,然后从已有的文档拷贝内容
PyPDF2的安装也非常简单
如果你是Windows系统,直接进入DOS命令行
输入:pip install PyPDF2
然后回车即可等待自动完成安装
PyPDF2的主要功能有以下六项,我们也将分别从这六大功能来介绍PyPDF2的使用:
- 从PDF提取文本
- 创建PDF
- 拷贝PDF
- 旋转PDF
- 叠加PDF
- 解密与加密PDF
——
二、PyPDF2六大基操
1、从PDF提取文本
import PyPDF2 # 注意y一定是小写
pdfFileobj = open('meetingminutes.pdf','rb') # 用二进制只读形式打开文件
pdfReader = PyPDF2.PdfFileReader(pdfFileobj) # 获取内容对象
print(pdfReader.numPages) # 打印PDF页数
pageobj = pdfReader.getPage(0) # 获取页面是从0开始的,也就是0表示PDF中的第一页
print(pageobj.extractText()) # 返回该页文本的字符串
从上面代码我们能学到什么?
- 我们需要以二进制形式打开PDF文件
- 我们需要为PDF创建对象
- 获取当前PDF的页数:numPages
- 获取某一页PDF:getPage() …第1页是从0开始
- 返回页面字符串内容:extractText()
我们看看返回的内容与实际页面的对比,还是有一定的差距误差(红色框框标注的)
2、创建PDF
import PyPDF2 # 注意y一定是小写
pdfWriter = PyPDF2.PdfFileWriter() # 创建PDF写入对象
如果只是要读入PDF,我们要创建PdfFileReader对象;如果创建一个需要写入的PDF,我们则要创建PdfFileWriter对象。
具体怎么使用,我们接着后面的案例来说道。
3、拷贝PDF
通过拷贝PDF,我们可以实现两个PDF的合并操作。
因为我们在最开始说过,PyPDF2并不能实现将任意内容写入原本的PDF中,所以我们只能创建一个新的PDF,并将内容写入其中。
以下我们通过具体代码展示,如何把两个PDF(meetingminutes.pdf和meetingminutes.pdf)合并到一个PDF(combainedmin