pdf python 位置_如何使用PDFMiner获取PDF中文本的位置?
您正在每個布局對象上查找bbox屬性。PDFMiner文檔中有一些關于how to parse the layout hierarchy的信息,但它并沒有涵蓋所有內容。
下面是一個例子:from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine, LTFigure
def parse_layout(layout):
"""Function to recursively parse the layout tree."""
for lt_obj in layout:
print(lt_obj.__class__.__name__)
print(lt_obj.bbox)
if isinstance(lt_obj, LTTextBox) or isinstance(lt_obj, LTTextLine):
print(lt_obj.get_text())
elif isinstance(lt_obj, LTFigure):
parse_layout(lt_obj) # Recursive
fp = open('example.pdf', 'rb')
parser = PDFParser(fp)
doc = PDFDocument(parser)
rsrcmgr = PDFResourceManager()
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.create_pages(doc):
interpreter.process_page(page)
layout = device.get_result()
parse_layout(layout)
如果您對單個LTChar對象的位置感興趣,您可以遞歸地解析成LTTextBox和LTTextLine的子布局對象,就像在上面的示例中對LTFigure所做的那樣。
總結
以上是生活随笔為你收集整理的pdf python 位置_如何使用PDFMiner获取PDF中文本的位置?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql中systimestamp_o
- 下一篇: java oracle.sql.stru