如何确定哪些字体包含特定字符

本文关键字:包含特 字符 字体 何确定 | 更新日期: 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                                                                      │
└─────────────────────────────────────────────────────────────────────────────┘