Как указать перевод строки в Python PDFminer? - PullRequest
0 голосов
/ 04 апреля 2020

Я пытаюсь проанализировать PDF с помощью PDFminer, преобразовав его в HTML. Тем не менее, я не хочу разрывов строк, так как он их обнаруживает, я хочу иметь новую строку каждый раз, когда в документе есть три пробела.

Мой код:

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter, XMLConverter, HTMLConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import BytesIO

def convert_pdf(path, format='text', codec='utf-8', password=''):
    rsrcmgr = PDFResourceManager()
    retstr = BytesIO()
    laparams = LAParams()
    if format == 'text':
        device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    elif format == 'html':
        device = HTMLConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    elif format == 'xml':
        device = XMLConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    else:
        raise ValueError('provide format, either text, html or xml!')
    fp = open(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    maxpages = 0
    caching = True
    pagenos=set()
    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue().decode()
    fp.close()
    device.close()
    retstr.close()
    return text


print(convert_pdf('fel_split.pdf', format='html', codec='utf-8', password=''))

Текст выглядит так:

 <br></span><span style="font-family: b'QKWQNQ+ImprintMTnum-Bold'; font-size:10px">80 </span><span style="font-family: b'NUMPTY+ImprintMTnum'; font-size:12px">pazienza, e la prudenza.] </span><span style="font-family: b'PYNIYO+ImprintMTnum-Italic'; font-size:12px">da </span><span style="font-family: b'NUMPTY+ImprintMTnum'; font-size:12px">pa-
<br>zienza </span><span style="font-family: b'MUVAOR+Symbol'; font-size:11px">=

Я знаю, HTML сворачивает пробелы, поэтому мне нужно сделать это до того, как преобразуется, но я не знаю, как.

Спасибо

...