当前位置: 首页 > 编程语言 > C#

获取字体支持的字符-在C#中分享

时间:2023-04-11 00:01:33 C#

只要字体不支持字符,就会绘制通常的矩形(“默认字符”)。显然不是所有的日语字符都被支持,因为如果我尝试绘制翻译办公室给我们的翻译,就会有很多矩形。每当使用不受支持的字符时,我都需要得到通知,因此我可以更改这个单个字符的字体(就像Word所做的那样)或对其实施一些其他反应。有任何想法吗?如果我可以从TTF文件中提取unicode字符列表,那么我将能够检查此列表是否包含使用的字符。但是我该怎么做呢?基于这个答案。请务必参考PresentationCore.dll试试这个代码:usingSystem;使用System.Collections.Generic;使用System.Linq;使用系统文本;使用System.Windows.Media;namespacefontChecker{classProgram{staticvoidMain(string[]args){varfamilies=Fonts.GetFontFamilies(@"C:WINDOWSFontsArial.TTF");foreach(FontFamilyfamilyinfamilies){vartypefaces=family.GetTypefaces();foreach(字体中的字体字体){GlyphTypeface字形;字体.TryGetGlyphTypeface(outglyph);IDictionarycharacterMap=glyph.CharacterToGlyphMap;foreach(KeyValuePairkvpincharacterMap){Console.WriteLine(String.Format("{0}:{1}",kvp.Key,kvp.Value));}}}}}}输出图像被删除,因为ImageShack用广告替换了旧的、删除的图像。您不能只在字符映射中提取它并注意未定义的字符范围吗?可能有一种编程方式来解析TTF文件以获取此信息,但如果它只是一种特定的字体,则可能更容易打开字符映射表,将分组依据设置为Unicode子范围并按“日语平假名/片假名”分组,只需注意定义的范围。以上就是C#学习教程:获取字体支持的字符-C#中分享的所有内容,如果对大家有用还需要详细了解C#学习教程,希望大家多多关注-本文收藏来自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: