批量加水印
首先制作水印文件
打开Word,制作只有水印的页面,放在你想放水印的位置,保存为PDF(Word方便操作)
然后打开水印和要加水印的PDF文件,再创建一个PDF写入器
import os
os.chdir('D:\\python_major\\auto_office12')
from PyPDF2 import PdfFileReader,PdfFileWriter
from copy import copy
watermark_paf = PdfFileReader("水印.pdf")
watermark_page = watermark_paf.getPage(0)
pdf_reader = PdfFileReader("Netease Q2 2019 Earnings Release-Final.pdf")
pdf_writer = PdfFileWriter()
接着对每一页都进行合并水印的操作,注意.mergePage()方法合成的页面顺序
使用的方式为: 下面的内容.mergePage(出现在上面的内容)
for page in range(pdf_reader.getNumPages()):
original_page = pdf_reader.getPage(page)
new_page = copy(watermark_page)
new_page.mergePage(original_page)
pdf_writer.addPage(new_page)
with open("watermarked.pdf", "wb") as out:
pdf_writer.write(out
–> 输出结果为:
批量加密解密
加密 pdf_writer.encrypt(密码)
import os
os.chdir('D:\\python_major\\auto_office12')
from PyPDF2 import PdfFileReader,PdfFileWriter
pdf_reader = PdfFileReader("Netease Q2 2019 Earnings Release-Final.pdf")
pdf_writer = PdfFileWriter()
for page in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page))
pdf_writer.encrypt("hello")
with open("encrypted.pdf", "wb") as out:
pdf_writer.write(out)
–> 输出结果为:
解密PDF pdf_reader.decrypy(密码)
import os
os.chdir('D:\\python_major\\auto_office12')
from PyPDF2 import PdfFileReader,PdfFileWriter
pdf_reader = PdfFileReader("encrypted.pdf")
pdf_reader.decrypt("hello")
pdf_writer = PdfFileWriter()
for page in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page))
with open("encrypted.pdf", "wb") as out:
pdf_writer.write(out)
–> 输出结果为:
综合应用
编写一个Python程序,要求
(1)打开文件"Netease Q2 2019 Earnings Release-Final.pdf"
(2)给PDF加水印
(3)加密该文件
(4)生成encrypted.pdf文件
参考代码如下:
import os
os.chdir('D:\\python_major\\auto_office12')
from PyPDF2 import PdfFileReader,PdfFileWriter
from copy import copy
watermark_paf = PdfFileReader("水印图片.pdf")
watermark_page = watermark_paf.getPage(0)
pdf_reader = PdfFileReader("Netease Q2 2019 Earnings Release-Final.pdf")
pdf_writer = PdfFileWriter()
for page in range(pdf_reader.getNumPages()):
original_page = pdf_reader.getPage(page)
new_page = copy(watermark_page)
new_page.mergePage(original_page)
pdf_writer.addPage(new_page)
pdf_writer.encrypt("hello")
with open("encrypted.pdf", "wb") as out:
pdf_writer.write(out)
–> 输出结果为:
加密的pdf在输入密码打开后,左上方有个锁的样式,提醒这是一个加密文件