如何为Java提供任意字体文件?

时间:2008-12-17 15:46:23

标签: java fonts

我正在使用第三方库,它通过GraphicsEnvironment:getAllFonts()调用访问字体。这包括属于JRE和操作系统的字体注册表中的字体。

但是在连接到我们服务器的客户端计算机上,我可能无法将字体安装到这些位置中的任何一个位置。那么我怎样才能让其他字体可用于JRE,以便这个调用能够接收它们?有没有办法扩展其搜索路径?

我可以使用Font.createFont()调用从任意文件访问字体。但是它仍然没有出现在GraphicsEnvironment.getAllFonts()中。有没有一种方法我可以将那个Font传递给那个将它添加到可用字体列表中?我正在读取有从系统属性访问字体的调用,但我仍然不理解,我认为只是将我设置的字体属性转换为可用列表中的字体名称。


asalamon已经提供了正确的答案,但我坚持使用不支持它的Java早期版本,至少要到明年。所以更多答案仍然非常受欢迎!我可能会尝试使用反射来破解我们正在使用的库并将字体直接插入其缓存中。

2 个答案:

答案 0 :(得分:2)

使用GraphicsEnvironment.registerFont。 (对于JDK 1.6)

答案 1 :(得分:1)

尝试Font.createFont()并捆绑您要使用的字体。