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 回答
2

只需打开(双击)其中一个字体文件,您将看到如下内容:-

在此处输入图像描述

于 2020-01-07T13:13:28.723 回答