我正在使用以下代码在Java中上传aller字体:
我正在使用以下代码在Java中上传aller字体:
private Font loadFont(final String path) {
Font font = null;
InputStream fontFile = null;
fontFile = FontLoaderClass.class.getResourceAsStream(path);
if (fontFile != null) {
try {
font = Font.createFont(Font.PLAIN, fontFile);
} catch (FontFormatException e) {
LOGGER.error("Error with font format {}", e);
} catch (IOException e) {
LOGGER.error("Error accessing font {}", e);
}
}
return font;
}
字体已经正确加载:
http://www.fontsquirrel.com/fonts/Aller
字体设置为所有".font",更改了Java应用程序的默认设置,但在Linux中显示正确,而在Windows中则不正确。
private Font buildFont(final String key, final int size) {
Font f = loadFont(ALLER_LT_FONT_PATH);
GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(f);
if (f == null) {
f = (Font) UIManager.get(key);
}
f = f.deriveFont(Font.TRUETYPE_FONT, size);
return f;
}
Linux显示:
Windows显示:
正如您在图片中看到的那样,Windows存在一些被截断的问题,这导致图像显示不正确。
是否有人之前遇到过这个问题?