是否有一种方法可以像TrueType字体一样在Java中读取Open Type字体?
对于TTF来说,这很完美,但我还没有弄清如何使用Open Type字体做同样的事情。
Font f = Font.createFont( Font.TRUETYPE_FONT,
new FileInputStream("f.ttf") );
请注意,我不能依赖于已安装的字体。 我会在我的程序中提供字体,但不想在整个系统范围内安装它。Java对于OpenType字体的支持取决于您的操作系统和JDK版本。
在Java 6之前,您只能使用TrueType口味的OpenType字体。 在Java 6中,您可以使用所有OpenType字体,但您将无法从高级排版功能(如连字)中受益。
Java 1.6不支持Open Type (.otf
)字体文件。从Java 1.7开始,增加了对其的支持:
Font font = Font.createFont(Font.TRUETYPE_FONT, new File("MyFont.otf"));
font = font.deriveFont(Font.BOLD, 40);
label.setFont(font);
更多细节:
我认为Java没有开放字体格式支持(至少不是免费的)。iText声称有这样的支持,但我几个月前尝试了一下,它并没有起作用。对我而言,可用的程序是FontForge,我用它从otf创建了ttf,然后再使用。