Python Pdfminer исключает строки из парсера - PullRequest
0 голосов

Привет, я использую типичный способ для анализа текста из PDF.Проблема в том, что каждая страница имеет верхний колонтитул и т. Д., Чем я не хочу писать в текстовом файле вывода.Есть ли способ исключить, например, первые 3 строки каждой страницы (поскольку я знаю, сколько строк в заголовках)

Мой код здесь:

from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
from pdfminer.converter import TextConverter
from io import StringIO
import os
import re



def F_update(pdf_paths,number_upd,dir):

    base_path = dir

    for i in pdf_paths:

        my_file =  i                                 
        log_file = "C:\\Users\\vagos\\Desktop\\trelovagos\\text\\databases\\testnewafrica.txt"


        file2 = open("C:\\Users\\vagos\\Desktop\\trelovagos\\text\\databases\\testnewafrica.txt" ,mode = 'w+',buffering = 1 ,encoding ='utf-8')
        rsrcmgr = PDFResourceManager()
        retstr = StringIO()
        codec = 'ascii'
        laparams = LAParams(char_margin = 35,word_margin = 2 ,line_margin = 0.3 ,all_texts = True)#detect_vertical = True)
        device = TextConverter(rsrcmgr, retstr, codec=codec , laparams=laparams)
        fp = open(i, 'rb')
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        password = ""
        caching = True
        pagenos=set()

        for PageNumer,page in enumerate(PDFPage.get_pages(fp, pagenos , password=password,caching=caching, check_extractable=True)):
            interpreter.process_page(page)

        text = retstr.getvalue()

        file2.write(text)
        file2.close()

        fp.close()
        device.close()
        retstr.close()

1 Ответ

0 голосов

Это было сложнее, чем я думал, использование регулярных выражений было более практичным способом решения этой проблемы.

...