仅支持算法代码1和2

时间:2018-06-07 23:03:22

标签: python pypdf2

我想阅读pdf文件。这是一本带有密码的book.pdf(256位AES加密)。我知道密码。我正在使用Jupyter Notebook。

我收到错误:

import PyPDF2
pdfReader = PyPDF2.PdfFileReader(open('book.pdf', 'rb'))
pdfReader.decrypt('333')
pdfReader.getPage(0)


---------------------------------------------------------------------------
 NotImplementedError                       Traceback (most recent call last)
 <ipython-input-12-7dd54b6a760a> in <module>()
  1 import PyPDF2
  2 pdfReader = PyPDF2.PdfFileReader(open('book.pdf', 'rb'))
  ----> 3 pdfReader.decrypt('333')
  4 pdfReader.getPage(0)

 c:\users\a\programs\python\python36-32\lib\site-packages\PyPDF2\pdf.py in 
 decrypt(self, password)
 1985         self._override_encryption = True
 1986         try:
 -> 1987             return self._decrypt(password)
 1988         finally:
 1989             self._override_encryption = False

 c:\users\a\python\python36-32\lib\site-packages\PyPDF2\pdf.py in 
_decrypt(self, password)
1994             raise NotImplementedError("only Standard PDF encryption 
handler is available")
1995         if not (encrypt['/V'] in (1, 2)):
-> 1996             raise NotImplementedError("only algorithm code 1 and 2 
are supported")
1997         user_password, key = self._authenticateUserPassword(password)
1998         if user_password:

NotImplementedError: only algorithm code 1 and 2 are supported

3 个答案:

答案 0 :(得分:1)

最近,我也遇到了同样的问题。我不确定为什么会发生错误,但是这是一种缓解错误的方法,可以使用不同于PyPDF2的模块:

import pikepdf
pdf = pikepdf.open('book.pdf',password='333')
pdf.save('book_without_pass.pdf')

以上代码将加密的PDF book.pdf和密码'333'保存到book_without_pass.pdf

答案 1 :(得分:1)

我遇到了同样的问题,然后更改了加密级别的 PDF 选项:40 位 RC4 它有帮助。 我认为这与 PyPDF2 模块有关。

答案 2 :(得分:0)

NotImplementedError 这是因为模块不支持文件加密格式
你必须尝试不同的模块