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