Как прочитать эту pdf-форму, используя PyPDF2 в python

https://www.fda.gov/downloads/AboutFDA/ReportsManualsForms/Forms/UCM074728.pdf

Я пытаюсь прочитать этот pdf-файл с помощью PyPDF2 или Pdfminer, но он говорит, что файл не был расшифрован в Pypdf2, а в pdfminer он говорит, что он может распаковать этот pdf-файл. Кто-нибудь дайте мне знать, как это сделать в среде Windows python3. Я не могу использовать poppler, так как не могу установить poppler в этом окне.


person user222213    schedule 13.04.2018    source источник
comment
Я предлагаю удалить URL-адрес из заголовка вопроса; достаточно включить его в основной текст вопроса.   -  person Jeremy Friesner    schedule 14.04.2018


Ответы (1)


Это файл 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
comment
Работал как шарм, так что спасибо. Сначала я расшифровал с помощью qpdf, затем получил все поля в pdf. это было потрясающе. Почему бы нам не реализовать эту функцию в PyPDF2? - person user222213; 15.04.2018
comment
Есть ли способ определить в pdf, есть ли URL-адреса, закладки, аннотации и комментарии с использованием PyPDF2. @ксилопейнт - person user222213; 15.04.2018
comment
Привет, получаю ошибку "Файл не найден" в check_call. :( - person Sid; 08.06.2018