如何在Java中使用开放式字体?

时间:2009-05-16 14:50:10

标签: java fonts opentype

有没有办法用Java读取Open Type字体,就像使用TrueType字体一样?

这对TTF非常有效,但我还没弄清楚如何对Open Type字体做同样的事情。

Font f = Font.createFont( Font.TRUETYPE_FONT,
new FileInputStream("f.ttf") );

请注意我无法转发已安装的字体。我提供的字体与我的程序,但不想在系统范围内安装。

4 个答案:

答案 0 :(得分:4)

我认为java中没有Open Type Font支持(不是免费的至少),iText声称有这样的支持,几个月前尝试过它并没有用,对我有用的是一个名为的程序FontForge,我曾经用otf创建了一个ttf,然后我用它。

答案 1 :(得分:4)

Java OpenType font support depends on your OS and JDK version.

在Java 6之前,您只能使用TrueType风格的OpenType字体。使用Java 6,您可以使用所有OpenType字体,但您不会受益于连字等高级印刷功能。

答案 2 :(得分:1)

我使用字体转换器将 OTF 转换为 TTF 文件。有一些在线服务(如www.freefontconverter.com)可以完成这项工作。对我来说,这是一个快速而简单的解决方法。

答案 3 :(得分:0)

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);

以下几个链接证明了这个

http://bugs.java.com/view_bug.do?bug_id=6992611 http://docs.oracle.com/javase/7/docs/webnotes/adoptionGuide/#swing