如何在Java中使用Helvetica?

时间:2008-12-17 18:44:15

标签: java fonts

Helvetica在Windows,Mac OS X和Linux上以这种或那种形式提供。在Windows下,我可以从Microsoft Word中看到它。在两个UNIX平台上,我可以使用xlsfonts |找到它grep -i helvetica;这个名字似乎是adobe-helvetica。

但是JDK找不到它!它不是从GraphicsEnvironment.getAllFonts()中列出的,当我调用new Font(“Helvetica”,...)时也不会出现它[使用多个名称变体,如“Adobe Helvetica”];相反,我默认为“Dialog”字体,它似乎用我用过的任何名称来命名。

此字体现在可用于每个相关的Java目标平台。我如何在Java中使用它?

6 个答案:

答案 0 :(得分:3)

Font f = new Font("Helvetica", Font.PLAIN, 10);  // make a new font object

ObjectName.setFont(f); // set the objects font using setFont();

其中“Helvetica”是字体,Font.PLAIN定义样式,10定义大小。当然必须安装它才能工作,你可以使用CreateFont()捆绑它。

请尝试Java API for Fonts以获取更多参考资料。

答案 1 :(得分:2)

我意识到这实际上并没有回答这个问题,但是......

在Windows上,并不总是安装Helvetica。尽管有Microsoft Office XP,我的工作机器(我现在正在使用的机器)也没有。

答案 2 :(得分:2)

安装TrueType字体通常非常简单。我使用maven作为我的项目所以我只是将字体文件保存在我的资源目录中并使用类加载器来获取它。

InputStream is = MyClass.class.getClassLoader().getResourceAsStream("my/package/Avenir.ttf");
Font f = Font.createFont(Font.TRUETYPE_FONT, is);
is.close();

应该将该字体加载到内存中,以便使用字体名称在应用程序的其他位置使用。您可以使用下面的代码确保此工作正常并查看系统上可用的字体。

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames = ge.getAvailableFontFamilyNames();

for(String name : fontNames)
    System.out.println(name);

答案 3 :(得分:1)

在Linux上,jre或jdk目录中的某个地方有一个font.properties文件你应该可以添加新字体,但是我尝试了很多不同的东西来添加字体,甚至操作系统已知的并显示在xlsfonts中,并且从未使其工作。

答案 4 :(得分:0)

官方称,唯一保证带有Java的字体是Lucida前端(Bright,Sans和Typewriter)。根据Java的安装和配置,它可能能够从您机器的字体目录中读取前端,但这不能保证。

如果必须是Helvetica,可以将字体与Font.CreateFont()捆绑在一起,传入表示类型的int(Font.BOLD或Font.PLAIN等),并将InputStream传递给TrueType字体。

答案 5 :(得分:-1)

我想如果你把字体文件放在src文件夹中并从那里调用它就可以了。