确定TTF字体文件名称

3
如果我有一个.NET字体对象,是否有一种编程方法可以确定它是使用C:\Windows\Fonts目录中的哪个ttf文件创建的?
1个回答

4
这篇有用的文章建议通过查看注册表键来实现。
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Fonts

您将获得字体名称和文件名对的列表。打开该注册表键,迭代名称直到找到匹配项,然后该值包含文件名(不带路径)。


谢谢!实际上,我的Hive中有几个字体是完整路径。因此看起来它被假定在系统字体文件夹中,除非它有一个完整的路径,在这种情况下它就是那个路径。无论哪种方式,这正是我所需要的。 - Nick
@Nick:需要注意的一点是,注册表中的字体名称并不实际匹配Font.Name - 它们通常会在注册表键中添加类似于“(TrueType)”的内容,例如Arial(TrueType)。 这通常可以使用正则表达式来规范化字体名称,通过删除附加描述符来实现,但并非总是有效。 我的需求与你类似,但我需要精确匹配,包括字体的外语名称。 所以我从注册表中获取了所有字体文件名,并读取每个ttf或ttc的头文件以提取名称以匹配已安装的字体名称。 - Todd Main

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接