java生成pdf时汉字乱码,为□-(linux系统)

问题描述:Linux环境中Java生成pdf时,图片中的汉字位置都显示为方框,乱码、方框、问号

 原因分析:经排查日志,发现是在生成的时候缺少对应的字体库

1:由于项目由原来的Windows系统换到了Linux系统,所以部分系统环境不一致

2:不仅是缺少默认的 宋体 字体,实际上所有的中文字体都没有,所以需要安装新的字体库

3:也有网友缺少的是黑体,Linux环境下"Font font = new Font(“黑体”, Font.BOLD, 18)"[BufferedImageGraphicsdrawString]中文乱码,在Windows下不会乱码,但在Linux下Nginx和Tomcat部署后出现乱码、方框、问号等等。而本地运行环境为Windows,线上为Linux的Ubuntu系统

 解决方法:

1:查看【/usr/share/fonts】目录,新系统中无 fonts 文件夹。无文件夹则手动创建 fonts 文件夹。

2:下载所需要的字体,本系统所需为 simsun.ttc (新宋体)和 simsun.ttf(宋体),黑体为simhei.ttf

所需要的字体可以在Windows的【C:\Windows\Fonts】文件夹中查看、寻找

3:进入到服务器的【/usr/share/fonts】目录下,新建【chinese】文件夹,进入其中然后新建【TrueType】文件夹

进入文件夹:cd /usr/share/fonts/chinese/TrueType/

4:上传刚才挑选的字体进入这里

上传命令:rz

5:最后在此目录下,执行"fc-cache -fv",进行扫描字体并生成字体信息的缓存,新启动的应用程序就可以使用这个字体了

6:此时线上还无法使用该字体,需要重启Tomcat将项目重新启动,重启后即可生效

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值