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

配置Apache Tika解析/忽略CFF字体以解决PDF解析报错问题

解决Apache Tika解析含CFF字体PDF时的EOFException错误

问题背景

我们通过以下命令行调用Apache Tika解析PDF:

java -Dlog4j2.formatMsgNoLookups=true -Xms512m -Xmx16384m -jar /tika/tika-app-2.9.1.jar --config=/tika/tika-ocr-config.xml -t test.pdf

待解析的test.pdf包含CFF字体,导致Tika抛出如下错误:

ERROR [main] 17:05:36,671 org.apache.pdfbox.pdmodel.font.PDCIDFontType0 Can't read the embedded CFF font QLVBNN+HiddenHorzOCR
java.io.EOFException: null

当前使用的tika-ocr-config.xml基础配置:

<parser class="org.apache.tika.parser.pdf.PDFParser">
    <params>
        <param name="extractInlineImages" type="bool">false</param>
        <param name="ocrStrategy" type="string">no_ocr</param>
        <!-- 是否检测文本角度并对应提取文本 PDFBOX-4371 -->
        <param name="detectAngles" type="bool">true</param>
    </params>
</parser>

已知Apache Tika内置CFF字体解析相关模块,需要实现:要么配置Tika使用该模块解析CFF字体,要么忽略CFF字体相关报错以继续解析。

解决方案

1. 配置PDFParser启用字体容错解析

Tika依赖的PDFBox已内置CFF字体解析能力,报错大概率是字体文件损坏或解析容错未开启。可在tika-ocr-config.xml中添加参数启用容错:

<parser class="org.apache.tika.parser.pdf.PDFParser">
    <params>
        <param name="extractInlineImages" type="bool">false</param>
        <param name="ocrStrategy" type="string">no_ocr</param>
        <param name="detectAngles" type="bool">true</param>
        <!-- 跳过无法读取的缺失/损坏字体 -->
        <param name="skipMissingFonts" type="bool">true</param>
        <!-- 禁用自动空格,避免字体解析冲突 -->
        <param name="enableAutoSpace" type="bool">false</param>
    </params>
</parser>

2. 抑制CFF字体相关错误日志

如果不需要提取该CFF字体对应的文本,可通过调整日志级别抑制报错,不影响后续解析:
修改命令行,添加日志级别降级参数:

java -Dlog4j2.formatMsgNoLookups=true -Xms512m -Xmx16384m \
-Dorg.apache.pdfbox.pdmodel.font.PDCIDFontType0.level=WARN \
-jar /tika/tika-app-2.9.1.jar --config=/tika/tika-ocr-config.xml -t test.pdf

此参数将该字体类的日志从ERROR降至WARN,错误信息不再输出,Tika会继续处理PDF其他内容。

3. 升级Tika版本

当前使用的Tika 2.9.1可能存在已知的CFF解析bug,建议升级至最新稳定版(如2.9.2及以上),新版本会同步PDFBox的修复补丁,大概率解决EOFException问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:23:33