Ler informações da fonte

Solução de API .NET para obter informações e métricas de fonte.

 

Aspose.Font API Solution tem uma funcionalidade rica para trabalhar com fontes. Conversão, manipulações de glifos, detecção de símbolos latinos e muito mais. Alguns dos recursos estão vinculados a manipulações com glifos, como obter informações sobre glifos presentes na fonte.

Um glifo é um caractere projetado individualmente de um tipo de letra ou uma representação gráfica de um símbolo/caractere. Para saber mais sobre esta unidade de fonte, leia o artigo Introduction to Glyph .

Esta página descreve a opção de como obter diferentes métricas de fonte (contagem de glifos, altura da letra, largura do glifo ‘A’, etc), mas toda a funcionalidade é cuidadosamente descrita em Usando objetos Glyph . Este exemplo também inclui uma parte do código para obter metadados de fonte, nome da fonte se for específico. Essa funcionalidade pode ser implementada em software da web como o aplicativo Font Metadata que a Aspose possui em seu ecossistema.

Para receber métricas de fonte, precisamos:

  • Aspose.Font for .NET API, que é uma API de conversão e manipulação de documentos rica em recursos, poderosa e fácil de usar para a plataforma C#.

  • Abra o gerenciador de pacotes NuGet e procure por Aspose.Font e instale. Você também pode usar o seguinte comando do Console do Gerenciador de Pacotes.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Etapas para obter métricas de fonte usando C#:

  1. Especifique a fonte da qual extrair informações.
  2. Use uma interface Aspose.Font.IFontMetrics para obter as métricas especificadas.
  3. Obtenha a tabela de codificação cmap Unicode da fonte como objeto TtfCMapFormatBaseTable para acessar informações sobre o glifo de fonte necessário.
  4. Para obter o índice de glifo para o símbolo ‘A’, use o método GetGlyphIndex() .
  5. Obtenha as métricas de glifo impressas.

Código C# para obter informações sobre glifos da fonte

    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)));
            }
        }
    }



Perguntas frequentes

1. Qual é a métrica da fonte?

É a propriedade que determina a forma como a fonte será renderizada na tela. Algumas das métricas, como subida, descida, largura e kerning, são semelhantes às métricas Glyph .

2. Como obtenho métricas de fonte?

Especifique a fonte com a qual deseja trabalhar. Usando as propriedades da interface de classe Aspose.Font.IFontMetrics, extraia as informações sobre as métricas de fonte necessárias.

3. O que são metadados de fontes?

Os metadados da fonte são basicamente informações sobre ela. Inclui muitos dados, como nome da fonte, nome da família da fonte, nome do postscript, licenciamento, informações do autor e do designer e muito mais.

4. Como altero os metadados da fonte?

Para ver ou alterar as informações da fonte on-line, use nosso aplicativo Font Metadata .