Я пытаюсь преобразовать очень чистый файл PDF в файл txt, используя python. Я пробовал использовать pyPDF2 и PDFMiner, оба отлично работали при распознавании текста.
Однако, поскольку в PDF строки переносятся, извлеченный файл .txt имеет непреднамеренный разрыв строки в конце: например, строка 1: это отчет о старейшине /n Days, . Между Старшим и днями не должно быть разрыва строки.
При редактировании с помощью Acrobat отчетливо видно, что исходный текст в формате PDF не содержит жесткого разрыва строки и может редактироваться как абзац, а не как отдельные строки.
Код, который я пробовал (адаптирован из ответа отсюда: преобразование из pdf в текст: строки и слова разбиты)
import io as io
from io import StringIO
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
import os
import sys, getopt
#converts pdf, returns its text content as a string
def convert(fname, pages=None):
if not pages:
pagenums = set()
else:
pagenums = set(pages)
output = io.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
path='D:\Folder\File.pdf'
a=convert(path)
f=open("D:\Folder\File.txt",'a',encoding='utf-8')
f.write(a)
f.close()