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

使用pytesseract转换TIF到PDF报错:cid not made from file

Tesseract 5.3.1转换TIF到PDF报错:Error in l_generateCIDataForPdf: cid not made from file

问题原因

该错误源于Tesseract生成PDF时的CID字体处理逻辑异常,常见触发场景包括:

  • Ubuntu 18.04默认依赖的Leptonica版本过旧,与Tesseract 5.3.1的PDF生成模块兼容性不匹配,导致无法正确生成CID字体数据;
  • 待转换的TIF文件存在格式异常(如多页编码问题、非标准压缩格式),干扰了Tesseract的解析流程;
  • Tesseract的PDF生成参数配置不当,未指定正确的字体或OCR引擎模式。

解决办法

1. 升级依赖库

更新系统包并安装适配的Leptonica和Tesseract依赖:

sudo apt update && sudo apt upgrade
sudo apt install libtesseract-dev libleptonica-dev

若默认源提供的Leptonica版本仍低于1.82.0,需从源码编译安装最新版Leptonica后重新编译Tesseract 5.3.1。

2. 预处理TIF文件

将TIF转换为更易兼容的格式(如PNG)后再处理,以规避TIF格式的特殊性:

# 使用ImageMagick拆分多页TIF为单页PNG
convert input.tif output_%02d.png

之后通过pytesseract逐个处理单页图片,再用第三方库(如PyPDF2)合并为最终PDF。

3. 调整OCR参数

调用image_to_pdf_or_hocr时指定完整的OCR引擎模式、页面分割模式及字体参数:

import pytesseract
from PIL import Image

image = Image.open("input.tif")
pdf_content = pytesseract.image_to_pdf_or_hocr(
    image,
    extension="pdf",
    config="--oem 3 --psm 6 -c pdf_font_name=\"Arial\""
)
with open("output.pdf", "wb") as f:
    f.write(pdf_content)

4. 降级Tesseract版本

若升级依赖成本过高,可降级到Ubuntu 18.04源中兼容性更稳定的Tesseract 4.x版本:

sudo apt remove tesseract-ocr
sudo apt install tesseract-ocr=4.00~git2288-10f4998a-2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:27:13