Не удается получить текст из файла PDF с помощью PyPDF2 - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь получить текст из файла PDF, который я скачал с помощью PyPDF.Вот мой код:

if not PyPDF2.PdfFileReader('download.pdf').isEncrypted:
    PyPDF2.PdfFileReader('download.pdf').getPage(0).extractText()

Это вывод:

'\n\n˘ˇ˘ˆ˙\n˝˛˚˜!\n\n\n\n#\nˇ˘ˆ˙ˆ˝˛˝\n˙˙˘ ˘ˆ"˝\n$!%˙(˝)˙*˜+,˝-.#/.(#0)0)/.1.+02345.\n˛˛ˇ/#.$/0/70/#.+322.32˙˘˛˘˘\n˛˘ 8˙˘9:˘ˆ;\n˛˘\n\n˝=\n˙˘˛\n.ˇ<9:˘ˇˇ%˘˛ˇ ˘˘<˘\n˝>"?˝˘$@<˘*ˆˆ˘˙˘A˘B˘˙˘˛ˇ!˛˘˙˘˛ˇ˘\n1C˙ˆ˘06˛˘8+˛9:˘D10+E˝ˆ˘8\n$˘˘9:˘˘1C˙ˆ˘+˘F˛˘D$1+FE˝˘˛˘˘<˘?˝\n////)*˘1˘˛ ?GG˜*HI\nD˘˙A˘E\nJ$\n˛\nDLE///M˛˝˛˙˘˛˘˛\n˛˘˛>"?\n˙˘˛\n˛\n/)M6;˝˛˙˘˛˘\n˛\n///˛\n\n'

Когда я открываю файл, его содержимое в порядке.Также, когда я использую другую программу для преобразования pdf в txt, она работает нормально.Это pdf на веб-странице в формате javascript, не знаю, имеет ли это какое-то значение.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

В Win 7, Python 3.6, у меня была проблема с тем, что PyPDF2 неправильно кодировал некоторые PDF-файлы.Моим решением было использовать pdfminer.six.

pip install pdfminer.six

Чтобы извлечь текст из PDF, вы можете использовать такие функции, как в этом посте: https://stackoverflow.com/a/42154976/9524424

Работает идеально для меня...

0 голосов
/ 11 октября 2018

Следующая информация взята из документации (https://pythonhosted.org/PyPDF2/PageObject.html)

extractText () Найдите все команды рисования текста в порядке их предоставления в потоке контента и извлеките текст. Это работаетхорошо для некоторых файлов PDF, но плохо для других, в зависимости от используемого генератора. Это будет уточнено в будущем. Не полагайтесь на порядок текста, выходящего из этой функции, так как он изменится, если эта функция будет сделана более сложнойВозвращает: строковый объект Unicode.

Итак, похоже, что производительность этой функции зависит от самого PDF-файла.

...