写这篇文章的目的:
因为最近需要上传一个解码后的PDF,但该PDF含有过多的个人信息,从私密性考虑,不想用网上免费的解码网站,所以就打算自己写个小程序,完成解码。这里所谓的解码,是指你已经知道密码,只是从加密格式转换成解码格式。这篇文章只对和我有相同需求的人有帮助,如果不知道密码,下面的内容对你也没帮助。需要密码!需要密码!需要密码!
环境配置
前置条件:(已安装python、pip)
再安装了python与pip 之后,你只需在cmd中敲下面两行command安装我们需要的PyPDF2库
pip install PyPDF2
安装完成后你可以通过 pip list 查看是否安装成功
pip list
代码主要步骤
#加载必要的库
-----------------------------------------------
# coding:utf-8
import os
from PyPDF2 import PdfFileReader
from PyPDF2 import PdfFileWriter
-----------------------------------------------
#导入需要解密的文件
-----------------------------------------------
read_file = open('encrypted_filename.pdf', 'rb')
read_pdf = PdfFileReader(read_file, strict=False)
-----------------------------------------------
#解密文件
-----------------------------------------------
read_pdf.decrypt('Your_PassWord')
#查看文件是否被解密:
#read_pdf.getNumPages() 如果没被解密,会报错;解密了会返回文件的Page number
#read_pdf.isEncrypted 对于加密文件来说,我试过调用decrypt()前后,isEncrypted返回的都是1,无法作为是否解密成功的判断
-----------------------------------------------
#输出解密文件
-----------------------------------------------
write_pdf = PdfFileWriter()
write_pdf.appendPagesFromReader(read_pdf)
pdf_writer.write(open('decrypted_filename.pdf', 'wb'))
read_fil.close
-----------------------------------------------