Linux 系统下在Java程序中使用Spire组件转换文档时,结果文档乱码或字体缺失错误的处理方法
程序员文章站
2022-03-01 20:34:39
...
一、问题描述
在Windows系统中,使用Spire组件转换文档时,结果文档正常,但是在Linux系统中,结果文档会出现乱码、方框或程序抛出字体缺失异常,如:Cannot found font[SansSerif] installed on the system。
二、问题分析
这个问题是由于Linux服务器缺少字体所导致。Spire组件转换文档时需要从系统中寻找对应的字体绘制字形,如果系统中没有安装原文档中所使用的字体,会先从系统已安装的字体中匹配能支持这个字形的字体,如果无法匹配出相应的字体,结果文档就会出现乱码或方框,或者程序会抛出“字体缺失异常”。
三、解决方法
若遇到此类问题,可以先确认原文档中使用了哪些字体,然后将这些字体或Windows中的所有字体安装到Linux系统。
以下是如何查看和安装字体的详细指令。
1. 开启 root 权限
输入指令: su root ,不行时,需要先输入指令: sudo passwd root
根据步骤输入密码,然后再重新输入指令: su root
2. 将字体文件先放到某一个文件夹下
然后进入文件夹输入指令: cp simsun.ttc /usr/share/fonts/ ,依次输入下面的指令:
mkfontscale //字体扩展
mkfontdir //新增字体目录
fc-cache-fv //刷新缓存
3. 查看安装的字体文件
查看系统中的字体:
指令:fc-list
查看系统中的中文字体:
指令:fc-list:lang=zh
下一篇: Java 在PPT中插入ZIP