java生成pdf字体的坑 java生成pdf字体的坑

做过java生成pdf的应该都知道有很多坑,特别是字体。

这里就记录一下字体的问题。

  1. 系统必须安装字体,项目的resources目录放置了要用到的中文字体,宋体和黑体。并在代码中进行了引用。但是实际发现系统仍然需要安装字体。

  2. 安装字体的坑

这里主要记录一下安装字体的坑

网上找到的教程

cd /usr/share/fonts/
mkdir chinese
cd chinese
cp /root/simhei.ttf simhei.ttf # 字体上传在root用户目录下
cp /root/simsun.ttf simsun.ttf # 字体上传在root用户目录下
mkfontscale
mkfontdir
fc-cache -fv

这里确实导入了字体,但是使用发现,生成的pdf会有文字不换行,以及转成tiff图片后,汉字均不显示的问题。

因为开发环境是windows,测试环境是linux(开发经常遇到环境的问题)。然后真的是windows下没有问题,所以还是觉得代码没有问题,问题还是出在字体上。

继续寻找linux字体的教程,发现有一个教程多一个步骤

chmod -R 755 /usr/share/fonts/chinese

赶紧在测试服务器上看一下文件权限

[root@shtplybremake01 share]# cd fonts
[root@shtplybremake01 fonts]# ll
total 16
drwxr-x---  2 root root   91 Nov 17 15:39 chinese
drwxr-xr-x. 2 root root 4096 Jul 20 15:51 google-droid
drwxr-xr-x. 2 root root 8192 Jul 20 15:53 urw-base35

果然chinese和其他2个目录不一样。接着按照教程修改权限。重新生成并验证。

[root@shtplybremake01 fonts]# chmod -R 755 chinese/
[root@shtplybremake01 fonts]# ll
total 16
drwxr-xr-x  2 root root   91 Nov 17 15:39 chinese
drwxr-xr-x. 2 root root 4096 Jul 20 15:51 google-droid
drwxr-xr-x. 2 root root 8192 Jul 20 15:53 urw-base35