java truetypefont_从Java中的TTF文件加载一些TrueType字体会导致FontFormatException:找不到字体名称...

本文探讨了在Java中从TTF文件加载某些TrueType字体时遇到的问题,特别是在OSX系统下使用Java7时出现FontFormatException的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我试图从我的系统上的TTF文件创建一个java.awt.Font实例,但只有一些字体能够加载而没有错误。下面的代码是我在网上找到的一些测试代码。在我的系统上运行时,它能够成功加载285种字体(例如Arial.ttf),但在83种字体(例如AmericanTypewriter.ttf)上失败。从Java中的TTF文件加载一些TrueType字体会导致FontFormatException:找不到字体名称

所有错误的格式为FontFormatException: Font name not found,没有嵌入的原因。

是否存在java.awt.Font和格式兼容性的已知问题?谷歌搜索之后我找不到任何东西。

public static void main(String[] args) {

String rootPath = "/Library/Fonts";

File root = new File(rootPath);

if (root.canRead()) {

String[] fontFiles = root.list();

Font font = null;

for (String fontFile : fontFiles) {

try {

System.out.println(fontFile);

font = Font.createFont(Font.TRUETYPE_FONT, new File(root + "/" + fontFile));

System.out.println(font);

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

我的环境是Java 7,OS X Mavericks(10.9.1)。

java version "1.7.0_40"

Java(TM) SE Runtime Environment (build 1.7.0_40-b43)

Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

在这里的任何帮助将不胜感激。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值