【问题标题】:extracting text from a pdf in Python在 Python 中从 pdf 中提取文本
【发布时间】:2019-06-26 15:59:45
【问题描述】:

我正在尝试从 PDF 中提取文本。

def getPDFContent(path):
    p = open(path, "rb")
    print(p)
    content = ""
    pdf_content = PyPDF2.PdfFileReader(p)
    print(pdf_content)
    pages = pdf_content.numPages
    print(pages)
    for i in range(0, pages):
        content += pdf_content.getPage(i).extractText() + "\n"
        #print(content)
    content = " ".join(content.replace(u"\xa0", " ").strip().split())
    return content

getPDFContent(path_to_sample)

我得到的输出是:

如何解决?

【问题讨论】:

    标签: python-3.x pdf text-extraction


    【解决方案1】:

    您的第一个错误是没有为您的函数调用分配一个变量,它返回处理后的文本。

    x=getPDFContent(path_to_sample)

    如果仍然不能解决问题: 尝试使用 PDF Miner 模块。(适用于 Python 3 的 PDF Miner.Six)。根据您使用的 Python 版本,PyPDF2 有时可能会出现问题。我在 PyPDF2 中遇到了某些 PDF 文件的问题,这给了我与你类似的 oytput。然而,PDFMiner 在 Python 3.xx 中一直使用以下代码。

    使用以下命令下载 PDFMiner:pip install pdfminer.six 以兼容 Python 2+3 并使用以下代码,您应该可以开始了。

        from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
        pdfminer.converter import TextConverter
        from pdfminer.layout import LAParams
        from pdfminer.pdfpage import PDFPage
        def getPDFContent(path,pages=None):
             pdf_str=""
             if not pages:
               pagenums = set()
             else:
               pagenums = set(pages)
        output = io.StringIO()
        manager = PDFResourceManager()
        converter = TextConverter(manager, output, laparams=LAParams())
        interpreter = PDFPageInterpreter(manager, converter)
        infile = open(path, 'rb')
        for page in PDFPage.get_pages(infile, pagenums):
            interpreter.process_page(page)
        infile.close()
        converter.close()
        text = output.getvalue()
        pdf_str=text     
        output.close()
        return(pdf_str)
        x=getPDFContent(path_to_sample)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 2020-05-28
      • 2015-08-17
      • 2014-12-17
      • 1970-01-01
      相关资源
      最近更新 更多