Как я могу извлечь PDF-страницу с PDFMiner на основе строки, которую я пытаюсь найти? - PullRequest
1 голос
/ 18 июня 2019

Я пытаюсь извлечь определенную страницу, используя PDFminer и Python 2.7.

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

Вот мой код из PDFminer: '' '

base_path = "/Users/username/Documents"

my_file = os.path.join(base_path + "/" + "Personal-Auto-Policy.pdf")
log_file = os.path.join(base_path + "/" + "Output3.txt")

password = ""
extracted_text = ""

fp = open(my_file, "rb")
parser = PDFParser(fp)

document = PDFDocument(parser, password)

if not document.is_extractable:
    raise PDFTextExtractionNotAllowed

rsrcmgr = PDFResourceManager()
laparams = LAParams()

device = PDFPageAggregator(rsrcmgr, laparams=laparams)

interpreter = PDFPageInterpreter(rsrcmgr,device)

target = ""

NumPages = PDFPage.get_pages(fp)


for pageNumber, page in enumerate(NumPages):
    for line in str(page):
        if("296 S 468211" in line):
            interpreter.process_page(page)

            layout = device.get_result()

            for lt_obj in layout:
                if isinstance(lt_obj, LTTextBox) or isinstance(lt_obj, LTTextLine):
                    extract_text = lt_obj.get_text()

fp.close()

with open(log_file, "wb") as my_log:
    my_log.write(extracted_text.encode('utf-8'))
print("Target page extraction success!")

' ''

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

...