Разбиение pdf-файла с помощью регулярного выражения

Я хочу разбить pdf-документ с помощью регулярного выражения (?: *\n){2,} и сохранить координаты каждого блока в виде словаря {"page x0 y0 x1 y1" : "some text", ...}

Я использую следующий код:

def read_pdf(self, document_path):
        fp = open(document_path, 'rb')
        parser = PDFParser(fp)
        document = PDFDocument(parser)
        if not document.is_extractable:
            raise PDFTextExtractionNotAllowed
        rsrcmgr = PDFResourceManager()
        device = PDFDevice(rsrcmgr)
        laparams = LAParams()
        device = PDFPageAggregator(rsrcmgr, laparams=laparams)
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        doc = {}
        def parse_obj(lt_objs, i, page):
            for obj in lt_objs:
                if isinstance(obj, pdfminer.layout.LTTextBoxHorizontal):
                    key = "%d %d %d %d %d" % (i, obj.bbox[0], page.mediabox[3] - obj.bbox[3], obj.bbox[2], page.mediabox[3] - obj.bbox[1])
                    doc[key] = obj.get_text().replace('\n', '')
                elif isinstance(obj, pdfminer.layout.LTFigure):
                    parse_obj(obj._objs, i, page)

        i = 1
        for page in PDFPage.create_pages(document):
            interpreter.process_page(page)
            layout = device.get_result()
            parse_obj(layout._objs, i, page)
            i += 1
        return doc

Но иногда мне выдает слишком маленькие блоки. Подскажите, пожалуйста, как разбить pdf и сохранить координаты каждого блока. Спасибо!


Ответы (0 шт):