【python自动化办公(12)】python批量完成PDF加密及解密(目标文件加密及加水印)

批量加水印

首先制作水印文件

打开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在输入密码打开后,左上方有个锁的样式,提醒这是一个加密文件

发布了37 篇原创文章 · 获赞 10 · 访问量 4638

猜你喜欢

转载自blog.csdn.net/lys_828/article/details/104113240
今日推荐