类 FontsUtil
java.lang.Object
io.springboot.captcha.utils.FontsUtil
解决自定义字体读取时,产生.tmp临时文件耗磁盘的问题。
解决思路:
Font类的createFont有个重载方法–>java.awt.Font#createFont(int, java.io.File),
不产生临时文件获取字体代码实现
URL url = FontLoader.class.getResource("font/SourceHanSansCN-Regular.otf");
String pathString = url.getFile();
Font selfFont = Font.createFont(Font.TRUETYPE_FONT, new File(pathString));
上面的解决方案会导致另一个问题,字体文件在生产环境是在jar包里,部分操作系统环境下,直接读取读取不到,只能通过流的方式获取。
因此,本方案采用的办法是把jar包中的字体文件复制到java.io.tmpdir临时文件夹中
,再采用java.awt.Font#createFont(int, java.io.File)的方式产生字体,既解决了临时文件tmp消耗磁盘的问题,也解决了
部分操作系统下读不到文件的问题。- 作者:
- zrh 455741807@qq.com
-
构造器概要
构造器 -
方法概要
-
构造器详细资料
-
FontsUtil
public FontsUtil()
-
-
方法详细资料
-
getFont
手动复制字体文件到临时目录. 调用传文件的构造方法创建字体- 参数:
fontName- 字体文件名称- 返回:
-
copyTempFontFile
复制字体文件到临时文件目录- 参数:
fontName-tempFontFile-
-