13

假设有一个 .ttf(True Type 字体)文件。您可以通过单击将其安装在 Windows 上。字体的真实名称不是 .tff 之前的文本(可以说 SuperFont.ttf => 所以名称不是“SuperFont” - 它可能是,但大多数情况下不是)。我想阅读 .tff (不知何故?)并获取字体的名称(不安装字体)。有任何想法吗?

4

2 回答 2

26

您需要将字体添加到私有集合 ( PrivateFontCollection),然后请求FontFamily实例并获取其Name属性。

像这样:

PrivateFontCollection fontCol = new PrivateFontCollection();
fontCol.AddFontFile(@"PATH TO FONT");
Console.WriteLine(fontCol.Families[0].Name);

您将需要命名空间:

using System.Drawing;
using System.Drawing.Text;

MSDN: PrivateFontCollection , FontFamily

于 2012-08-09T14:14:36.580 回答
3

这是另一个在不使用 System.Drawing dll 的情况下提取字体名称的代码

foreach (FontFamily fontFamily in Fonts.GetFontFamilies("file:///D:/MyFonts/"))
{
    string name = fontFamily .ToString().Split('#')[fontFamily .ToString().Split('#').Count() - 1];
}
于 2014-01-15T10:12:50.573 回答