PDFMiner — инструмент для извлечения текста из PDF-документов.
Предупреждение : по состоянию на 2020 год PDFMiner активно не поддерживается . Код все еще работает, но этот проект по большей части бездействует. Если вы хотите узнать об активном проекте, посмотрите его форк pdfminer.six.
Чистый Python (3.6 или выше).
Поддерживает PDF-1.7. (ну почти)
Получает точное расположение текста, а также другую информацию о макете (шрифты и т. д.).
Выполняет автоматический анализ макета.
Может конвертировать PDF в другие форматы (HTML/XML).
Может извлечь схему (TOC).
Может извлекать содержимое с тегами.
Поддерживает базовое шифрование (RC4 и AES).
Поддерживает различные типы шрифтов (Type1, TrueType, Type3 и CID).
Поддерживает языки CJK и сценарии вертикального письма.
Имеет расширяемый парсер PDF, который можно использовать для других целей.
> pip install pdfminer
> pdf2txt.py samples/simple1.pdf
pdf2txt.py извлекает все тексты, отображаемые программно. Он также извлекает соответствующие местоположения, названия шрифтов, размеры шрифтов, направление письма (горизонтальное или вертикальное) для каждого сегмента текста. Он не распознает текст на изображениях. Для документов PDF с ограниченным доступом необходимо указать пароль.
> pdf2txt.py [-P password] [-o output] [-t text|html|xml|tag] [-O output_dir] [-c encoding] [-s scale] [-R rotation] [-Y normal|loose|exact] [-p pagenos] [-m maxpages] [-S] [-C] [-n] [-A] [-V] [-M char_margin] [-L line_margin] [-W word_margin] [-F boxes_flow] [-d] input.pdf ...
-P password
: пароль PDF.
-o output
: имя выходного файла.
-t text|html|xml|tag
: тип вывода. (по умолчанию: автоматически выводится из имени выходного файла.)
-O output_dir
: Выходной каталог для извлеченных изображений.
-c encoding
: выходная кодировка. (по умолчанию: utf-8)
-s scale
: Масштаб вывода.
-R rotation
: поворачивает страницу в градусах.
-Y normal|loose|exact
: определяет режим макета. (только для вывода HTML.)
-p pagenos
: обрабатывает только определенные страницы.
-m maxpages
: ограничивает максимальное количество страниц для обработки.
-S
: удаляет управляющие символы.
-C
: отключает кэширование ресурсов.
-n
: отключает анализ макета.
-A
: Применяет анализ макета для всех текстов, включая рисунки.
-V
: автоматически определяет вертикальное письмо.
-M char_margin
: определяет поле для символов.
-W word_margin
: определяет поле слова.
-L line_margin
: определяет поле строки.
-F boxes_flow
: определяет соотношение потока блоков.
-d
: включает вывод отладки.
dumppdf.py используется для отладки PDF-файлов. Он выгружает все внутреннее содержимое в формате псевдо-XML.
> dumppdf.py [-P password] [-a] [-p pageid] [-i objid] [-o output] [-r|-b|-t] [-T] [-O directory] [-d] input.pdf ...
-P password
: пароль PDF.
-a
: Извлекает все объекты.
-p pageid
: извлекает объект страницы.
-i objid
: извлекает определенный объект.
-o output
: имя выходного файла.
-r
: необработанный режим. Выводит необработанные сжатые/закодированные потоки.
-b
: Двоичный режим. Выводит несжатые/декодированные потоки.
-t
: текстовый режим. Сбрасывает потоки в текстовом формате.
-T
: режим с тегами. Сбрасывает содержимое тегов.
-O output_dir
: Выходной каталог для извлеченных потоков.
Замените переменную STRICT на что-то лучшее.
Улучшите функции отладки.
Используйте модуль журналирования вместо sys.stderr.
Правильные тестовые примеры.
Соответствие PEP-8 и PEP-257.
Улучшенная документация.
Поддержка фильтра криптопотока.
pyPDF
xpdf
PDFBox
муПДФ