如何通过解析TTF字体文件获取字形宽度?

时间:2013-08-20 08:33:26

标签: fonts binary true-type-fonts glyph

为了捕获TrueType字体的字形宽度,我将相应的TTF文件转换为fontforgeAFM,这是文本格式(非二进制)。然后,解析文本文件以捕获字形宽度。

应该有更简单的方法来直接解析二进制TTF文件以捕获字形宽度。

我很欣赏shell脚本或C的策略,但是任何编程语言都可以,因为这个想法是关键,代码可以调整。

1 个答案:

答案 0 :(得分:4)

假设您的意思是提前宽度,您感兴趣的是hmtx table。解析起来相当简单,因为你可以看到结构是:

typedef struct  _longHorMetric {
    USHORT  advanceWidth;
    SHORT       lsb;
}  longHorMetric;

当然,为了解析hmtx,您还需要知道how to locate font tables,并且还需要hhea表中的numberOfHMetrics值和字体{{{来自maxp表的3}}所有这些的结构都在链接中给出,并且应该很容易用任何语言进行解析。