Получите поддерживаемые символы шрифта - в C#

Если значения связаны, почему бы не инкапсулировать их в классе и просто использовать простой Словарь?

23
задан 17 September 2009 в 15:21
поделиться

2 ответа

На основе этого ответа .

Обязательно укажите PresentationCore.dll

Попробуйте использовать этот код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media;

namespace fontChecker
{
    class Program
    {
        static void Main(string[] args)
        {
            var families = Fonts.GetFontFamilies(@"C:\WINDOWS\Fonts\Arial.TTF");
            foreach (FontFamily family in families)
            {
                var typefaces = family.GetTypefaces();
                foreach (Typeface typeface in typefaces)
                {
                    GlyphTypeface glyph;
                    typeface.TryGetGlyphTypeface(out glyph);
                    IDictionary<int, ushort> characterMap = glyph.CharacterToGlyphMap;

                    foreach (KeyValuePair<int, ushort> kvp in characterMap)
                    {
                        Console.WriteLine(String.Format("{0}:{1}", kvp.Key, kvp.Value));
                    }

                }
            }
        }
    }
}

Выходное изображение удалено из-за того, что ImageShack заменил старый , удалено изображение с рекламой.

25
ответ дан 29 November 2019 в 02:54
поделиться

Не могли бы вы просто открыть его в Карте символов и обратить внимание на диапазоны символов, которые не определены?

Вероятно, есть программный способ проанализировать файл TTF для получения этой информации, но если это только один конкретный шрифт, то, вероятно, проще просто открыть карту символов, установить для параметра Group by значение Unicode Subrange и Group by "Japanese Hiragana / Katakana" и просто принять к сведению определенные диапазоны.

-3
ответ дан 29 November 2019 в 02:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: