如何确定哪些字体包含特定字符
本文关键字:包含特 字符 字体 何确定 | 更新日期: 2023-09-27 17:49:38
给定一个特定的Unicode字符,比如说,我如何遍历系统中安装的所有字体并列出包含该字符字形的字体?
我已经在。net 4.0上测试过了,你需要添加对PresentationCore的引用来获得字体&字体类型工作。同时检查字体。GetFontFamilies过载。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Markup;
using System.Windows.Media;
class Program
{
public static void Main(String[] args)
{
PrintFamiliesSupportingChar('a');
Console.ReadLine();
PrintFamiliesSupportingChar('â');
Console.ReadLine();
PrintFamiliesSupportingChar('嗎');
Console.ReadLine();
}
private static void PrintFamiliesSupportingChar(char characterToCheck)
{
int count = 0;
ICollection<FontFamily> fontFamilies = Fonts.GetFontFamilies(@"C:'Windows'Fonts'");
ushort glyphIndex;
int unicodeValue = Convert.ToUInt16(characterToCheck);
GlyphTypeface glyph;
string familyName;
foreach (FontFamily family in fontFamilies)
{
var typefaces = family.GetTypefaces();
foreach (Typeface typeface in typefaces)
{
typeface.TryGetGlyphTypeface(out glyph);
if (glyph != null && glyph.CharacterToGlyphMap.TryGetValue(unicodeValue, out glyphIndex))
{
family.FamilyNames.TryGetValue(XmlLanguage.GetLanguage("en-us"), out familyName);
Console.WriteLine(familyName + " supports ");
count++;
break;
}
}
}
Console.WriteLine();
Console.WriteLine("Total {0} fonts support {1}", count, characterToCheck);
}
}
您可以使用信天翁命令行工具(https://gitlab.com/islandoftex/albatross/;也包含在Tex发行版中,如texlive或miktex)。
如果你运行albatross 嗎
,你会得到一个包含字符的所有字体的列表:
__ __ __
.---.-.| | |--.---.-.| |_.----.-----.-----.-----.
| _ || | _ | _ || _| _| _ |__ --|__ --|
|___._||__|_____|___._||____|__| |_____|_____|_____|
Unicode code point [55CE] mapping to 嗎
┌─────────────────────────────────────────────────────────────────────────────┐
│ Font name │
├─────────────────────────────────────────────────────────────────────────────┤
│ .Aqua Kana,.Aqua かな │
├─────────────────────────────────────────────────────────────────────────────┤
│ .Aqua Kana,.Aqua かな,.Aqua Kana Bold,.Aqua かな ボールド │
├─────────────────────────────────────────────────────────────────────────────┤
│ .Hiragino Kaku Gothic Interface │
├─────────────────────────────────────────────────────────────────────────────┤
│ .Hiragino Sans GB Interface │
├─────────────────────────────────────────────────────────────────────────────┤
│ .LastResort │
├─────────────────────────────────────────────────────────────────────────────┤
│ .PingFang HK,.蘋方'-港,.苹方'-港 │
├─────────────────────────────────────────────────────────────────────────────┤
│ .PingFang SC,.蘋方'-簡,.苹方'-简 │
├─────────────────────────────────────────────────────────────────────────────┤
│ .PingFang TC,.蘋方'-繁,.苹方'-繁 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Adobe Fangsong Std,Adobe 仿宋 Std,Adobe Fangsong Std R,Adobe 仿宋 Std R │
├─────────────────────────────────────────────────────────────────────────────┤
│ Adobe Heiti Std,Adobe 黑体 Std,Adobe Heiti Std R,Adobe 黑体 Std R │
├─────────────────────────────────────────────────────────────────────────────┤
│ Adobe Kaiti Std,Adobe 楷体 Std,Adobe Kaiti Std R,Adobe 楷体 Std R │
├─────────────────────────────────────────────────────────────────────────────┤
│ Adobe Ming Std,Adobe 明體 Std,Adobe 明體 Std L,Adobe Ming Std L │
├─────────────────────────────────────────────────────────────────────────────┤
│ Adobe Song Std,Adobe 宋体 Std,Adobe Song Std L,Adobe 宋体 Std L │
├─────────────────────────────────────────────────────────────────────────────┤
│ Arial Unicode MS │
├─────────────────────────────────────────────────────────────────────────────┤
│ GB18030 Bitmap │
├─────────────────────────────────────────────────────────────────────────────┤
│ Heiti SC,黑體'-簡,黒体'-簡,Heiti'-간체,黑体'-简 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Heiti TC,黑體'-繁,黒体'-繁,Heiti'-번체,黑体'-繁 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Kaku Gothic Pro,ヒラギノ角ゴ Pro,Hiragino Kaku Gothic Pro │
│ W3,ヒラギノ角ゴ Pro W3 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Kaku Gothic Pro,ヒラギノ角ゴ Pro,Hiragino Kaku Gothic Pro │
│ W6,ヒラギノ角ゴ Pro W6 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Kaku Gothic ProN,ヒラギノ角ゴ ProN,Hiragino Kaku Gothic ProN │
│ W3,ヒラギノ角ゴ ProN W3 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Kaku Gothic ProN,ヒラギノ角ゴ ProN,Hiragino Kaku Gothic ProN │
│ W6,ヒラギノ角ゴ ProN W6 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Maru Gothic Pro,ヒラギノ丸ゴ Pro,Hiragino Maru Gothic Pro │
│ W4,ヒラギノ丸ゴ Pro W4 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Maru Gothic ProN,ヒラギノ丸ゴ ProN,Hiragino Maru Gothic ProN │
│ W4,ヒラギノ丸ゴ ProN W4 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Mincho Pro,ヒラギノ明朝 Pro,Hiragino Mincho Pro W3,ヒラギノ明朝 │
│ Pro W3 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Mincho Pro,ヒラギノ明朝 Pro,Hiragino Mincho Pro W6,ヒラギノ明朝 │
│ Pro W6 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Mincho ProN,ヒラギノ明朝 ProN,Hiragino Mincho ProN W3,ヒラギノ明朝 │
│ ProN W3 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Mincho ProN,ヒラギノ明朝 ProN,Hiragino Mincho ProN W6,ヒラギノ明朝 │
│ ProN W6 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Sans GB,冬青黑體簡體中文,冬青黑体简体中文,冬青黑體簡體中文 │
│ W3,Hiragino Sans GB W3,冬青黑体简体中文 W3 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Sans GB,冬青黑體簡體中文,冬青黑体简体中文,冬青黑體簡體中文 │
│ W6,Hiragino Sans GB W6,冬青黑体简体中文 W6 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Sans,ヒラギノ角ゴシック,Hiragino Sans W1,ヒラギノ角ゴシック W1 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Sans,ヒラギノ角ゴシック,Hiragino Sans W2,ヒラギノ角ゴシック W2 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Sans,ヒラギノ角ゴシック,Hiragino Sans W3,ヒラギノ角ゴシック W3 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Sans,ヒラギノ角ゴシック,Hiragino Sans W4,ヒラギノ角ゴシック W4 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Sans,ヒラギノ角ゴシック,Hiragino Sans W5,ヒラギノ角ゴシック W5 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Hiragino Sans,ヒラギノ角ゴシック,Hiragino Sans W6,ヒラギノ角ゴシック W6 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Meiryo,メイリオ │
├─────────────────────────────────────────────────────────────────────────────┤
│ MS Gothic,MS ゴシック │
├─────────────────────────────────────────────────────────────────────────────┤
│ MS Mincho,MS 明朝 │
├─────────────────────────────────────────────────────────────────────────────┤
│ MS PGothic,MS Pゴシック │
├─────────────────────────────────────────────────────────────────────────────┤
│ MS PMincho,MS P明朝 │
├─────────────────────────────────────────────────────────────────────────────┤
│ PingFang HK,蘋方'-港,苹方'-港 │
├─────────────────────────────────────────────────────────────────────────────┤
│ PingFang SC,蘋方'-簡,苹方'-简 │
├─────────────────────────────────────────────────────────────────────────────┤
│ PingFang TC,蘋方'-繁,苹方'-繁 │
├─────────────────────────────────────────────────────────────────────────────┤
│ PMingLiU,新細明體 │
├─────────────────────────────────────────────────────────────────────────────┤
│ SimSun,宋体 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Songti SC,宋體'-簡,宋体'-简 │
├─────────────────────────────────────────────────────────────────────────────┤
│ Songti TC,宋體'-繁,宋体'-繁 │
├─────────────────────────────────────────────────────────────────────────────┤
│ STSong │
└─────────────────────────────────────────────────────────────────────────────┘