Wha*_*y33 9 java import fonts awt
我知道您可以使用以下内容导入Java中的Font:
File file = new File(fontPath);
Font font = Font.createFont(Font.TRUETYPE_FONT, file);
// alternative:
// Font font = Font.createFont(Font.TRUETYPE_FONT, new FileInputStream(file));
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
Run Code Online (Sandbox Code Playgroud)
然后,您将使用例如font.deriveFont(Font.PLAIN, 20);获得所需的样式和大小.
例
但现在让我们看一下字体的例子Consolas,你有四个TTF文件:
consola.ttf (纯)consolab.ttf (胆大)consolai.ttf (斜体)consolaz.ttf (加粗斜体)当然你可以consola.ttf使用上面描述的方法导入,但是然后使用font.deriveFont(Font.BOLD, 20);与使用不同,consolab.ttf因为简单的字体被简单地转换为看起来像粗体字体.
示例图片
new Font("Consolas", Font.PLAIN, 20);和new Font("Consolas", Font.BOLD, 20);(作为旁注,如果你在系统上安装了字体,你也会得到正确的粗体字体deriveFont(Font.BOLD);):
consola.ttf导入createFont和导出粗体字体(两者的大小都是20,如上例所示):
好吧,安装时不是问题,但我不希望别人有自定义字体,所以我想将TTF放入jar文件,以便我可以在初始化过程中导入它们getResourceAsStream(path).
有没有办法导入所有相关的TTF,然后只是调用,new Font("Custom Font Name", fontStyle, fontSize);以便它像安装的字体一样使用(图1),并且它看起来不像派生的'假'粗体字(图2)?
我不确定到底是什么问题。您已获得所有 TTF 文件,并且必须导入并注册它们。以下测试使用未安装在我的系统上的DejaVu Sans字体。
Font f = Font.createFont(Font.TRUETYPE_FONT, new File("dvs.ttf"));
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(f);
Font dvs = new Font("DejaVu Sans", Font.PLAIN, 20);
Run Code Online (Sandbox Code Playgroud)
这是一张带有普通 ( dvs) 和派生粗体( dvs.deriveFont(Font.BOLD)) 字体的图像。

Font f = Font.createFont(Font.TRUETYPE_FONT, new File("dvs.ttf"));
Font fb = Font.createFont(Font.TRUETYPE_FONT, new File("dvsb.ttf"));
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(f);
ge.registerFont(fb);
Font dvs = new Font("DejaVu Sans", Font.PLAIN, 20);
Font dvsb = new Font("DejaVu Sans", Font.BOLD, 20);
Run Code Online (Sandbox Code Playgroud)
这是一张带有普通 ( dvs) 和真正粗体( dvsb) 字体的图像。

您可以通过查看来确认使用了正确的文件font2DHandle。

我还测试了斜体和粗斜体,两者都和Font#createFont(int, InputStream)方法一样有效。
上述方法有效,因为字体按其全名(例如 Arial、Arial Bold 等)进行映射,因此只要您的字体命名正确,您就可以注册一个系列的多个成员。
| 归档时间: |
|
| 查看次数: |
4961 次 |
| 最近记录: |