Python - PyPDF2模块的基本操作1. 安装2. 应用2.1 获取PDF文件的基本信息2.2 将PDF文件拆分成多个PDF文件2.2.1 将PDF文件每一页拆分成一个PDF文件2.2.2 将PDF文件每十页拆分成一个PDF文件2.3 将多个PDF文件合并为一个PDF文件2.4 将PDF文件加密2.5 将PDF文件解密2.6 将PDF文件添加水印
命令:pip install pypdf2
x1from PyPDF2 import PdfReader2
3# PDF文件4path = 'demo.pdf'5
6with open(path,'rb') as rbf:7 pdf_read = PdfReader(rbf)8 # 获取PDF文件的基本信息对象9 info = pdf_read.metadata10 dic = {11 '页数':len(pdf_read.pages),12 '标题':info.get('/Title'),13 '作者':info.get('/Author'),14 '创建时间':info.get('/CreationDate'),15 '修改时间':info.get('/ModDate'),16 'PDF版本':pdf_read.pdf_header17 }18 print(dic)19 20# 输出结果21{'页数': 145, '标题': 'Python手册-0620', '作者': 'Liu Qianqian', '创建时间': 'D:20160620028668Z', '修改时间': "D:20160620130185+08'00'", 'PDF版本': '%PDF-1.3'}xxxxxxxxxx171from PyPDF2 import PdfReader,PdfWriter2
3# PDF文件4path = 'demo.pdf'5
6pdf_read = PdfReader(path)7
8# 获取PDF文件页数9pages = len(pdf_read.pages)10
11for i in range(0,pages):12 page = pdf_read.pages[i]13 pdf_write = PdfWriter()14 pdf_write.add_page(page)15 save_name = str(i+1).zfill(3) + '.pdf' # str(i+1)因为i是从0开始16 with open(save_name,'wb') as wbf:17 pdf_write.write(wbf)xxxxxxxxxx181from PyPDF2 import PdfReader,PdfWriter2
3# PDF文件4path = 'demo.pdf'5
6pdf_read = PdfReader(path)7
8# 获取PDF文件页数9pages = len(pdf_read.pages)10
11for i in range(0,pages,10):12 pdf_write = PdfWriter()13 for j in range(i,min(i+10,pages)):14 page = pdf_read.pages[j]15 pdf_write.add_page(page)16 save_name = str(i+1).zfill(3) + '.pdf' # str(i+1)因为i是从0开始17 with open(save_name,'wb') as wbf:18 pdf_write.write(wbf)xxxxxxxxxx141from PyPDF2 import PdfReader,PdfMerger2
3# 需要合并的PDF文件名列表4files = ['demo.pdf','demo1.pdf','demo2.pdf','demo3.pdf']5
6# 合并以后的PDF文件7new_path = 'demo4.pdf'8
9pdf_joint = PdfMerger()10
11for file in files:12 pdf_joint.append(PdfReader(file))13
14pdf_joint.write(new_path)xxxxxxxxxx201from PyPDF2 import PdfReader,PdfWriter2
3# PDF文件4path = 'demo.pdf'5
6# 加密后的PDF文件7new_path = 'demo_encryption.pdf'8
9pdf_read = PdfReader(path)10
11pdf_write = PdfWriter()12
13pages = len(pdf_read.pages)14
15for i in range(pages):16 pdf_write.add_page(pdf_read.pages[i])17# 加密18pdf_write.encrypt(user_password='123456',use_128bit=True)19with open(new_path,'wb') as wbf:20 pdf_write.write(wbf)xxxxxxxxxx251from PyPDF2 import PdfReader,PdfWriter2
3# 需解密的PDF文件4path = 'demo_encryption.pdf'5
6# 解密后的PDF文件7new_path = 'demo.pdf'8
9# 密码10pwd = '123456'11
12pdf_read = PdfReader(path)13
14pdf_write = PdfWriter()15
16# 解密17pdf_read.decrypt(pwd)18
19pages = len(pdf_read.pages)20
21for i in range(pages):22 page = pdf_read.pages[i]23 pdf_write.add_page(page)24 with open(new_path,'wb') as wbf:25 pdf_write.write(wbf)xxxxxxxxxx261from PyPDF2 import PdfReader,PdfWriter2
3# PDF文件4path = 'demo.pdf'5
6# 水印文件7water_path = 'water.pdf'8
9# 加完水印后的PDF文件10new_path = 'demo_water.pdf'11
12# 创建水印页对象13water_page = PdfReader(water_path).pages[0]14
15pdf_read = PdfReader(path)16
17pdf_write = PdfWriter()18
19page_num = len(pdf_read.pages)20
21for i in range(page_num):22 page = pdf_read.pages[i]23 page.merge_page(water_page)24 pdf_write.add_page(page)25 with open(new_path,'wb') as wbf:26 pdf_write.write(wbf)