Я использую pdfminer3 для извлечения текста из файла PDF. У меня возникла проблема с межстрочным интервалом для вывода.
Некоторые предложения в разных строках соединяются без пробелов. Это затрудняет разделение предложений.
Ниже приведен пример файла PDF, ожидаемого вывода и вывода:
Пример файла PDF
"" "
Это внешняя электронная почта
Я собираюсь идти.
Я тогда бегу.
" ""
Ожидаемый вывод
"" "Это внешняя электронная почта, которую я собираюсь пройти. Затем я выполню." ""
Фактический вывод
"" "Это внешняя электронная почта, которую я собираюсь пройти. Затем я отправлюсь." ""
Я полагаю, что проблема заключается в поле линии. Я указал размер строки в лапарамах, но все равно получаю тот же результат. Я попытался настроить этот параметр для очень больших и малых значений. Никто не меняет мой вывод.
Я предполагаю, что лапарам как-то не запускается. Любая помощь с благодарностью!
Код
from pdfminer3.layout import LAParams, LTTextBox
from pdfminer3.pdfpage import PDFPage
from pdfminer3.pdfinterp import PDFResourceManager
from pdfminer3.pdfinterp import PDFPageInterpreter
from pdfminer3.converter import PDFPageAggregator
from pdfminer3.converter import TextConverter
import io
resource_manager = PDFResourceManager()
fake_file_handle = io.StringIO()
# Set parameters for analysis.
laparams = LAParams(line_margin=.0000000000500)
# tried this too
laparams = LAParams(line_margin=500)
converter = TextConverter(resource_manager, fake_file_handle, laparams=laparams)
page_interpreter = PDFPageInterpreter(resource_manager, converter)
with open(file_name, 'rb') as fh:
for page in PDFPage.get_pages(fh,
caching=True,
check_extractable=True):
page_interpreter.process_page(page)
text = fake_file_handle.getvalue()
# close open handles
converter.close()
fake_file_handle.close()
print(text)