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

PDFBox 2.0.24加载AR PL Zenkai Uni Font报无效字符码错误如何解决

问题原因

这个报错是因为AR PL Zenkai Uni Font(对应你用到的ukai.ttf)的TTF文件cmap表存在非标准编码定义,PDFBox 2.0.24版本内置的fontbox组件对cmap表的校验逻辑过于严格,无法兼容这类非完全符合规范的开源字体。


解决方案

方案1:升级PDFBox版本(优先推荐)

该问题是2.0.24及更早版本的已知兼容问题,官方在2.0.25及后续版本中放宽了对应校验逻辑,新增了对这类非规范字体的兼容处理。升级版本后原有加载代码无需修改即可正常运行。

方案2:替换兼容字体

如果暂时无法升级PDFBox版本,可以换用规范度更高的同类型开源中文字体,比如思源宋体、Noto Sans CJK SC等,这类字体不会触发PDFBox的校验报错。

方案3:修复流使用规范(补充优化)

你当前的代码直接传入FileInputStream未做资源释放处理,建议用try-with-resources优化流逻辑,避免资源泄露,参考代码如下:

try (InputStream fontStream = new FileInputStream("font/ukai.ttf")) {
    PDType0Font customFont = PDType0Font.load(document, fontStream, false);
} catch (IOException e) {
    // 按需处理字体加载异常
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:27:03