.net - 如何确定字体是否具有给定字符的字形?

标签 .net fonts glyph

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

更新:我正在寻找 C#(即所有托管代码)解决方案。我想GlyphTypeface可能是我需要的,但我看不出有什么方法可以询问给定字符是否有字形。您可以取回整个 map ,但我认为这将是一次昂贵的调用。

最佳答案

我已经完成了一些 unicode 工具,我使用的技术是获取 map 并对其进行 chache 对于使用的每种字体。

IDictionary<int, ushort> characterMap = GlyphTypeface.CharacterToGlyphMap

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

msdn ref

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

关于.net - 如何确定字体是否具有给定字符的字形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22520132/

相关文章:

c# - 将新对象实例分配给绑定(bind)变量时数据绑定(bind)不起作用

.net - 在 WPF 字体大小和 "standard"字体大小之间转换

java - 我如何在java中的同一文本区域使用不同的字体类型和大小

html - Emacs 组织模式 : tables aligning emali, 固定宽度字体,html 电子邮件

Windows:从其他字体获取替换字符的字形轮廓

c# - 使用内存映射文件的缺点

c# - 使用 VirtualAlloc 从字节数组运行程序?

PDF 规范 - 以点为单位获取字体大小

swift - 字形图像不会改变颜色

java - 如何使用从 TTF 文件中提取的字距调整对在 Java 中将字形正确显示为 Path2D?