Время прочтения: 2 мин.
В Python существует несколько библиотек, позволяющих обрабатывать текстовые PDF файлы. Мы воспользуемся PDFminer. Данная библиотека имеет ряд преимуществ, поскольку создана именно для текстовых данных. С ее помощью можно определять положение текста, преобразовывать PDF в форматы HTML или XML и др.
Сначала установим её, выполнив в командной строке:
pip install PDFminer
Далее нам понадобится модуль ввода-вывода io. Он является частью стандартной библиотеки, поэтому просто импортируем его:
import io
Также нам понадобится конвертер, интерпретатор PDF, менеджер ресурсов с помощью которых и будет обработан текст:
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage
Сам код легко найти в интернете (по ссылке, помимо использованного нами кода, разобраны другие методы работы с PDF). Мы немного доработали части возможности ввода разных директорий обрабатываемого PDF файла, что будет удобно при использовании скомпилированного exe (как это делается мы ранее описывали в статье)
rm=PDFResourceManager()
f=io.StringIO()
con=TextConverter(rm, f)
pinter=PDFPageInterpreter(rm,con)
Запрос на ввод директории:
way = str(input(r'Укажите путь к файлу PDF и нажмите Enter'))
Далее обработка PDF формата и вывод текста:
with open (way, 'rb') as pp:
for page in PDFPage.get_pages(pp,caching=True,check_extractable=True):
pinter.process_page(page)
t=f.getvalue()
print (t)
В заключение обратим внимание на структуру обработанного текста, она, скорее всего, будет отличаться от исходного документа. Для наглядности ниже пример исходного файла (Рис. 1) и то, что вы получите на выходе в Консоле Python (Рис.2):
В нашем случае задача заключалась найти ключевые объекты в содержимом, поэтому изменившийся формат никак не повлиял на конечный результат.