Python для чтения PDF-файлов - PullRequest
11 голосов
/ 10 мая 2011

Я нашел много постов, где предлагались решения для чтения PDF.Я хочу прочитать PDF-файл слово за словом и сделать некоторые обработки на нем.люди предлагают pdfMiner, который преобразует весь файл PDF в текстовый файл.Но я хочу, чтобы слово за словом читало pdf.Может кто-нибудь предложить библиотеку, которая делает это ??

Ответы [ 3 ]

7 голосов
/ 10 мая 2011

Возможно, самый быстрый способ сделать это - сначала преобразовать ваш pdf в текстовый файл, используя pdftotext (на сайте pdfMiner есть утверждение, что pdfMiner в 20 раз медленнее, чем pdftotext), а затем разбирать текст файл как обычно.

Кроме того, когда вы сказали «Я хочу прочитать слово в формате PDF слово за словом и выполнить некоторую обработку на нем», вы не указали, хотите ли вы выполнять обработку на основе слов в файле PDF или действительно хочу изменить сам PDF-файл. Если это второй случай, значит у вас совсем другая проблема.

6 голосов
/ 24 июня 2011

Я использую pdfminer, и это отличная библиотека, особенно если вы знакомы с программированием на python.Он читает PDF и извлекает каждый символ, а также предоставляет ограничивающую рамку в виде кортежа (x0, y0, x1, y1).Pdfminer извлечет прямоугольники, линии и некоторые изображения и попытается обнаружить слова.У него есть неприятная процедура O (N ^ 3), которая анализирует ограничивающие блоки, чтобы объединить их, поэтому в некоторых файлах она может работать очень медленно.Попробуйте конвертировать ваш типичный файл - возможно, это будет быстро для вас, или, может быть, это займет 1 час, в зависимости от файла.

Вы можете легко вывести pdf в виде текста, это первоеВы должны попробовать для вашего приложения.Вы также можете сбросить XML (см. Ниже), но вы не можете изменить PDF.XML является наиболее полным представлением PDF-файла, из которого вы можете извлечь его.

Вы должны прочитать примеры, чтобы использовать его в своем коде Python, в нем мало документации.

Пример, который поставляется с PdfMiner, который преобразует PDF в xml, показывает, как лучше всего использовать lib в вашем коде.Он также показывает вам, что извлечено в удобочитаемой (как XML) форме.

Вы можете вызывать это с параметрами, которые говорят ему «анализировать» PDF.Если вы это сделаете, он объединит буквы в блоки текста (слова и предложения; предложения будут иметь пробелы, так что их легко разбить на слова в python).

1 голос
/ 10 мая 2017

В то время как мне очень понравился ответ pdfminer, я бы сказал, что пакеты со временем не совпадают.В настоящее время pdfminer по-прежнему не поддерживает Python3 и может нуждаться в обновлении.Итак, чтобы обновить тему - даже если за ответ уже проголосовали - я бы предложил зайти pdfrw с веб-сайта:

  • Версия 0.3 протестированаи работает на Python 2.6, 2.7, 3.3, 3.4 и 3.5. Операции включают подмножество, объединение, поворот, изменение метаданных и т. д.
    • Самый быстрый из доступных чистых парсеров PDF на языке Python.press production
    • Может использоваться с rst2pdf для точного воспроизведения векторных изображений
    • Может использоваться либо в автономном режиме, либо в сочетании с reportlab для повторного использования существующих PDF-файлов в новых
    • Разрешительная лицензия
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...