1

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

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

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

4

1 回答 1

4

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

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

当然,为了解析 hmtx,您还需要大致了解如何定位字体表,并且您还需要 hhea 表中的numberOfHMetrics值和 maxp 表中字体的numGlyphs值。所有这些的结构都在链接中给出,并且应该很容易用任何语言解析。

于 2013-08-20T14:37:29.203 回答