Java 解决pdfbox转图片显示中文乱码 No glyph for 165 (CID 5752) in font STSong-Light

问题描述:

        在开发PDF转JPG图片后,图片显示中文乱码,以下为具体示例:

        pdf源文件

        转换成JPG后

        截图可以看到¥符号无法转换为乱码

        关键代码报错截图

        代码已经提示我们STSong-Light字体中165符文不存在,而165正好对应着¥字符。(如果你们出现不存在某个字体的报错,接下来也可以跟我一样操作)

2024-04-28 00:13:31 WARN  [org.apache.pdfbox.pdmodel.font.PDCIDFontType0] - Using fallback KaiTi for CID-keyed font STSong-Light
2024-04-28 00:13:31 WARN  [org.apache.pdfbox.rendering.CIDType0Glyph2D] - No glyph for 165 (CID 5752) in font STSong-Light
2024-04-28 00:13:31 WARN  [org.apache.pdfbox.pdmodel.font.PDTrueTypeFont] - Using fallback font 'LiberationSans' for 'CourierNewPSMT'

解决方案:

1.从网上下载最新的字体

        因为我怀疑目前系统存在的字体是老的,所以我从网上下载最新的STSong-Light字体,下载地址:STSong-Light字体|STSong-Light Version 1.02字体-TTF字体/未分类字体-字客网

2.在系统上安装字体,linux和window各有不同,我这里为linux字体安装:
## (可忽略)查看系统中的字体
fc-list

## (可忽略)查看系统中的中文字体
fc-list :lang=zh

## 进入系统自带的字体目录
cd /usr/share/fonts/

## 进入chinese,没有需要创建,改目录用于存放中文字体
cd chinese

## 将字体文件上传到该目录,我这里用的是rz命令,大家也可以用其它linux上传工具(例如WinSCP)也可以;
rz

## 调整当前chinese目录下字体读写权限
sudo chmod 755 ./*.TTF

## 更新字体缓存
fc-cache -fv

## 刷新系统配置文件
source /etc/profile
3.字体安装好后,还需要重启tomcat,这点很重要,不然代码不生效!!!!!
4.tomcat重启好后,就可以测试功能了;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值