Lesen Sie die Informationen zu Glyphen und Metriken

.NET-API-Lösung zum Berechnen der Zeichenfolgenbreite, Berechnen von Glyphenkoordinaten und anderer Manipulationen mit Glyphen.

 

Die Aspose.Font API-Lösung verfügt über umfangreiche Funktionen zum Arbeiten mit Schriftarten. Konvertierung, Manipulationen mit Glyphen, Erkennung lateinischer Symbole und vieles mehr. Einige der Funktionen sind mit Manipulationen mit Glyphen verknüpft.

Glyphe ist ein individuell gestaltetes Zeichen einer Schriftart oder eine grafische Darstellung eines Symbols/Zeichens. Um mehr über diese Einheit einer Schriftart zu erfahren, lesen Sie den Artikel Introduction to Glyph .

Auf dieser Seite wird die Option zum Lesen von Glyphen- und Metrikinformationen beschrieben, aber die gesamte Funktionalität wird ausführlich im Using Glyph objects Artikel. Dort finden Sie viele weitere C#-Codebeispiele und lernen die Funktionalität von Aspose.Font für die Arbeit mit Glyphen und insbesondere den Glyph-Objekten kennen. Weitere Codebeispiele zur Verwendung von Aspose.Font zum Bearbeiten von Glyphen sind in Aspose.Font.Examples.sln Lösung.

Um mit Glyphen zu arbeiten, benötigen wir:

  • Aspose.Font für die .NET-API, eine funktionsreiche, leistungsstarke und benutzerfreundliche API zur Dokumentenbearbeitung und -konvertierung für die C#-Plattform.

  • Öffnen Sie den NuGet-Paket-Manager, suchen Sie nach Aspose.Font und installieren Sie es. Sie können auch den folgenden Befehl in der Paket-Manager-Konsole verwenden.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Schritte zum Berechnen der Zeichenfolgenbreite mit C#:

  1. Deklarieren Sie den Text und andere Konstanten. Hier wird als Beispielphrase «Hallo Welt» verwendet.
  2. Deklarieren Sie eine Variable für die Zeichenfolgenbreite.
  3. Rufen Sie mit der Klasse GlyphId eine Glyphe für jeden Buchstaben im Text ab. Berechnen Sie die Breite für den gesamten Text.
  4. Dasselbe Ergebnis kann mit der Methode MeasureString() erzielt werden.
  5. Drucken Sie die Ausgabeergebnisse.

C#-Code zum Ermitteln der Zeichenfolgenbreite

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

Schritte zum Berechnen aller Glyphenpunkte mit Koordinaten mit C#:

  1. Deklarieren Sie die resultierende Liste mit Punkten .
  2. Geben Sie die Init-Dienstreferenz auf der Schnittstelle IPathSegment an.
  3. Iterieren Sie alle Glyphenpfadsegmente und summieren Sie die Punkte.

C#-Code zum Ermitteln von Glyphenpunkten

    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. Was ist eine Glyphenmetrik?

Glyph-Metriken sind die Parameter, die beeinflussen, wie die Glyphe positioniert wird, wenn das Textlayout erstellt wird.

2. Was sind Glyphenmetriken?

Die am häufigsten verwendeten Glyphenmetriken sind Vorlaufbreite, Ursprung, Seitenlage, Grundlinie, Aufstieg, Oberlänge, Abstieg, Unterlänge, Begrenzungsrahmen, Höhe, Breite und Kerning.

3. Wie verwaltet man Glyphen mit dieser API-Lösung?

Verwenden Sie zum Codieren von Glyphen in C# die Entitäten des Aspose.Font.Glyphs -Namespace.

4. Was ist eine Glyphe?

Glyph ist ein individuell gestaltetes Zeichen einer Schrift. Es kann auch als grafische Darstellung eines Symbols/Zeichens definiert werden.