对于给定的字体,我如何从 .NET 运行时确定它是否具有字符的字形?如果我有指定字体没有字形的文本(对于 CJK 很常见),我想将字体切换为 Arial Unicode MS。
更新:我正在寻找 C#(即所有托管代码)解决方案。我想GlyphTypeface可能是我需要的,但我看不出有什么方法可以询问给定字符是否有字形。您可以取回整个 map ,但我认为这将是一次昂贵的调用。
最佳答案
我已经完成了一些 unicode 工具,我使用的技术是获取 map 并对其进行 chache 对于使用的每种字体。
IDictionary<int, ushort> characterMap = GlyphTypeface.CharacterToGlyphMap
将为您提供每个代码点定义的字形索引。
if (characterMap.ContainsKey(CodePoint))
glyphExists = true;
else
glyphExists = false;
关于.net - 如何确定字体是否具有给定字符的字形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22520132/