【问题标题】:How can I determine if a font has a glyph for a given character?如何确定字体是否具有给定字符的字形?
【发布时间】:2014-04-26 12:58:01
【问题描述】:

对于给定的字体,我如何从 .NET 运行时确定它是否具有字符的字形?如果我有指定字体没有字形的文本(在 CJK 中很常见),我想将字体切换为 Arial Unicode MS。

更新:我正在寻找 C#(即所有托管代码)解决方案。我认为GlyphTypeface 可能是我需要的,但我看不到其中的方法来询问给定字符是否具有字形。你可以拿回整个地图,但我认为这将是一个昂贵的电话。

【问题讨论】:

标签: .net fonts glyph


【解决方案1】:

我已经完成了一些 unicode 工具,我使用的技术是获取地图并进行查找 每种使用的字体。

IDictionary<int, ushort> characterMap = GlyphTypeface.CharacterToGlyphMap

将为您提供每个代码点定义的字形索引。

msdn ref

if (characterMap.ContainsKey(CodePoint))
    glyphExists = true;
else
    glyphExists = false;

【讨论】:

  • 我已经很多年没用过.net 但glyphExists = characterMap.ContainsKey(codePoint); 无效吗? (更简洁)
  • @Suragch 代码是一种语言,我猜在解释时,冗长胜过简洁...
猜你喜欢
  • 2019-06-04
  • 2015-07-09
  • 2017-07-21
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
  • 2010-10-17
  • 1970-01-01
相关资源
最近更新 更多