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 PdfReader
2
3# PDF文件
4path = 'demo.pdf'
5
6with open(path,'rb') as rbf:
7 pdf_read = PdfReader(rbf)
8 # 获取PDF文件的基本信息对象
9 info = pdf_read.metadata
10 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_header
17 }
18 print(dic)
19
20# 输出结果
21{'页数': 145, '标题': 'Python手册-0620', '作者': 'Liu Qianqian', '创建时间': 'D:20160620028668Z', '修改时间': "D:20160620130185+08'00'", 'PDF版本': '%PDF-1.3'}
xxxxxxxxxx
171from PyPDF2 import PdfReader,PdfWriter
2
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)
xxxxxxxxxx
181from PyPDF2 import PdfReader,PdfWriter
2
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)
xxxxxxxxxx
141from PyPDF2 import PdfReader,PdfMerger
2
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)
xxxxxxxxxx
201from PyPDF2 import PdfReader,PdfWriter
2
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)
xxxxxxxxxx
251from PyPDF2 import PdfReader,PdfWriter
2
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)
xxxxxxxxxx
261from PyPDF2 import PdfReader,PdfWriter
2
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)