Olvassa el a Glyphs and Metrics információkat

.NET API megoldás a karakterlánc-szélesség kiszámításához, a karakterjel-koordináták kiszámításához és a karakterjelekkel végzett egyéb manipulációkhoz.

 

Az Aspose.Font API megoldás gazdag funkcionalitással rendelkezik a betűtípusok kezeléséhez. Konvertálás, manipulációk karakterjelekkel, latin szimbólumok észlelése és még sok más. Egyes funkciók a karakterjelekkel végzett manipulációkhoz kapcsolódnak.

A jelkép egy betűtípus egy egyedileg tervezett karaktere, vagy egy szimbólum/karakter grafikus ábrázolása. Ha többet szeretne megtudni erről a betűtípus-egységről, olvassa el a Introduction to Glyph cikket.

Ez az oldal a Glyphs and Metrics információk olvasásának lehetőségét írja le, de a teljes funkcionalitást alaposan leírja a Glyph objektumok használata cikk. Itt sokkal több C# kód példát találhat, és megtanulhatja az Aspose.Font funkcióit a karakterjelekkel és különösen a Glyph objektumokkal való munkához. Az Aspose.Font karakterjelek manipulálására szolgáló további kódpéldák az Aspose.Font.Examples.sln megoldás.

A karakterjelekkel való munkához szükségünk van:

  • Aspose.Font for .NET API, amely funkciókban gazdag, hatékony és könnyen használható dokumentumkezelési és -konverziós API C# platformhoz.

  • Nyissa meg a NuGet csomagkezelőt, keresse meg az Aspose.Font elemet, és telepítse. A következő parancsot is használhatja a Package Manager konzolból.

Package Manager Console Command


    PM> Install-Package Aspose.Font

A karakterláncszélesség kiszámításának lépései C# használatával:

  1. Deklarálja a szöveget és a többi állandót. Itt példaként a „Hello world” kifejezést használjuk.
  2. Változó deklarálása a karakterlánc szélességéhez.
  3. A GlyphId osztály segítségével a szöveg minden betűjéhez írjon be egy karakterjelet. Számítsa ki a teljes szöveg szélességét.
  4. Ugyanez az eredmény érhető el a MeasureString() módszerrel.
  5. Nyomtassa ki a kimeneti eredményeket.

C# kód a karakterlánc szélességének megállapításához

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

Az összes glifpont kiszámításának lépései koordinátákkal C# használatával:

  1. Deklarálja az eredménylistát a paraméterrel points .
  2. Adja meg az Init szolgáltatás hivatkozását az IPathSegment felületen.
  3. Ismételje meg az összes karakterjel-útvonal szegmenst, és összegezze a pontokat.

C# kód a glifpontok megtalálásához

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



GYIK

1. Mi az a glif metrika?

A karakterjellemzők azok a paraméterek, amelyek befolyásolják a jelkép elhelyezését a szövegelrendezés létrehozásakor.

2. Mik azok a glif-metrikák?

A leggyakrabban használt karakterjel-metrikák a szélesség, az origó, az oldalsó csapágyak, az alapvonal, az emelkedés, az emelkedés, az ereszkedés, a süllyedés, a határolókeret, a magasság, a szélesség és a bevágás.

3. Hogyan kezelheti a karakterjeleket ezzel az API-megoldással?

Karjelek kódolásához C#-ban használja az Aspose.Font.Glyphs névtér entitásait.

4. Mi az a glifa?

A jelkép egy betűtípus egyedileg tervezett karaktere. Meghatározható egy szimbólum/karakter grafikus ábrázolásaként is.