在哪里可以找到从字体字体名称到文件名的地图?

时间:2013-08-21 03:55:21

标签: fonts true-type-fonts

我正在尝试编写一个Java程序,根据其名称查找字体的TTF。例如,在我的Windows机器上输入“Times New Roman”将返回路径“C:\ Windows \ Fonts \ times.ttf”。

大多数其他字体名称在其TTF文件名称中以类似方式缩写。我可以用某个标准将字体名称映射到相应的TTF文件名吗?

1 个答案:

答案 0 :(得分:1)

请记住,字体的名称是在文件内容中定义的,因此没有理由与字体文件本身的名称有任何关系。

在Windows XP中,注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts列出了所有永久安装的系统字体。您可以枚举这个字体文件列表,依次打开每个字体文件,如果它是ttf,您可以从checkSumAdjustment表中获取head。构建项目列表,每个项目包含一对值 - 字体文件名和校验和值。

然后当您稍后实现字体时,在其上调用GetFontData并阅读head表并找到该字体的checkSumAdjustment。然后在你之前制作的列表中查找。