类 FontsUtil

java.lang.Object
io.springboot.captcha.utils.FontsUtil

public class FontsUtil extends Object
解决自定义字体读取时,产生.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

      public static Font getFont(String fontName, int style, float size)
      手动复制字体文件到临时目录. 调用传文件的构造方法创建字体
      参数:
      fontName - 字体文件名称
      返回:
    • copyTempFontFile

      private static void copyTempFontFile(String fontName, File tempFontFile)
      复制字体文件到临时文件目录
      参数:
      fontName -
      tempFontFile -