Я нашел много сообщений, где были предложены решения для чтения pdf файлов. Я хочу прочитать файл pdf словом и выполнить некоторую обработку. люди предлагают pdfMiner, который преобразует весь файл PDF в текстовый файл. Но я хочу, чтобы читать pdf файлы по слову. Может ли кто-нибудь предложить библиотеку, которая делает это?
Python для чтения pdf файлов
Ответ 1
Возможно, самый быстрый способ сделать это - сначала преобразовать ваш pdf файл в текстовый файл, используя pdftotext (на сайте pdfMiner есть утверждение, что файл pdfMiner в 20 раз медленнее, чем pdftotext), а затем разбор текстового файла как обычно.
Кроме того, когда вы сказали: "Я хочу прочитать файл pdf по слову и выполнить некоторую обработку на нем", вы не указали, хотите ли вы выполнять обработку на основе слов в pdf файле, или вы на самом деле хотите изменить сам файл pdf. Если это второй случай, то у вас есть совсем другая проблема на ваших руках.
Ответ 2
Я использую 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).
Ответ 3
В то время как мне действительно понравился ответ pdfminer, я бы сказал, что с течением времени пакеты не совпадают. Currenlty pdfminer по-прежнему не поддерживает Python3 и может нуждаться в обновлении. Итак, чтобы обновить тему - даже если ответ уже был проголосован - я бы предложил pdfrw с веб-сайта:
- Версия 0.3 проверена и работает на Python 2.6, 2.7, 3.3, 3.4 и 3.5 Операции включают подмножество, слияние, вращение, изменение метаданных и т.д.
- Доступен самый быстрый чип-анализатор Python PDF. Много лет использовался принтером в пре-прессе.
- Может использоваться с rst2pdf для точного воспроизведения векторных изображений
- Может использоваться как автономно, так и совместно с reportlab для повторного использования существующих PDF файлов в новых
- Допустимо лицензированная