Linux下安装字体

以CentOS为例,字体文件在/usr/share/fonts目录

1.网上下载字体库,我用的ttf文件,其它没有试

2.复制ttf文件到/usr/share/fonts目录下,也可新建文件夹以区分

3.建立字体索引,更新字体缓存

cd /usr/share/fonts
mkfontscale
mkfontdir
fc-cache -fv

4.查看已安装字体列表

fc-list

5.代码中遇到的问题

我在做一个在图片上添加水印的功能时,win环境没问题,上linux环境出现找不到字体,按照上述问题安装字体以后,java代码引入字体一直有问题,但是不会报错,最终发现是字体名字不对。
我安装的字体文件:

AdobeHeiti_S60.cn.ttf

fc-list展示的已安装字体列表中,该字体的信息:

Adobe Heiti Std,Adobe 黑体 Std,Adobe Heiti Std R,Adobe 黑体 Std R:style=R,Regular

我在代码中使用引入字体使用:

Font font = new Font("Adobe Heiti Std", Font.BOLD, 55);

但是图片上依然无法打印中文,后来考虑是不是字体的名字有问题,所以在代码中引用该字体后,打印该字体的名字:

Font font = Font.createFont(Font.TRUETYPE_FONT, new File("h:\\AdobeHeiti_S60.cn.ttf"));
System.out.println(font.getName());

这样,打印出来的字体名字竟然是:

Adobe 黑体 Std

然后,把代码改为:

Font font = new Font("Adobe 黑体 Std", Font.BOLD, 55);

具体原因不知道,只能建议大家如果在linux环境下使用自己安装的字体时,先打印一下字体的名字,再在代码中引入。另外如果有大哥知道我上面问题的具体原因,望不吝赐教,拜谢

你可能感兴趣的:(Linux下安装字体)