15.1:PDF文档
15.1.1:从PDF提取文本
import PyPDF2
pdfFileObj = open("meetingminutes.pdf", 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
print(pdfReader.numPages)
pageObj = pdfReader.getPage(0)
print(pageObj.extractText())
以二进制模式打开文件,然后将他传入PdfFileReader()中得到它的PdfFileReader对象
PdfFileReader的namePages属性:获取PDF共有几页
PdfFileReader的getPage()函数:获取传入页号中的页面信息(索引从0开始)
extractText()函数:放回改文本页的字符串。提取文本信息但并不完美
15.1.2:解密PDF
import PyPDF2
pdfReader = PyPDF2.PdfFileReader(open('encrypted.pdf', 'rb'))
print(pdfReader.isEncrypted)
print(pdfReader.decrypt('rosebud'))
PdfFileReader的isEncrypted属性:判断PDF是否加密,是返回True,否则False
PdfFileReader的decrypt()函数:传入口令字符串进行解密,如果加密文件没有调用这个函数在调用getPage()函数就会报错,并且该函数只解密了PdfFileReader对象,不是实际的PDF文档。
15.1.3:创建PDF
与PdfFileReader对象相对的PdfFileWriter对象,它可以创建一个新的PDF文档,但不能将任意的文本写入PDF,不像python可以写入纯文本文件,能力仅限于从其他PDF中复制页面、旋转页面、重叠页面和加密页面,不允许直接编辑PDF。
- 打开一个或多个已有的PDF,得到PdfFileReader对象
- 创建一个新的PdfFileWrite对象
- 将页面从PdfFileReader对象复制到PdfFileWrite对象中
- 利用PdfFileWrite对象写入输出的PDF
复制页面
import PyPDF2
pdf1File = open('meetingminutes.pdf', 'rb')
pdf2File = open('meetingminutes2.pdf', 'rb')
pdf1Reader = PyPDF2.PdfFileReader(pdf1File)
pdf2Reader = PyPDF2.PdfFileReader(pdf2File)
pdfWriter = PyPDF2.PdfFileWriter()
for pageNum in range(pdf1Reader.numPages):
pdfObj = pdf1Reader.getPage(pageNum)
pdfWriter.addPage(pdfOb