import os
import PyPDF2
# 输入文件夹
InputPdfFolder = 'source_pdf'
# 输出文件夹
OutputPdfFolder = 'out_pdf_usrpwd'
# 水印pdf(只需要一页,该页上面写上水印内容)
WatermarkName = 'watermark2.pdf'
# 创建输出文件夹
if not os.path.exists(OutputPdfFolder):
os.makedirs(OutputPdfFolder)
# 便利文件夹所有文件并操作
for filename in os.listdir(InputPdfFolder):
if filename.endswith('.pdf'):
input_Name = os.path.join(InputPdfFolder, filename)
output_Name = os.path.join(OutputPdfFolder, filename)
# pdf对象
pdf_Input = PyPDF2.PdfFileReader(input_Name)
# 水印pdf对象
watermark = PyPDF2.PdfFileReader(WatermarkName).getPage(0)
# pdf写入对象
pdfWriter = PyPDF2.PdfFileWriter()
# 对每个页面应用水印
for i in range(pdf_Input.numPages):
page = pdf_Input.getPage(i)
# 把每页与水印进行合并
page.mergePage(watermark)
pdfWriter.addPage(page)
# 设置密码
# owner_pwd为所有者密码,拥有最高权限(也即编辑)
# user_pwd为用户密码,如果该项为空,那么用户可以直接打开PDF
# use_128bit,是否采用128位加密(如果为False,则会采用40位加密)
pdfWriter.encrypt(owner_pwd="password", user_pwd="password", use_128bit=False)
# 保存结果文件
with open(output_Name, 'wb') as f:
pdfWriter.write(f)