【发布时间】:2012-05-03 09:52:00
【问题描述】:
我将 ttf 文件捆绑在一个 jar 文件中,并打算将它们用作渲染文本的物理字体。
我在网上看到的所有示例代码如下:
InputStream is=Essai.class.getResourceAsStream(resourcePath);
Font f=Font.createFont(fontFormat, is);
我对这段代码有两个问题:
-
首先,一种字体,比如 DejaVu,包含 4 个不同的 ttf 文件,每种样式 1 个(常规、粗体、斜体和粗斜体);从一个 ttf(4 个中的任何一个)创建字体就足够了吗?
-
其次,我见过的代码在创建字体后都没有关闭流,这让我想知道这是故意的吗?也许创建的字体(稍后将在本地 GraphicsEnvironment 中注册)需要流保持打开状态?
createFont() 方法的 javadoc 说:“这个方法不会关闭 InputStream。”
所以我的第二个问题是我应该在创建字体后关闭流,还是保持打开状态?
【问题讨论】:
-
感谢您花时间回答。我不同意您的编辑,我需要将第二个问题标记在列表的第二个元素下,因为......这是第二个问题:-)
标签: java fonts truetype embedded-fonts