之前介绍过在线移除pdf密码的方式,但在线的方式多少有些安全隐患,而且当pdf过大时,下载的速度也堪忧。所以就补充一个利用python来解密的方案。
博主的python版本是python2.7.18。解密需要用到python的PyPDF2库,如果本地未安装的话可以利用pip语句在线安装一个。
pip install PyPDF2
这个方式仅限于较为简单的防误修改的密码,对复杂加密的pdf文件可能失效,解密代码如下:
import PyPDF2
from PyPDF2 import PdfReader, PdfWriter
def remove_pdf_password(input_path, output_path, password):
# 读取加密的PDF
reader = PdfReader(input_path)
if reader.is_encrypted:
reader.decrypt(password)
# 创建写入器并添加所有页面
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
# 保存无密码的PDF
with open(output_path, "wb") as f:
writer.write(f)
# 使用示例
input_pdf = "encrypted.pdf"
output_pdf = "unencrypted.pdf"
password = "yourpassword" # 替换为实际密码
remove_pdf_password(input_pdf, output_pdf, password)
将代码保存为.py文件,放入待解密encrypted.pdf
文件的同文件夹,成功后会收获一个名为unencrypted.pdf
的文件,利用这个文件就可以进行正常的截图与打印工作了。