Я использую pdfminer3 для анализа текста некоторых PDF-файлов.Обычно он анализирует текст, который мне нужен, но часто он просто объединяет большую часть текста, чтобы практически невозможно что-либо сделать с текстом после этого.Вот пример части файла, который он будет извлекать:
ФОНД ПОБЕДЫ ОБАМА 2012 * ФОНД ПОБЕДЫ ОБАМА 2012 * ФОНД ПОБЕДЫ ОБАМА 20122500.003500.003000.002000.005000.00WAGA624 12-Й АВТ E APT C403 ДЖЕМ СУД КАРТ4117 ЛАХАРД
Я пытаюсь извлечь некоторые адреса из полученной строки, и отсутствие пробелов между фрагментами текста, которое вытягивает pdfminer, делает эту задачу почти невозможной.
Вот функция IЯ использую для преобразования PDF в текст:
def convert(self, fname, pages=None):
if not pages:
pagenums = set()
else:
pagenums = set(pages)
output = StringIO()
manager = PDFResourceManager()
converter = TextConverter(manager, output, laparams=LAParams())
interpreter = PDFPageInterpreter(manager, converter)
infile = open(fname, 'rb')
for page in PDFPage.get_pages(infile, pagenums):
interpreter.process_page(page)
infile.close()
converter.close()
text = output.getvalue()
output.close
return text