获取.ttf文件的字体名称

13

假设有一个 .ttf (True Type Font) 文件。你可以通过点击在 Windows 上安装它。这个字体的真实名称不是文件名中 .tff 前面的文本(比方说 SuperFont.ttf => 所以名称不是 "SuperFont" - 可能是,但大多数情况下不是)。我想读取 .tff 文件(如何?)并获取字体名称(而不必安装字体)。有什么建议吗?

2个回答

27

您需要将字体添加到私有集合 (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


1
(无需安装字体)将以下与编程相关的内容从英语翻译成中文。仅返回翻译后的文本。 - H H
4
这并不会安装字体。虽然MSDN使用了“安装”这个词,但它的含义比较轻。"这是一种临时的字体安装,不会影响系统已安装的字体库。" 这里的安装基本上意味着“载入”。 - Matt Razza
1
这将获取字体系列名称(例如“Open Sans”),但不包括样式的完整名称。例如,针对Open Sans的每个.ttf文件都将具有名称“Open Sans”,而不是“Open Sans Italic”或“Open Sans Bold”。 - Triynko

3

这里是另外一段代码,可以提取字体名称而不使用System.Drawing dll

foreach (FontFamily fontFamily in Fonts.GetFontFamilies("file:///D:/MyFonts/"))
{
    string name = fontFamily .ToString().Split('#')[fontFamily .ToString().Split('#').Count() - 1];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接