首页 > 解决方案 > 如何从 PDF 中提取文本,包括图像和文本

问题描述

我将从多个 PDF 文件中提取文本。PDF 文件包括文本和一些图像,甚至一些页面是扫描的页面(我假设扫描的页面就像图像)。我按照以下命令从 PDF 文件中提取文本。我的问题是如何使用条件编辑命令以检查每个页面是否包含任何图像,然后从图像中提取文本。如果您能帮助我,我将不胜感激。

lst_all_text = []

for foldername,subfolders,files in os.walk(r"C:/MY PATH"):
    for file in files:
        # open the pdf file
        object = PyPDF2.PdfFileReader(os.path.join(foldername,file))
        # get number of pages
        NumPages = object.getNumPages()
        text =  ""
        # extract text and do the search
        for i in range(0, NumPages):         
            PageObj = object.getPage(i)
            text += PageObj.extractText() 
            
        lst_all_text.append(text)

标签: pythonnlptext-miningtext-extraction

解决方案


我已经有一段时间没有这样做了,所以我将在这里提出我遵循的一般方法:

  1. 使用PyMuPDF库处理 pdf 文件,它从 PDF 文件中提取文本和图像。
  2. 从文件中提取文本后,将提取的图像的名称存储在一个列表中,并将图像存储在一个目录中。
  3. 现在,要从图像中提取文本,请使用pytesseract库。这是一个用于 OCR 的开源库。遍历列表中的图像并使用 tesseract 从图像中提取文本。

注意:我在使用 tesseract 时遇到的问题是,随着图像数量的增加,它变得非常慢。


推荐阅读