You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Jupyter中使用img2table识别PDF表格时遭遇Tesseract相关OSError的解决请求

在Jupyter中使用img2table识别PDF表格时遭遇Tesseract相关OSError的解决请求

我来帮你分析下问题所在,然后给出不用修改系统PATH的解决方案:

问题根源

你已经给pytesseract指定了Tesseract的路径,但img2table的TesseractOCR类并不会读取pytesseract的配置——它默认会直接在系统PATH中查找tesseract命令,所以即使你本地装了Tesseract,它还是找不到。另外你的代码里还有一个逻辑小问题:在循环处理单页图片时,你又用整个PDF路径初始化了TableImage,这会导致每次循环都重复处理整个PDF,而不是当前页的内容。

不用修改PATH的解决方案

我们可以直接给img2table的TesseractOCR指定Tesseract的执行路径,同时修正循环中的图片处理逻辑:

  1. 指定Tesseract路径给TesseractOCR
    在初始化TesseractOCR时,通过cmd参数传入你的Tesseract完整路径,这样它就不需要依赖系统PATH了。

  2. 修正TableImage的初始化逻辑
    在循环中,应该用当前处理的单页图片(而不是原PDF路径)来创建TableImage实例,这样才会处理当前页的表格。

修正后的完整代码片段

import pytesseract as ps
import cv2
from pandas import DataFrame as df
import numpy as np
from PIL import Image
from pdf2image import convert_from_path
from img2table.ocr import TesseractOCR
from img2table.document import Image as TableImage

# 定义Tesseract的完整路径
tesseract_path = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
ps.pytesseract.tesseract_cmd = tesseract_path

pdf_path = 'file.pdf'
pages = convert_from_path(pdf_path, poppler_path=r'C:\poppler-24.08.0\Library\bin')

for i, page_image in enumerate(pages, start=1):
    print(f"\n--- Страница {i} ---")
    
    # 图片预处理
    img = np.array(page_image)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    _, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
    pil_img = Image.fromarray(thresh)
    
    # 用当前页的图片初始化TableImage,而不是整个PDF
    stamp_img = TableImage(pil_img, detect_rotation=True)
    # 给TesseractOCR传入cmd参数指定路径
    stamp = stamp_img.extract_tables(ocr=TesseractOCR(lang="rus", cmd=tesseract_path))
    
    # 识别当前页文本
    text = ps.image_to_string(pil_img, lang='rus')
    print(text.strip())
    
    # 输出表格内容
    for table in stamp:
        print(table.df)

额外检查点

  • 确保你的Tesseract已经安装了俄语语言包(rus.traineddata),它应该在C:\Program Files\Tesseract-OCR\tessdata目录下,如果没有的话可以从Tesseract官方语言包仓库下载。
  • 确认poppler的路径是正确的,你当前的设置看起来没问题,但如果遇到PDF转图片的问题可以再核对一下。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 12:39:51