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

如何通过Tika配置为Tesseract OCR添加全部可用语言?

自动加载Tesseract所有已安装语言的最优方案

你手动拼接语言代码的方案可行,但后续维护成本高,新增语言包后还要修改代码。更优的方式是自动遍历Tesseract的tessdata目录,提取所有已安装的语言代码并自动拼接,具体实现如下:

核心思路

Tesseract的语言包都存放在tessdata目录下,文件名格式为[语言代码].traineddata(比如eng.traineddata、jpn.traineddata)。我们可以通过读取该目录下的文件,提取语言代码并自动拼接成Tika要求的lang1+lang2+...格式。

具体代码实现

在你的现有配置代码中加入以下逻辑:

// 你的原有配置代码
TesseractOCRConfig tesserConfig = new TesseractOCRConfig();
tesserConfig.setTesseractPath("E:\\Program Files\\tesseractOCR");
String tessdataPath = "E:\\Program Files\\tesseractOCR\\tessdata";
tesserConfig.setTessdataPath(tessdataPath);
tesserConfig.setImageMagickPath("E:\\Program Files\\ImageMagick-7.1.0-Q16-HDRI");   

// 新增:自动提取所有已安装的语言代码
File tessdataDir = new File(tessdataPath);
if (tessdataDir.exists() && tessdataDir.isDirectory()) {
    // 遍历目录下所有.traineddata文件
    File[] langFiles = tessdataDir.listFiles((dir, name) -> name.endsWith(".traineddata"));
    if (langFiles != null && langFiles.length > 0) {
        StringBuilder langBuilder = new StringBuilder();
        for (File file : langFiles) {
            // 提取语言代码(去掉.traineddata后缀)
            String langCode = file.getName().replace(".traineddata", "");
            // 排除osd(方向检测模型,不属于语言包)
            if (!"osd".equals(langCode)) {
                if (langBuilder.length() > 0) {
                    langBuilder.append("+");
                }
                langBuilder.append(langCode);
            }
        }
        // 设置自动拼接好的语言列表
        if (langBuilder.length() > 0) {
            tesserConfig.setLanguage(langBuilder.toString());
        }
    }
}

// 后续原有代码
pc.set(TesseractOCRConfig.class, tesserConfig);
parser.parse(is, ch, metadata, pc); 

方案优势

  • 无需手动维护语言代码列表,新增/删除语言包后无需修改代码
  • 自动适配当前Tesseract已安装的所有语言
  • 可以灵活过滤不需要的模型(比如示例中的osd模型)

注意事项

  • 确保tessdata目录路径配置正确,否则会无法读取语言包文件
  • 如果Tesseract版本或目录结构有变化,需调整文件过滤逻辑

内容的提问来源于stack exchange,提问作者Kipoti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:27:16