【问题标题】:Custom Fonts in JavaJava中的自定义字体
【发布时间】:2011-05-05 18:06:21
【问题描述】:

如何解决 Java 中自定义字体的问题?

例如,我的应用程序使用字体,并非所有计算机都使用该字体。如果客户端计算机上不存在它,我可以以某种方式将其包含在已编译的可执行文件中,然后从那里调用它吗?

还有什么其他选择?我可以将所有字体字符作为图像(之前,在某些图形应用程序中),然后为每个字符显示图像......可以吗?

【问题讨论】:

    标签: java graphics fonts awt custom-font


    【解决方案1】:

    这是我用来从 .ttf 文件加载字体文件的实用方法(可以捆绑):

    private static final Font SERIF_FONT = new Font("serif", Font.PLAIN, 24);
    
    private static Font getFont(String name) {
        Font font = null;
        if (name == null) {
            return SERIF_FONT;
        }
    
        try {
            // load from a cache map, if exists
            if (fonts != null && (font = fonts.get(name)) != null) {
                return font;
            }
            String fName = Params.get().getFontPath() + name;
            File fontFile = new File(fName);
            font = Font.createFont(Font.TRUETYPE_FONT, fontFile);
            GraphicsEnvironment ge = GraphicsEnvironment
                    .getLocalGraphicsEnvironment();
    
            ge.registerFont(font);
    
            fonts.put(name, font);
        } catch (Exception ex) {
            log.info(name + " not loaded.  Using serif font.");
            font = SERIF_FONT;
        }
        return font;
    }
    

    【讨论】:

      【解决方案2】:

      您可以在应用程序中包含字体并“即时”创建它

      InputStream is = this.getResourceAsStream(font_file_name);
      Font font = Font.createFont(Font.TRUETYPE_FONT, is);
      

      【讨论】:

        猜你喜欢
        • 2014-03-17
        • 2012-01-15
        • 2011-08-04
        • 2013-09-30
        • 2011-09-07
        • 2011-04-12
        • 2012-07-24
        • 2020-12-18
        相关资源
        最近更新 更多