为了捕获字体的字形宽度TrueType
,我将相应的TTF
文件转换fontforge
为AFM
,它是文本格式(不是二进制)。然后,解析文本文件以捕获字形宽度。
应该有更简单的方法来直接解析二进制TTF
文件以捕获字形宽度。
我很欣赏 shell 脚本或 C 的策略,但是任何编程语言都可以,因为想法是关键,并且可以调整代码。
假设您的意思是提前宽度,您感兴趣的是hmtx 表。解析起来相当简单,你可以看到结构是:
typedef struct _longHorMetric {
USHORT advanceWidth;
SHORT lsb;
} longHorMetric;
当然,为了解析 hmtx,您还需要大致了解如何定位字体表,并且您还需要 hhea 表中的numberOfHMetrics值和 maxp 表中字体的numGlyphs值。所有这些的结构都在链接中给出,并且应该很容易用任何语言解析。