Glifler ve Metrikler bilgilerini okuyun

.NET API Çözümü, dize genişliğini hesaplamak, glif koordinatlarını hesaplamak ve gliflerle diğer işlemler.

 

Aspose.Font API Solution, fontlarla çalışmak için zengin bir işlevselliğe sahiptir. Dönüştürme, gliflerle manipülasyonlar, Latin sembollerinin tespiti ve çok daha fazlası. Bazı özellikler, gliflerle yapılan işlemlerle bağlantılıdır.

Glif, bir yazı tipinin ayrı ayrı tasarlanmış bir karakteridir veya bir sembolün/karakterin grafiksel bir temsilidir. Bu yazı tipi birimi hakkında daha fazla bilgi edinmek için Glif’e Giriş makalesini okuyun.

Bu sayfada, Glifler ve Metrik bilgilerinin nasıl okunacağı ile ilgili seçenek açıklanmaktadır, ancak tüm işlevsellik, Glif nesnelerini kullanma makale. Orada çok daha fazla C# kodu örneği bulacaksınız ve Aspose.Font’un glifler ve özellikle Glyph nesneleri ile çalışma işlevselliğini öğreneceksiniz. Glifleri işlemek için Aspose.Font kullanımına ilişkin daha fazla kod örneği Aspose.Font.Examples.sln çözümü.

Gliflerle çalışmak için ihtiyacımız olan:

  • C# platformu için zengin özelliklere sahip, güçlü ve kullanımı kolay bir belge işleme ve dönüştürme API'si olan Aspose.Font for .NET API.

  • NuGet paket yöneticisini açın ve Aspose.Font'u arayın ve kurun. Paket Yöneticisi Konsolundan aşağıdaki komutu da kullanabilirsiniz.

Package Manager Console Command


    PM> Install-Package Aspose.Font

C# kullanarak dize genişliğini hesaplama adımları:

  1. Metni ve diğer sabitleri bildirin. Burada örnek olarak ‘Hello World’ ifadesi kullanılmıştır.
  2. Dize genişliği için bir değişken bildirin.
  3. GlyphId Sınıfını kullanarak metindeki her harf için bir glif alın. Tüm metnin genişliğini hesaplayın.
  4. Aynı sonuç MeasureString() Yöntemi kullanılarak da elde edilebilir.
  5. Çıktı sonuçlarını yazdırın.

Dize genişliğini bulmak için C# kodu

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

C# kullanarak tüm glif noktalarını koordinatlarla hesaplama adımları:

  1. Sonuç listesini points ile bildirin.
  2. IPathSegment arabiriminde Init hizmet referansını belirtin.
  3. Tüm glif yolu parçalarını yineleyin ve noktaları toplayın.

Glif noktalarını bulmak için C# Kodu

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



SSS

1. Glif metriği nedir?

Glif ölçümleri , metin düzeni oluşturulduğunda glifin nasıl konumlandırılacağını etkileyen parametrelerdir.

2. Glif ölçüleri nelerdir?

En çok kullanılan glif metrikleri ilerleme genişliği, orijin, yan yönler, taban çizgisi, yükseliş, yükseliş, iniş, iniş, sınırlayıcı kutu, yükseklik, genişlik ve karakter aralığıdır.

3. Bu API Çözümü ile Glifler nasıl yönetilir?

C# dilinde glifleri kodlamak için Aspose.Font.Glyphs ad alanının varlıklarını kullanın.

4. glif nedir?

Glif, bir yazı tipinin ayrı ayrı tasarlanmış bir karakteridir. Aynı zamanda bir sembolün/karakterin grafik gösterimi olarak da tanımlanabilir.