场景:
使用Aspose.Word将word文档转换成pdf。
本地Windows开发环境,pdf文件正常。
但是将程序部署到CentOS的服务器上,pdf的中文就都是乱码了。
解决思路:
- 运行jetty服务时,指定
或java -Dfile.encoding=UTF-8
参数都无效。GBK
-
添加日志输出,发现读取出来的Word纯文本内容,中文也还是正常的,那么就只剩最后转pdf的原因了。
想到pdf是一种为打印设计的文档格式,可能跟字体相关。而且转出来的pdf中文都是空心方框,不是单纯的乱码,很有可能是缺少字体渲染不出来造成的。
- 服务器上用
命令查看字体,果然没有中文字体fc-list
-
接下来将本机Windows的字体上传到CentOS服务器上。
具体操作:
将Windows上字体文件
目录,复制到CentOS的C:\Windows\Fonts
/usr/share/fonts
目录
运行
命令刷新字体缓存sudo fc-cache -f -v
原文链接:https://www.jianshu.com/p/d7d779f7cf88