我在嘗試檢測 pdfminer.six 中的垂直文本元素時遇到了一個簡單的問題。我可以使用這樣的代碼片段毫無問題地閱讀垂直文本:
output_string = StringIO()
with open('../example_files/example1.pdf', 'rb') as infi:
parser = PDFParser(infi)
doc = PDFDocument(parser)
rsrcmgr = PDFResourceManager()
device = TextConverter(rsrcmgr, output_string, laparams=LAParams(detect_vertical=True, all_texts=True))
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.create_pages(doc):
interpreter.process_page(page)
print(output_string.getvalue())
但是,每當我嘗試使用 PDFPageAggregator 而不是 TextConverter 以便獲取物件時,如下所示:
with open('../example_files/example1.pdf', 'rb') as infi:
parser = PDFParser(infi)
doc = PDFDocument(parser)
rsrcmgr = PDFResourceManager()
device = PDFPageAggregator(rsrcmgr, laparams=LAParams(detect_vertical=True, all_texts=True))
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.create_pages(doc):
interpreter.process_page(page)
layout = device.get_result()
for element in page_layout:
print(element)
我將捕獲水平文本框(以及線條、矩形等),但不會捕獲垂直文本。有沒有辦法讓我在物件層次結構級別捕獲垂直文本,以便我可以檢查它的位置?
uj5u.com熱心網友回復:
我花了一段時間才弄清楚這一點,但關鍵是意識到文本元素可以是 LTImage 物件的子元素。我沒有意識到這一點,也沒有意識到我需要遞回地遍歷 LTImage 物件的子物件才能找到所有內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/428369.html
標籤:Python python-3.x pdf pdf矿工
