Lire les informations sur les glyphes et les métriques

Solution API .NET pour calculer la largeur de la chaîne, calculer les coordonnées des glyphes et autres manipulations avec les glyphes.

 

Aspose.Font API Solution dispose d'une riche fonctionnalité pour travailler avec les polices. Conversion, manipulations avec des glyphes, détection de symboles latins, et bien d'autres. Certaines fonctionnalités sont liées à des manipulations avec des glyphes.

Le glyphe est un caractère conçu individuellement d’une police de caractères, ou c’est une représentation graphique d’un symbole/caractère. Pour en savoir plus sur cette unité de police, lisez l’article Introduction to Glyph .

Cette page décrit l’option de lecture des informations sur les glyphes et les métriques, mais l’ensemble de la fonctionnalité est soigneusement décrite dans le Utilisation des objets Glyph article. Vous y trouverez beaucoup plus d’exemples de code C# et apprendrez les fonctionnalités d’Aspose.Font pour travailler avec les glyphes et les objets Glyph en particulier. D’autres exemples de code d’utilisation de Aspose.Font pour manipuler les glyphes sont stockés dans Aspose.Font.Examples.sln .

Pour travailler avec des glyphes, nous avons besoin de :

  • Aspose.Font pour l'API .NET qui est une API de manipulation et de conversion de documents riche en fonctionnalités, puissante et facile à utiliser pour la plate-forme C#.

  • Ouvrez le gestionnaire de packages NuGet, recherchez Aspose.Font et installez-le. Vous pouvez également utiliser la commande suivante à partir de la console du gestionnaire de packages.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Étapes pour calculer la largeur de la chaîne à l'aide de C# :

  1. Déclarez le texte et les autres constantes. Ici, à titre d’exemple, la phrase «Hello world» est utilisée.
  2. Déclarez une variable pour la largeur de la chaîne.
  3. Obtenez un glyphe pour chaque lettre du texte à l’aide de la classe GlyphId . Calculez la largeur pour tout le texte.
  4. Le même résultat peut être obtenu en utilisant la méthode MeasureString() .
  5. Imprimez les résultats de sortie.

Code C# pour connaître la largeur de la chaîne

    using System;
    using System.IO;
    using System.Drawing;
    using System.Collections.Generic;
    using Aspose.Font.Sources;
    using Aspose.Font.Glyphs;
    using Aspose.Font.RenderingPath;
    //Declare the text and other constants
    const string text = "Hello world";
    const int fontSize = 10;

    //Declare a variable for string width
    double width = 0;

    //Get a glyph for each letter in text and calculate width for whole text.
    //The same result can be achieved using the method font.Metrics.MeasureString(text, fontSize).
    foreach (char symbol in text)
    {
        GlyphId gid = this._font.Encoding.DecodeToGid(symbol);
        Glyph glyph = this._font.GetGlyphById(gid);
        width += (glyph.WidthVectorX / this._font.Metrics.UnitsPerEM) * fontSize;
    }            

    //Print output results
    Console.WriteLine(string.Format("Width for text \"{0}\" with font size {2} is equal {3}." , 
        text, FontName, fontSize, width));

Étapes pour calculer tous les points de glyphe avec des coordonnées à l'aide de C# :

  1. Déclarez la liste résultante avec points .
  2. Spécifiez la référence du service Init sur l’interface IPathSegment .
  3. Itérez tous les segments de chemin de glyphe et additionnez les points.

Code C# pour trouver les points de glyphe

    Glyph glyph;

    //Declare the resultant list with points
    List<Point> points = new List<Point>();

    //Init service reference on IPathSegment
    IPathSegment prevSegment = null;

    //Iterate all the glyph path segments and collect points
    foreach (IPathSegment segment in glyph.Path.Segments)
    {
        if ((segment is LineTo)
            || (segment is CurveTo))
        {
            if (prevSegment is MoveTo)
            {
                MoveTo moveTo = prevSegment as MoveTo;
                AddPoint((int)moveTo.X, (int)moveTo.Y, points);
            }
            if (segment is LineTo)
            {
                LineTo line = segment as LineTo;
                AddPoint((int)line.X, (int)line.Y, points);
            }
            else if (segment is CurveTo)
            {
                CurveTo curve = segment as CurveTo;
                AddPoint((int)curve.X1, (int)curve.Y1, points);
                AddPoint((int)curve.X2, (int)curve.Y2, points);
                AddPoint((int)curve.X3, (int)curve.Y3, points);
            }
        }
        prevSegment = segment;
    }	

    void AddPoint(int x, int y, List<Point> points)
    {
        Point p = new Point();
        p.X = x;
        p.Y = y;
        points.Add(p);
    }



FAQ

1. Qu’est-ce qu’une métrique de glyphe ?

Les métriques de glyphe sont les paramètres qui influencent la façon dont le glyphe est positionné lors de la création de la mise en page du texte.

2. Que sont les métriques de glyphe ?

Les métriques de glyphe les plus utilisées sont la largeur avancée, l’origine, les roulements latéraux, la ligne de base, l’ascension, l’ascendant, la descente, le descendant, la boîte englobante, la hauteur, la largeur et le crénage.

3. Comment gérer Glyphs avec cette solution API ?

Pour coder des glyphes en C#, utilisez les entités de l’espace de noms Aspose.Font.Glyphs .

4. Qu’est-ce qu’un glyphe ?

Le glyphe est un caractère conçu individuellement d’une police de caractères. Il peut également être défini comme une représentation graphique d’un symbole/caractère.