docling 2.5 解析 200 页扫描版 PDF,导出的 markdown 只有页码,text 字段为空,同一个文件用 pdftoppm 转图再交给 OCR 能正常出字。
一开始怀疑是「PDF 只有图片层,没有可提取的文本层」,查了一圈,方向不对。
这类报错背后常见的原因有几处,逐个排除就行。默认配置没有开启 OCR。也可能是缺少 tesseract 的中文语言包。
少数情况下是pipeline 选了 standard,没有走视觉模型。
先开启 OCR 选项重新解析一页做验证
python -c "from docling.document_converter import DocumentConverter;print('do_ocr=True')"
随后确认 chi_sim 语言包已经安装
tesseract --list-langs
接着把 PDF 转成图片后走 OCR 分支
pdftoppm -r 200 -png scan.pdf page
末了换 vlm pipeline 解析同一页做对照
python docling_vlm.py --input page-01.png
隔了一天再看,现象没变,说明不是偶发。
那几天正好在做别的变更,先把时间线对齐才敢动手。
别只看报错消失,验证要多做一步。解析结果里出现正文文字,页数与原文一致,抽查三页的中文字符数都大于 200。
扫描件的文本层是空的,任何解析库都只能靠 OCR,先确认 PDF 有没有文本层,再决定装语言包还是换视觉解析链路。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
