【问题标题】:How can I make arbitrary font files available to Java?如何使任意字体文件可用于 Java?
【发布时间】:2010-09-27 08:38:44
【问题描述】:

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

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

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


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

【问题讨论】:

    标签: java fonts


    【解决方案1】:

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

    【讨论】:

    • 太棒了。这是这个问题的正确答案。除了我被困在 Java 1.5 上,我们要到明年才能升级到我们的软件在 1.6 中存在的一些问题!不过谢谢!
    【解决方案2】:

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

    【讨论】:

    • 嗯,这有点帮助,但显然我仍然坚持必须以某种方式将生成的字体放入 getAllFonts() 调用中,对于我们正在使用的第三方库。跨度>
    猜你喜欢
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 2018-12-02
    • 2017-10-03
    相关资源
    最近更新 更多