Python从PDF中提取文本

时间:2015-12-07 09:10:43

标签: python pdf

我有大量具有不同结构的PDF,我需要从中提取文本并找到一些关键指标。

我正在使用 pyPdf 模块,如果PDF没有检索任何文本,我也使用 PDF Miner

问题在于,对于某些文件,没有模块可以工作,因为没有从PDF中提取文本。我看到其中一些被扫描或只有图像PDF,但其中一些似乎有一个恒定的结构,可以解析。

以下是我使用的两个功能,也许我遗漏了一些东西:

使用pyPdf

def getPDFContent(path):
        content = ""
        pdf = pyPdf.PdfFileReader(file(path, "rb"))
        for i in range(0, pdf.getNumPages()):
            content += pdf.getPage(i).extractText() + " "
        content = " ".join(content.replace(u"/xa0", " ").strip().split())
        return content
mt = getPDFContent(filename).encode("ascii", "xmlcharrefreplace")

使用PDF Miner

def getPDFContent(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = file(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos=set()

    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)
        retstr.write("nextpage")
    text = retstr.getvalue() 

    fp.close()
    device.close()
    retstr.close()
    return text

0 个答案:

没有答案