之前测试环境是老服务器配置很全,未使用docker的tomcat镜像,未出现中文显示问题,
后启用新虚拟机改版为docker容器版后出现pdf打印中文字空白问题,一开始以为是编码问题,检查后发现都是utf-8,
因此怀疑是服务器无相应字体
服务器字体目录 /usr/share/fonts/dejavu
安装之前缺少 simhei.ttf ,索性其他几个(simkai.ttf 、msyh.ttf 、 msyhbd.ttf) 也都安装了
安装方法
复制需要的字体文件到/usr/share/fonts/dejavu 目录下(建议/usr/share/fonts/自定义)
cd /usr/share/fonts/dejavu
1、mkfontscale
2、mkfontdir
3、fc-cache
如无mkfontscale 与mkfontdir 命令,请先安装:
centos上 : yum install -y fontconfig mkfontscale
ubuntu上 : sudo apt-get -y install fontconfig xfonts-utils
查看字体
查看所有 fc-list
查看中文字体 fc-list :lang=zh
到此就ok了;
由于我使用docker的tomcat镜像,因此在服务器安装字体并不能对容器内有效,所以遇到的问题并没有解决;
使用docker cp 字体到容器内相应目录下,同样执行命令安装字体,解决问题;
思考
:服务器上多个tomcat镜像都需要安装字体,是否有其他简单方法,如映射
......