c# - 如何获取字体支持的所有unicode字符?
问题描述
我的意思是,如何通过字体(字体类)获取所有支持的字符?
这是第一个问题。
我找到了解决方案:
var families = Fonts.GetFontFamilies(@"C:\WINDOWS\Fonts\Arial.TTF");
foreach (var family in families)
{
var typefaces = family.GetTypefaces();
foreach (Typeface typeface in typefaces)
{
GlyphTypeface glyph;
typeface.TryGetGlyphTypeface(out glyph);
IDictionary<int, ushort> characterMap = glyph.CharacterToGlyphMap;
foreach (KeyValuePair<int, ushort> kvp in characterMap)
{
Console.WriteLine(String.Format("{0}:{1}", kvp.Key, kvp.Value));
}
}
}
但是,charaterMap(那个 IDictionary)包含什么?
这是第二个问题。
谢谢。
解决方案
GlyphTypeface.CharacterToGlyphMap 返回一个字典,其中包含字体的“cmap”表中的所有条目。这正是确定字体支持哪些 Unicode 字符的表。每个条目都有一个 Unicode 代码点作为键,该字符的默认字形 ID 作为值。
推荐阅读
- groovy - 在 JMeter 中使用 JSR223 发送 TCP 请求数据
- next.js - NextAuth 用户密码实现如何工作?
- javascript - 如何在 NextJS 中添加动态 basePath
- cassandra - 是否有创建和填充 .cql 脚本形式的 Cassandra 演示数据库?
- python - Mypy 列表阴影
- c++ - c++ 读取套接字超时
- salesforce - 通过 Salesforce API 获取属于 Salesforce 中报表的所有潜在客户
- r - glmnet中的AIC比较
- postgresql - IPFS 哈希的最佳列类型是什么?
- c# - 从 .NET 3 迁移到 .NET 5 时,Azure 函数中出现错误“找不到语言 [dotnet-isolated] 的函数”