仅支持算法代码 1 和 2



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

我收到一个错误:

import PyPDF2
reader = PyPDF2.PdfFileReader('book.pdf')
reader.decrypt('333')
reader.getPage(0)

---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-12-7dd54b6a760a> in <module>()
1 import PyPDF2
2 reader = PyPDF2.PdfFileReader('book.pdf')
----> 3 reader.decrypt('333')
4 reader.getPage(0)
c:usersaprogramspythonpython36-32libsite-packagesPyPDF2pdf.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:usersapythonpython36-32libsite-packagesPyPDF2pdf.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

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

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

上面的代码保存加密的pdfbook.pdf与密码,'333'book_without_pass.pdf

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

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

同时,在 PyPDF2 中添加了必要的功能。

我在 3.0.1 版中对其进行了测试。如果您通过搜索错误消息到达此处,您应该检查最新的 PyPDF2 版本是否解决了您的问题。

有关历史背景,请参阅abarnert在问题下发表的评论。

最新更新