Это файл PDF с ограниченным доступом. В большинстве случаев вы можете расшифровать файл, который не запрашивает пароль, используя PyPDF2 с пустой строкой:
from PyPDF2 import PdfFileReader
reader = PdfFileReader('sample.pdf')
reader.decrypt('')
К сожалению, это не относится к вашему файлу или любому другому файлу с уровнем шифрования 128-bit AES
, который не поддерживается для метода decrypt()
PyPDF2, возвращающего файл NotImplementedError
.
В качестве простого обходного пути вы можете сохранить этот файл как новый файл в Adobe Reader или аналогичном, и новый файл должен работать для вашего кода.
Кроме того, вы можете сделать это программно, используя qpdf
как описано в этой проблеме GitHub:
import os, shutil, tempdir
from subprocess import check_call
try:
tempdir = tempfile.mkdtemp(dir=os.path.dirname(filename))
temp_out = os.path.join(tempdir, 'qpdf_out.pdf')
check_call(['qpdf', "--password=", '--decrypt', filename, temp_out])
shutil.move(temp_out, filename)
print 'File Decrypted'
finally:
shutil.rmtree(tempdir)
person
xilopaint
schedule
14.04.2018