Đọc thông tin Glyphs và Metrics

.NET API Giải pháp để tính toán độ rộng chuỗi, tính toán tọa độ glyph và các thao tác khác với glyph.

 

Giải pháp API Aspose.Font có một chức năng phong phú để làm việc với các phông chữ. Chuyển đổi, thao tác với glyphs, phát hiện các ký hiệu Latinh và nhiều hơn nữa. Một số tính năng được liên kết với các thao tác với glyph.

Glyph là một ký tự được thiết kế riêng của một kiểu chữ, hoặc nó là một biểu diễn đồ họa của một ký hiệu / ký tự. Để tìm hiểu thêm về đơn vị phông chữ này, hãy đọc bài viết Giới thiệu về Glyph .

Trang này mô tả tùy chọn về cách đọc thông tin Glyphs và Metrics nhưng toàn bộ chức năng được mô tả cẩn thận trong Sử dụng các đối tượng Glyph . Ở đó, bạn sẽ tìm thấy nhiều ví dụ mã C# và tìm hiểu chức năng của Aspose.Font để làm việc với glyph và các đối tượng Glyph nói riêng. Các ví dụ mã khác về cách sử dụng Aspose.Font để thao tác Glyph được lưu trữ trong Aspose.Font.Examples.sln giải pháp.

Để làm việc với glyph, chúng ta cần:

  • Aspose.Font for .NET API là một API chuyển đổi và thao tác tài liệu giàu tính năng, mạnh mẽ và dễ sử dụng cho nền tảng C#.

  • Mở trình quản lý gói NuGet, tìm kiếm Aspose.Font và cài đặt. Bạn cũng có thể sử dụng lệnh sau từ Bảng điều khiển Trình quản lý Gói.

Package Manager Console Command


    PM> Install-Package Aspose.Font

Các bước để Tính độ rộng chuỗi bằng C#:

  1. Khai báo văn bản và các hằng số khác. Ở đây làm cụm từ ví dụ «Hello world» được sử dụng.
  2. Khai báo một biến cho độ rộng chuỗi.
  3. Nhận glyph cho mỗi chữ cái trong văn bản bằng cách sử dụng Lớp GlyphId . Tính chiều rộng cho toàn bộ văn bản.
  4. Kết quả tương tự có thể đạt được bằng cách sử dụng Phương pháp MeasureString() .
  5. In kết quả đầu ra.

Mã C# để tìm ra độ rộng chuỗi

    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ác bước để tính toán tất cả các điểm glyph với tọa độ bằng C#:

  1. Khai báo danh sách kết quả với điểm .
  2. Chỉ định tham chiếu dịch vụ Init trên giao diện IPathSegment .
  3. Lặp lại tất cả các đoạn đường dẫn glyph và tổng hợp các điểm.

Mã C# để tìm ra các điểm glyph

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



Câu hỏi thường gặp

1. Chỉ số glyph là gì?

Chỉ số hình tượng là các tham số ảnh hưởng đến cách định vị hình tượng khi tạo bố cục văn bản.

2. Chỉ số glyph là gì?

Các số liệu glyph được sử dụng nhiều nhất là chiều rộng trước, gốc, trục bên, đường cơ sở, đi lên, đi lên, đi xuống, đi xuống, hộp giới hạn, chiều cao, chiều rộng và kerning.

3. Làm cách nào để quản lý Glyph bằng Giải pháp API này?

Để mã hóa các hình tượng trong C#, hãy sử dụng các thực thể của không gian tên Aspose.Font.Glyphs .

4. một glyph là gì?

Glyph là một ký tự được thiết kế riêng của một kiểu chữ. Nó cũng có thể được định nghĩa là một biểu diễn đồ họa của một biểu tượng/ký tự.