如何根据我要查找的字符串使用PDFMiner提取pdf页面?

时间:2019-06-18 13:18:36

标签: python pypdf2 pdfminer

我正在尝试使用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。

0 个答案:

没有答案