openJDK awt 字体支持

因为sun jdk1.8之后要开始收费了,不得已转入使用openJDK。相对于sun JDK来讲openJDK缺少了部分组件支持,并且重写了一些实现。在openJDK中,是不包含任何字体的,在生成图形验证码等使用awt.font的需求时,需要额外的字体支持。

 

一, 环境

openJDK 1.8, springboot2.x

 

二, 外部字体加载

可以在本地windows环境中找到字体的支持包。控制面板-》 外观和个性化 -》字体

控制面板 -》 外观和个性化 -》 字体

在这个目录下, 你可以找到想要的字体包。例如,我想要华文细黑,直接复制这个包到你的项目下。

在springboot环境里,我放在resource  -->font 目录下。

华文细黑对应的包为STXIHEI.TTF

awt.font加载代码

    private Font loadFontResource() {

        InputStream resourceAsStream = null;
        try {
            String path = "/font/STXIHEI.TTF";
            resourceAsStream = this.getClass().getResourceAsStream(path);
            Font font = Font.createFont(Font.TRUETYPE_FONT, resourceAsStream);
            Font targetFont = font.deriveFont(Font.PLAIN);
            return targetFont;
        } catch (FontFormatException e) {
            e.printStackTrace();
            return null;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        } finally {
            if (resourceAsStream != null){
                resourceAsStream.close();
            }
        }
    }

 

你可能感兴趣的:(awt.font)