【问题标题】:Getting the Glyph Name from a TTF or OTF font file从 TTF 或 OTF 字体文件中获取字形名称
【发布时间】:2014-06-04 19:10:35
【问题描述】:

您好,有人知道如何从 C# 的 TTF 或 OFT 字体文件中获取字形名称,如果需要,我愿意直接解析文件以获取它们吗?我在这里Access opentype glyph names from WPF 找到了这篇文章,但没有得到答复。

附:我自己创建了字体,并正在创建一个程序来创建 CSS(LESS 或 SASS)文件,以使用我在 Bootstrap 或 FontAwesome 等网页中轻松制作的字形 :)

【问题讨论】:

    标签: c# .net fonts truetype


    【解决方案1】:

    在基于 TrueType 的字体(.TTF 文件)中,您可以尝试解析 the 'post' table。这很容易弄清楚。 但是,只有格式 2.0 明确存储字形名称。如果 post 表是格式 3.0,则没有存储字形名称(定义了几种其他格式,但使用它们的字体非常非常罕见)。在这种情况下,您唯一的选择是使用 'cmap' 中的 Unicode 值进行回溯...有一些 standard references for Unicode-to-glyph names 可能有用。

    对于基于 CFF 的字体(.OTF 文件),字形名称存储在 the 'CFF ' table 中。解析起来有点棘手,但如果您只是在寻找字形名称引用,则应该不难弄清楚。

    【讨论】:

    • 在这种情况下,我创建了字体并拥有 TTF 和 OTF 版本,查看十六进制转储我可以看到字形名称。我真的只是想自动化一个乏味的过程(如果你有数千个字形,那就太乏味了)所以我故意保存了字形名称,希望我能够访问它们以自动创建样式表,使它们对全部。所以我会看看我是否可以管理它,我真的希望有一个我可以使用的 .Net 库。 :(
    • 您提到您“愿意直接解析文件”,这就是我发布相关数据结构链接的原因。特别是对于'post'表,真的不难弄清楚。 CFF 表只是获取名称字符串有点棘手。您需要知道的唯一额外的事情是如何读取文件的表目录以定位文件中的表。这也很简单,请参阅“OpenType 字体的组织”下的microsoft.com/typography/otspec/otff.htm
    • 该问题询问的是未存储在name 表中的字形名称。但是既然你提出了这个问题,我会澄清我的答案,以明确我在谈论 字形名称,而不是一般的字体名称字符串(它存储在name 表)。
    • 抱歉恢复这个旧线程,但是我应该如何通过 C# 访问 post 表?对于这种特殊情况,我什至无法从谷歌获得任何有用的结果。
    • 克里斯托夫·梅特,见github.com/LayoutFarm/Typography
    猜你喜欢
    • 2013-05-23
    • 2012-08-06
    • 2023-03-27
    • 2021-06-08
    • 2019-04-07
    • 2011-07-15
    • 1970-01-01
    • 2015-08-17
    • 2016-04-08
    相关资源
    最近更新 更多