4

ファイル名が予測できないフォント ファイルのセットがあるため、ファイル名から実際の「フォント ファミリー」名を推測できません。したがって、このフォント ファイルをレンダリングするには、フォント メタデータを読み取って実際の「フォント ファミリ」名を抽出する必要があります。私は C#.NET 4.0 WinForms を使用しています。

関数を見てきましたGetFontInformationが、同じ P/Invoke ヘッダーが見つからないようです。私が持っているのは、正直に把握するのが難しいC++バージョンだけです。何か案は?

クラスを使用してフォント ファイルを解析できない理由PrivateFontCollectionは、これらがOTFフォントであり、.NET/GDI+ がTTFフォントしかサポートしていないからです。

4

2 に答える 2

5

( ) にフォントを追加してから、PrivateFontCollectionをリクエストしてFontFamilyそのNameプロパティを取得する必要があります。

private static string GetFontNameFromFile(string filename)
{
    PrivateFontCollection fontCollection = new PrivateFontCollection();
    fontCollection.AddFontFile("path_to_font");
    return fontCollection.Families[0].Name;
}

必要な名前空間:

using System.Drawing;
using System.Drawing.Text;
于 2013-03-07T18:51:44.907 に答える