如何使用pytesseract从pdf文件中的图像中提取文本

时间:2018-09-26 20:27:09

标签: python pdf python-tesseract

我正在尝试使用以下代码从pdf文件的图像中提取文本。 PDF文件是合同文档,它是合同的扫描副本。 pdf文件中的所有页面都是图像。

当我尝试使用以下代码提取数据时,出现错误,提示它无法读取文件/无法识别图像文件。

try:
    import Image
except ImportError:
    from PIL import Image

import pytesseract

pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe'

# Simple image to string
#print(pytesseract.image_to_string(Image.open('C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\Scripts\\1184.pdf')))

回溯(最近通话最近一次):

  File "C:\Users\Administrator\eclipse-workspace\tesseract\test\greetings.py", line 18, in <module>
    print(pytesseract.image_to_string(Image.open('C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\Scripts\\1184.pdf')))
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\PIL\Image.py", line 2622, in open
    % (filename if filename else fp))
OSError: cannot identify image file 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\Scripts\\1184.pdf'

请帮助我怎么做

1 个答案:

答案 0 :(得分:1)

您尝试打开pdf文件作为图像。他们的文档中不支持阅读pdf文件的枕头状态无法显示,请参见:https://pillow.readthedocs.io/en/5.1.x/handbook/image-file-formats.html

无论如何,您都可以使用pdf2image库将pdf转换为图像,然后用枕头将其打开并送入tesseract。