批量合并PDF文件
工作中经常需要把多个PDF文件合并成一个,比如把每月的报表整理成年度汇总。手动操作费时又容易出错,用Python几行代码就能搞定。
from PyPDF2 import PdfMerger
merger = PdfMerger()
# 添加要合并的文件
pdf_list = ['1月.pdf', '2月.pdf', '3月.pdf']
for pdf in pdf_list:
merger.append(pdf)
merger.write('年度报表.pdf')
merger.close()
拆分指定页面
有时候只需要PDF中的某几页,比如合同里的签字页。与其打印整份文件,不如直接提取出来。
from PyPDF2 import PdfReader, PdfWriter
reader = PdfReader('合同全文.pdf')
writer = PdfWriter()
# 提取第5页(索引从0开始)
page = reader.pages[4]
writer.add_page(page)
with open('签字页.pdf', 'wb') as f:
writer.write(f)
给PDF加水印
共享资料时不想被随意使用,可以加个半透明水印。这个功能在行政办公中特别实用。
from PyPDF2 import PdfReader, PdfWriter
reader = PdfReader('文档.pdf')
watermark = PdfReader('水印.pdf').pages[0]
writer = PdfWriter()
for page in reader.pages:
page.merge_page(watermark)
writer.add_page(page)
with open('带水印文档.pdf', 'wb') as f:
writer.write(f)
提取文本内容
发票、通知类PDF需要提取关键信息录入系统。虽然识别效果受排版影响,但简单文本基本没问题。
from PyPDF2 import PdfReader
reader = PdfReader('通知.pdf')
page = reader.pages[0]
text = page.extract_text()
print(text)
加密保护文件
发给客户的资料加上密码,防止外泄。设置密码后别人必须输入口令才能打开。
from PyPDF2 import PdfReader, PdfWriter
reader = PdfReader('项目方案.pdf')
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
# 设置打开密码
writer.encrypt('your_password')
with open('加密文件.pdf', 'wb') as f:
writer.write(f)