加密和解密PDF文件

加密就是给这个PDF文件加上一个密码,打开的时候要输入密码才能打开。解密就是把这个密码去掉。实现加密要用到PdfWriter对象的encrypt方法,指定一个密码来进行加密。解密用的是PdfReader对象的decrypt方法,注意两个对象不一样。

实现加密的代码如下所示。

code.python
>>> from PyPDF2 import PdfReader,PdfWriter
>>> pdf_reader=PdfReader('D:\\test.pdf')
>>> pdf_writer=PdfWriter()
>>> n=len(pdf_reader.pages)
>>> for p in range(n):
    pdf_writer.add_page(pdf_reader.pages[p])
>>> 
>>> pdf_writer.encrypt('123456')
>>> with open('D:\\加密.pdf','wb') as pdf:
      pdf_writer.write(pdf)

首先把PDF文件的数据读出来,打开以后,分页把每一页的内容添加到PdfWriter里面,添加完了以后,在写入PDF文件之前,用PdfWriter对象的encrypt方法进行加密,加密以后再保存到指定的文件。

实现解密的代码如下所示。

code.python
>>> from PyPDF2 import PdfReader,PdfWriter
>>> pdf_reader=PdfReader('D:\\加密.pdf')
>>> pdf_reader.decrypt('123456')
>>> pdf_writer=PdfWriter()
>>> n=len(pdf_reader.pages)
>>> for p in range(n):
    pdf_writer.add_page(pdf_reader.pages[p])
>>> 
>>> with open('D:\\解密.pdf','wb') as pdf:
      pdf_writer.write(pdf)

首先也是打开文件,打开文件以后用PdfReader对象的decrypt方法进行解密。解密完了以后,再重复上面的动作,逐页把数据读出来以后,添加到PdfWriter,然后进行保存。保存以后的这个文件就是没有加密的,没有密码了,是解密以后的文件。