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#:
- Dichiara il testo e altre costanti. Qui come esempio viene utilizzata la frase «Hello world».
- Dichiara una variabile per la larghezza della stringa.
- Ottieni un glifo per ogni lettera nel testo usando la classe GlyphId . Calcola la larghezza per l’intero testo.
- Lo stesso risultato può essere ottenuto utilizzando il metodo MeasureString() .
- 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#:
- Dichiara l’elenco risultante con punti .
- Specificare il riferimento del servizio Init sull’interfaccia IPathSegment .
- 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.