从pdf逐节读取数据

时间:2019-05-29 04:44:44

标签: python pdf adobe

我们如何使用python或任何其他语言/工具从PDF读取分段数据。实际上,我想编写一个代码,只需键入该部分的标题即可在python每个部分中提供数据。此外,如果那里有任何图像,我也想从一个区域中提取图像。

我尝试了pdfminer从PDF抓取数据。但是有时pdfminer会根据行而不是段落/节来分离数据。为什么要这样,以便某些PDF被正确地报废而其他报废与否。

from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage
from pdfminer.layout import LAParams
from pdfminer.converter import PDFPageAggregator
from pdfminer.pdfpage import PDFPage
from pdfminer.layout import LTTextBoxHorizontal

ans=[]
count=0
document = open('08_chapter 2.pdf', 'rb')
#Create resource manager
rsrcmgr = PDFResourceManager()
# Set parameters for analysis.
laparams = LAParams()
# Create a PDF page aggregator object.
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.get_pages(document):
    count+=1
    interpreter.process_page(page)
    print("Page Count=",count,)
    # receive the LTPage object for the page.
    layout = device.get_result()
    for element in layout:
        if isinstance(element, LTTextBoxHorizontal):
            a=element.get_text()
            a=a.strip('\n')
            a=a.replace('\n',"")
            a=a.replace('\xa0',"")
            a=a.strip()
            if( len(a)==a.count(' ') ):
                continue
            else:
                ans.append(a)
        else:
            if isinstance(element,pdfminer.layout.LTFigure):
                ans.append(element.matrix)

0 个答案:

没有答案