我想阅读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
答案 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
这是因为模块不支持文件加密格式
你必须尝试不同的模块