Чтение информации о шрифте

Решение .NET API для получения информации о метриках шрифта.

 

Aspose.Font API Solution имеет богатый функционал для работы со шрифтами. Преобразование, манипуляции с глифами, обнаружение латинских символов и многое другое. Некоторые функции связаны с манипуляциями с глифами, такими как получение информации о глифах, присутствующих в шрифте.

Глиф — это индивидуально разработанный символ шрифта или графическое представление символа/знака. Чтобы узнать больше об этой единице шрифта, прочитайте статью Introduction to Glyph .

На этой странице описывается возможность получения различных метрик шрифта (количество глифов, высота букв, ширина глифа «A» и т. д.), но вся функциональность подробно описана в статье Использование объектов глифов . Этот пример также включает часть кода для получения метаданных шрифта, имя шрифта, если быть точным. Такая функциональность может быть реализована в веб-программном обеспечении, таком как приложение Font Metadata , которое Aspose имеет в своей экосистеме.

Для получения метрик шрифта нам необходимо:

  • Aspose.Font for .NET API — многофункциональный, мощный и простой в использовании API для работы с документами и преобразования для платформы C#.

  • Откройте диспетчер пакетов NuGet, найдите Aspose.Font и установите его. Вы также можете использовать следующую команду из консоли диспетчера пакетов.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Шаги для получения метрик шрифта с помощью C#:

  1. Укажите шрифт для извлечения информации.
  2. Используйте интерфейс Aspose.Font.IFontMetrics , чтобы получить указанные метрики.
  3. Получите таблицу кодировки Unicode cmap из шрифта как объект TtfCMapFormatBaseTable , чтобы получить доступ к информации о необходимом глифе шрифта.
  4. Чтобы получить индекс глифа для символа «A», используйте Mетод GetGlyphIndex() .
  5. Распечатайте метрики глифа.

Код С# для получения информации о глифах шрифта

    using Aspose.Font;
    using Aspose.Font.Glyphs;
    using Aspose.Font.Ttf;
    //Font to extract info from
    TtfFont font;
    string name = font.FontName;
    Console.WriteLine("Font name: " + name);
    Console.WriteLine("Glyph count: " + font.NumGlyphs);
    string metrics = string.Format(
        "Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}",
        font.Metrics.Ascender, font.Metrics.Descender,
        font.Metrics.TypoAscender, font.Metrics.TypoDescender, font.Metrics.UnitsPerEM);

    Console.WriteLine(metrics);

    //Get the cmap unicode encoding table from the font as an object TtfCMapFormatBaseTable to access information about the font glyph for symbol 'A'.
    //Also check that font has the object TtfGlyfTable (table 'glyf') to access glyph.
    Aspose.Font.TtfCMapFormats.TtfCMapFormatBaseTable cmapTable = null;
    if (font.TtfTables.CMapTable != null)
    {
        cmapTable = font.TtfTables.CMapTable.FindUnicodeTable();
    }
    if (cmapTable != null && font.TtfTables.GlyfTable != null)
    {
        Console.WriteLine("Font cmap unicode table: PlatformID = " + cmapTable.PlatformId + ", PlatformSpecificID = " + cmapTable.PlatformSpecificId);

        //Code for 'A' symbol
        char unicode = (char)65;

        //Glyph index for 'A'
        uint glIndex = cmapTable.GetGlyphIndex(unicode);

        if (glIndex != 0)
        {
            //Glyph for 'A'
            Glyph glyph = font.GetGlyphById(glIndex);
            if (glyph != null)
            {
                //Print glyph metrics
                Console.WriteLine("Glyph metrics for 'A' symbol:");
                string bbox = string.Format(
                    "Glyph BBox: Xmin = {0}, Xmax = {1}" + ", Ymin = {2}, Ymax = {3}",
                    glyph.GlyphBBox.XMin, glyph.GlyphBBox.XMax,
                    glyph.GlyphBBox.YMin, glyph.GlyphBBox.YMax);
                Console.WriteLine(bbox);
                Console.WriteLine("Width:" + font.Metrics.GetGlyphWidth(new GlyphUInt32Id(glIndex)));
            }
        }
    }



Часто задаваемые вопросы

1. Что такое метрика шрифта?

Это свойство определяет способ отображения шрифта на экране. Некоторые метрики, такие как восхождение, спуск, ширина и кернинг, аналогичны метрикам глифов .

2. Как получить метрики шрифта?

Укажите шрифт, с которым вы хотите работать. Используя свойства интерфейса класса Aspose.Font.IFontMetrics, извлеките необходимую информацию о метриках шрифта.

3. Что такое метаданные шрифта?

Метаданные шрифта — это в основном информация о нем. Он включает в себя множество данных, таких как имя шрифта, имя семейства шрифтов, имя постскриптума, лицензирование, информацию об авторе и дизайнере и многое другое.

4. Как изменить метаданные шрифта?

Чтобы просмотреть или изменить информацию о шрифте онлайн, используйте наше приложение Метаданные шрифта .