2013-08-21 26 views
2

我正在尝试编写一个Java程序,该程序可以为给定名称的字体找到TTF。例如,在Windows机器上输入“Times New Roman”会返回路径“C:\ Windows \ Fonts \ times.ttf”。从哪里可以找到从字体字体名称到文件名的地图?

大多数其他字型的名字在他们的TTF文件的名称缩写以类似的方式。有什么标准可以用来将字体名称映射到相应的TTF文件名吗?

回答

1

记住字体的名称是该文件的内容中定义的,所以我们没有理由应该与字体文件本身的名称的任何关系。

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

然后,当您稍后意识到字体时,请拨打GetFontData并阅读head表并找到该字体的checkSumAdjustment。然后在你之前做的列表中查看它。

+0

和windows7上? – n611x007

相关问题