【问题标题】:Get font name of .ttf file获取 .ttf 文件的字体名称
【发布时间】:2012-08-06 18:53:49
【问题描述】:

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

【问题讨论】:

标签: c# .net fonts


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • (不安装字体)
    • 这不会安装字体。尽管 MSDN 使用术语“安装”,但他们只是轻描淡写地使用它。 “This is a temporary font install that does not affect the system-installed collection.” 这里安装基本就是“加载”的意思。
    • 这会获取字体系列名称(例如“Open Sans”),但不是带有样式的全名。例如,open sans 的每个 .ttf 文件的名称都是“Open Sans”,而不是“Open Sans Italic”或“Open Sans Bold”。
    猜你喜欢
    • 2023-03-27
    • 2014-06-04
    • 2013-05-23
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2014-04-25
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多