python - 如何根据我要查找的字符串使用 PDFMiner 提取 pdf 页面?
问题描述
我正在尝试使用 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。
解决方案
推荐阅读
- python - 如何在不替换其他字母的情况下替换某个字母?
- php - 如何在 PHPSpreadsheet 中获取命名范围
- sql - 如果值为 NULL,则左连接,否则为内连接
- ios - “self.pushViewController”在 Swift4 中不起作用
- ibm-cloud - IBM Voice Agent RTP 端口范围
- bash - 查找 1 小时前创建的文件
- python - 在极坐标中显示
- database - 如何在 Flutter 中构建动态字符串列表?
- php - Safari - 注意:试图获取非对象的属性... post-template.php 在第 656 行
- javascript - 对于在 html 中使用 iframe 循环,Spotify 播放按钮