如何根据字体文件获取字体系列的名称?

时间:2013-03-07 18:47:48

标签: c# .net file fonts metadata

我有一组带有不可预知文件名的字体文件,因此我无法从文件名中推断出真正的“字体系列”名称。因此,我需要读取字体元数据以提取真正的“字体系列”名称,以便呈现此字体文件。我在C#.NET 4.0 WinForms。

我见过函数GetFontInformation,但我似乎无法找到相同的P / Invoke标头。我所拥有的只是C++ version,这很难弄明白。有什么想法吗?

我无法使用PrivateFontCollection类为我解析字体文件的原因是,这些是 OTF 字体,而.NET / GDI +仅支持 TTF fonts!

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

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

enter image description here