Как решить NotImplementedError при использовании PyPDF2 для извлечения текста из PDF?
Я хочу извлечь весь текст из зашифрованного файла PDF.
Мой компьютер использует Windows 10. И я использую Anaconda Jupiter Notebook, версия python - 3.7.1.
Сначала я попробовал PyPDF2. Я слышал, что поддержка PyPDF2 версии Python ниже 3.7. Но его можно установить на анаконду (я нашел этот файл в облаке анаконды).
Но я получаю NotImplementedError
.
from PyPDF2 import PdfFileReader
pdfFile = open(correctfilename)
pdfReader = PdfFileReader(pdfFile)
pdfReader.decrypt("")
count = pdfReader.numPages
for i in range(count):
page = pdfReader.getPage(i)
title_text = page.extractText()
И сообщения об ошибках такие.
NotImplementedError
Traceback (most recent call last)
<ipython-input-29-edf66e155d1f> in <module>
5 pdfFile = open(name[2] + "hs_textfile.pdf", "rb")
6 pdfReader = PdfFileReader(pdfFile)
----> 7 pdfReader.decrypt("")
8 count = pdfReader.numPages
9 for i in range(count):
~\Anaconda3\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
~\Anaconda3\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
Затем я попробовал pikepdf, но он не работал с окнами в блокноте Jupiter.
На самом деле я не знал, что файл, который я хочу открыть, зашифрован. Итак, я использовал pdfminer.six.
Как я могу расшифровать этот файл и извлечь текст?