1.问题
在Windows系统中,使用Java将Word文档转换为PDF格式时,结果文档内容正常;但是在Linux系统中,转出来PDF文档出现乱码或###符号等。
2.问题原因
这个问题是由于Linux服务器缺少字体所导致。通过Word转换PDF时,需要从系统中查找对应的字体绘制字形,如果系统中没有安装文档使用的字体,那么会先从系统安装了的字体匹配出能支持这个字形的字体,如果无法匹配出相应的字体,那么就会出现乱码或方框。若遇到这类问题,建议先确认Word文档中使用了哪些字体,将这些字体安装到Linux系统。
3.解决办法
1、在windows目录C:\Windows\Fonts下找到字体文件。
2、Linux /usr/share/fonts下创建win目录。
3、将Fonts文件上传到创建的win目录中。
4、建立索引信息,更新字体缓存,win目录下执行命令:
1. mkfontscale
2. mkfontdir
3. fc-cache
如果安装失败可以考虑修改权限。
Chmod 755 *.ttf
或者
Chmod 755 *
5、安装完成,可以用命令查看系统中的中文字体是否安装成功:
fc-list :lang=zh