Leggi le informazioni su glifi e metriche

.NET API Soluzione per calcolare la larghezza delle stringhe, calcolare le coordinate dei glifi e altre manipolazioni con i glifi.

 

Aspose.Font API Solution ha una ricca funzionalità per lavorare con i caratteri. Conversione, manipolazioni con glifi, rilevamento di simboli latini e molti altri. Alcune delle funzionalità sono legate a manipolazioni con glifi.

Il glifo è un carattere disegnato individualmente di un carattere tipografico, oppure è una rappresentazione grafica di un simbolo/carattere. Per saperne di più su questa unità di un font, leggi l’articolo Introduction to Glyph .

Questa pagina descrive l’opzione su come leggere le informazioni su Glyphs e Metrics, ma l’intera funzionalità è accuratamente descritta in Using Glyph objects articolo. Lì troverai molti altri esempi di codice C# e imparerai la funzionalità di Aspose.Font per lavorare con i glifi e gli oggetti Glyph in particolare. Altri esempi di codice sull’utilizzo di Aspose.Font per manipolare i glifi sono archiviati in Aspose.Font.Examples.sln .

Per lavorare con i glifi abbiamo bisogno di:

  • Aspose.Font per .NET API che è un'API di conversione e manipolazione dei documenti ricca di funzionalità, potente e facile da usare per la piattaforma C#.

  • Apri il gestore di pacchetti NuGet e cerca Aspose.Font e installa. È inoltre possibile utilizzare il seguente comando dalla Console di gestione pacchetti.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Passaggi per calcolare la larghezza della stringa usando C#:

  1. Dichiara il testo e altre costanti. Qui come esempio viene utilizzata la frase «Hello world».
  2. Dichiara una variabile per la larghezza della stringa.
  3. Ottieni un glifo per ogni lettera nel testo usando la classe GlyphId . Calcola la larghezza per l’intero testo.
  4. Lo stesso risultato può essere ottenuto utilizzando il metodo MeasureString() .
  5. Stampa i risultati di output.

Codice C# per scoprire la larghezza della stringa

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

Passaggi per calcolare tutti i punti glifo con le coordinate usando C#:

  1. Dichiara l’elenco risultante con punti .
  2. Specificare il riferimento del servizio Init sull’interfaccia IPathSegment .
  3. Iterare tutti i segmenti del percorso del glifo e sommare i punti.

Codice C# per scoprire i punti glifo

    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. Cos’è una metrica glifo?

Glyph metrics sono i parametri che influenzano il posizionamento del glifo quando viene creato il layout del testo.

2. Cosa sono le metriche dei glifi?

Le metriche dei glifi più utilizzate sono la larghezza avanzata, l’origine, i cuscinetti laterali, la linea di base, l’ascesa, l’ascendente, la discesa, il discendente, il riquadro di delimitazione, l’altezza, la larghezza e la crenatura.

3. Come gestire i glifi con questa soluzione API?

Per codificare i glifi in C#, usa le entità dello spazio dei nomi Aspose.Font.Glyphs .

4. Cos’è un glifo?

Glyph è un carattere progettato individualmente di un carattere tipografico. Può anche essere definito come una rappresentazione grafica di un simbolo/carattere.