霍格沃兹测试开发学社

《Python测试开发进阶训练营》(随到随学!)
2023年第2期《Python全栈开发与自动化测试班》(开班在即)
报名联系weixin/qq:2314507862

软件测试|教你用Python处理PDF文件(二)

在这里插入图片描述

前言

上一篇文章我们介绍了Python使用pypdf2实现读取PDF文件的文本内容,合并PDF文件,以及为PDF文件添加水印,本篇文章我们来介绍使用Python实现对PDF文件的加密解密。

环境准备

我们还是使用PyPDF2这个库来实现对PDF文件的加密解密操作,安装命令如下:

pip install PyPDF2

文件加密

有的时候,我们并不希望所有人都能看到PDF文件的内容,所以我们就需要给PDF文件加密,python支持给PDF文件加密,代码如下:

from PyPDF2 import PdfReader, PdfWriter

reader = PdfReader("files/test.pdf")
writer = PdfWriter()

# 拷贝每一页的内容
for page in reader.pages:
    writer.add_page(page)

# 在新的pdf文件中添加密码
writer.encrypt("secret-password")

# 保存成新的pdf
with open("test_encrypted.pdf", "wb") as f:
    writer.write(f)

运行代码后,生成一个新的加密文件,点击查看时,会提示需要输入密码,如下:

在这里插入图片描述

文件解密

当我们要查看加密文件的内容时,可以使用这个功能,我们就以上面加密生成的文件为例,对加密文件进行解密,代码如下:

from PyPDF2 import PdfReader, PdfWriter

# 读取上面加密的pdf文件
reader = PdfReader("test_encrypted.pdf")
writer = PdfWriter()

# 解密
if reader.is_encrypted:
    reader.decrypt("secret-password")

# 将每一页内容加到writer对象中
for page in reader.pages:
    writer.add_page(page)

# 保存解密后的pdf
with open("test_decrypted.pdf", "wb") as f:
    writer.write(f)

运行脚本后,我们可以新增了一个test_decrypted.pdf,可以直接点击查看文件内容,如下:

在这里插入图片描述

总结

本文主要为大家介绍了使用Python为PDF文件加密解密的方法,加密解密是我们常用的操作,使用该方法,可以提高我们的工作效率。

获取更多技术资料,请点击!

posted @ 2023-08-14 14:16  霍格沃兹测试开发学社  阅读(28)  评论(0编辑  收藏  举报