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

问题描述 投票:2回答:1

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

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

fonts true-type-fonts
1个回答
1
投票

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

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

然后在以后实现字体时,在其上调用GetFontData并读取head表并找到该字体的checkSumAdjustment。然后在您之前创建的列表中查找。

© www.soinside.com 2019 - 2024. All rights reserved.