我的使用场景是,公司有个需求,要用Java生成一个海报图,海报图要用指定的字体,而我们的Linux中不具备这个字体,所以要添加
1、准备好字体
因为是公司需求,所以字体文件就直接找设计要了。我这里用的是“SourceHanSansCN-Medium.otf”字体。
2、登录Linux服务器,创建单独字体目录,上传字体
我的字体保存的路径是:【/usr/share/fonts/<字体名称>】,如下图所示。
这个路径是我百度其他的经验笔记获取的,实际上我的Linux中只有share文件夹,fonts文件夹也是我自己创建的。
3、更新字体缓存
执行命令:【sudo fc-cache -f -v】。但我执行的时候报错如下
command not found,指令未安装,所以需要安装 fc-cache 命令
4、安装fc-cache命令
执行命令:sudo yum install fontconfig
安装过程就不展示了,这里只有部分截图,安装完毕后记得重复步骤3
5、Java检查字体
字体安装完毕后,我是通过Java去检查的字体是否安装,并查看字体叫什么名字。代码如下:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames = ge.getAvailableFontFamilyNames();
List<String> fontList = new ArrayList<>();
for(String font: fontNames)
fontList.add(font);
logger.info("fonts list:{}", JsonUtil.toJsonString(fontList));
最后输出如下:
最后一个就是我安装的字体,此时改Java代码即可
Font font = new Font("Source Han Sans CN Medium", Font.BOLD, 36);