读取字体信息

.NET API 解决方案,用于获取字体信息和指标。

 

Aspose.Font API 解决方案具有丰富的字体处理功能。转换、字形操作、拉丁符号检测等等。某些功能与使用字形的操作相关联,例如获取有关字体中存在的字形的信息。

字形是字体的单独设计的字符或符号/字符的图形表示。要了解有关此字体单元的更多信息,请阅读 Glyph 简介 文章。

此页面描述了如何获取不同字体指标的选项(字形计数、字母高度、字形“A”的宽度等),但整个功能在 使用字形对象 文章。此示例还包括获取字体元数据的部分代码,具体来说是字体名称。此类功能可以在 Web 软件中实现,例如 Aspose 在其生态系统中的 Font Metadata 应用程序。

要接收字体指标,我们需要:

  • Aspose.Font for .NET API 是一个功能丰富、功能强大且易于使用的 C# 平台文档操作和转换 API。

  • 打开 NuGet 包管理器,搜索 Aspose.Font 并安装。您也可以从包管理器控制台使用以下命令。

Package Manager Console Command


    PM> Install-Package Aspose.Font

使用 C# 获取字体度量的步骤:

  1. 指定要从中提取信息的字体。
  2. 使用接口 Aspose.Font.IFontMetrics 来获取指定的指标。
  3. 从作为对象的字体中获取 cmap Unicode 编码表 TtfCMapFormatBaseTable 以访问有关所需字体字形的信息。
  4. 要获取“A”符号的字形索引,请使用 GetGlyphIndex() 方法。
  5. 获取打印的字形指标。

获取有关字体字形信息的 C# 代码

    using Aspose.Font;
    using Aspose.Font.Glyphs;
    using Aspose.Font.Ttf;
    //Font to extract info from
    TtfFont font;
    string name = font.FontName;
    Console.WriteLine("Font name: " + name);
    Console.WriteLine("Glyph count: " + font.NumGlyphs);
    string metrics = string.Format(
        "Font metrics: ascender - {0}, descender - {1}, typo ascender = {2}, typo descender = {3}, UnitsPerEm = {4}",
        font.Metrics.Ascender, font.Metrics.Descender,
        font.Metrics.TypoAscender, font.Metrics.TypoDescender, font.Metrics.UnitsPerEM);

    Console.WriteLine(metrics);

    //Get the cmap unicode encoding table from the font as an object TtfCMapFormatBaseTable to access information about the font glyph for symbol 'A'.
    //Also check that font has the object TtfGlyfTable (table 'glyf') to access glyph.
    Aspose.Font.TtfCMapFormats.TtfCMapFormatBaseTable cmapTable = null;
    if (font.TtfTables.CMapTable != null)
    {
        cmapTable = font.TtfTables.CMapTable.FindUnicodeTable();
    }
    if (cmapTable != null && font.TtfTables.GlyfTable != null)
    {
        Console.WriteLine("Font cmap unicode table: PlatformID = " + cmapTable.PlatformId + ", PlatformSpecificID = " + cmapTable.PlatformSpecificId);

        //Code for 'A' symbol
        char unicode = (char)65;

        //Glyph index for 'A'
        uint glIndex = cmapTable.GetGlyphIndex(unicode);

        if (glIndex != 0)
        {
            //Glyph for 'A'
            Glyph glyph = font.GetGlyphById(glIndex);
            if (glyph != null)
            {
                //Print glyph metrics
                Console.WriteLine("Glyph metrics for 'A' symbol:");
                string bbox = string.Format(
                    "Glyph BBox: Xmin = {0}, Xmax = {1}" + ", Ymin = {2}, Ymax = {3}",
                    glyph.GlyphBBox.XMin, glyph.GlyphBBox.XMax,
                    glyph.GlyphBBox.YMin, glyph.GlyphBBox.YMax);
                Console.WriteLine(bbox);
                Console.WriteLine("Width:" + font.Metrics.GetGlyphWidth(new GlyphUInt32Id(glIndex)));
            }
        }
    }



常问问题

1. 什么是字体规格?

该属性决定字体在屏幕上的呈现方式。一些指标(例如上升、下降、宽度和字距调整)与 Glyph 指标 类似。

2. 如何获取字体规格?

指定您要使用的字体。使用 Aspose.Font.IFontMetrics 类接口的属性,提取有关所需字体规格的信息。

3. 什么是字体元数据?

字体元数据基本上是有关它的信息。它包括许多数据,如字体名称、字体系列名称、Postscript 名称、许可、作者和设计者信息等等。

4. 如何更改字体元数据?

要在线查看或更改字体信息,请使用我们的 字体元数据 应用程序。