问题背景
本地测试环境生成的JFreeChart图表标题正常显示,最初几轮Linux服务器上测试的图表也没有问题。上周无意间发现测试服务器上生成的报表文件中的JFreeChart图表的中文标题是几个框框没有文字,网上说是字体安装问题。
对比一看那台测试服务器上的确没有字体。于是开始对着网上说明进行Liunx下字体安装操作,但是还是遇到了问题,记录如下。
字体命令安装
网上说Linux下安装字体需要依次执行三个命令:
mkfontscale
mkfontdir
fc-cache
fc-lis
于是就用yum安装fc-cache,结果提示没有相关包,安装mkfontdir也是。只有mkfontscale命令安装顺利,搜索半天终于找到了fc-cache的命令是fontconfig了,执行yum install fontconfig没有问题。
安装mkfontdir时也是找不到包,也搜不到所在的命令,真不得不佩服自己的机智啊。因为我在安装mkfontscale后习惯性地man mkfontscale看下用法,在安装mkfontdir未果时,突然发现上一个命令的的帮助信息里面有这一句话:
找到了mkfontdir的等价命令,成功解决这个命令的安装问题。
Linux安装字体步骤
主要就是在/usr/share/fonts目录下上传字体问题,由于目标服务器上没有这个目录,我随便创建的字体目录按照网上的操作并没有成功安装宋体字体。
随后对比我知道的Linux服务器的usr/share目录,发现字体目录文件夹名称统一都是fonts,然后以此目录为根,创建子文件夹,上传字体文件。
cd /usr/share/fonts/myfonts
mkfontscale
mdfontscale -b -s -l
fc-cache
fc-list | grep ‘宋体’
成功查到宋体字体,测试新生成的图表标题中文显示正常。虽然不能确定字体目录名称一定是fonts,但是可以确定命名为fonts一定没错,有没有一定的限制呢,不确定,我试验过程中最初按网上的操作随便命名的,开始命名为font/myfonts,安装失败了。
结论
现在对Linux的Shell编程熟悉得好像Java编程一样熟练了,语言都是相通的,这份自信可以有。