フォント・メトリック C#

フォント情報とメトリックを取得する .NET API ソリューション。

 

Aspose.Font API ソリューションには、フォントを操作する豊富な機能があります。変換、グリフ操作、ラテン記号の検出、その他多数。一部の機能は、フォントに存在するグリフに関する情報を取得するなど、グリフの操作にリンクされています。

グリフは、書体の個別にデザインされた文字、またはシンボル/文字のグラフィック表現です。このフォント ユニットの詳細については、 Glyph の紹介 の記事を参照してください。

このページでは、さまざまなフォント メトリック (グリフ カウント、文字の高さ、グリフ ‘A’ の幅など) を取得する方法について説明していますが、機能全体については Glyph オブジェクトの使用 記事。この例には、フォント メタデータを取得するためのコードの一部も含まれています。具体的には、フォント名です。このような機能は、Aspose のエコシステムにある Font Metadata アプリのような Web ソフトウェアに実装できます。

フォント メトリックを受け取るには、次のものが必要です。

  • 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. オブジェクト TtfCMapFormatBaseTable としてフォントから cmap Unicode エンコーディング テーブルを取得し、必要なフォント グリフに関する情報にアクセスします。
  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. フォントメトリックとは何ですか?

フォントが画面に表示される方法を決定するプロパティです。アセント、ディセント、幅、カーニングなどのメトリックの一部は、 グリフ メトリック に似ています。

2. フォント メトリックを取得するにはどうすればよいですか?

使用するフォントを指定します。 Aspose.Font.IFontMetrics クラス インターフェイスのプロパティを使用して、必要なフォント メトリックに関する情報を抽出します。

3. フォント メタデータとは

Font Metadata は基本的にそれに関する情報です。フォント名、フォント ファミリー名、Postscript 名、ライセンス、著者およびデザイナーの情報など、多くのデータが含まれています。

4. フォントのメタデータを変更するにはどうすればよいですか?

フォント情報をオンラインで表示または変更するには、 フォント メタデータ アプリケーションを使用します。