欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux 系统下在Java程序中使用Spire组件转换文档时,结果文档乱码或字体缺失错误的处理方法

程序员文章站 2022-03-01 20:35:09
...

一、问题描述

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