认识OpenType字体与TrueType Open字体
基本上OpenType是源自于微软的TrueType Open字体,而 TrueType Open 字体是源自于 TrueType 字体,所以这些字体可以说是系出同门,基本的 container 格式是相同的。
TrueType Open font 和 TrueType font 最大的不同是:增加了 GSUB(Glyph Substition), GPOS(Glyph Position), BASE(baseline), JSFF(Justification), GDEF(Glyph Definition) 等五个 table 来控制字的置放、取用机制。
OpenType font 和 TrueType Open font 最大的不同是:引进 CFF table 来存放 ps outline 资料,这相当于 TTF 的 glyf table,这些都是主要的字体实体数据。
所以,在 OpenType font 会有两种不同字体实体数据的字体出现:
TrueType format with TrueType outline(*.ttf, *.ttc)
TrueType format with PS outline(CFF)(*.otf) 或称为 CFF OpenType font。
因此,并不是说 *.ttf 就不是OpenType font。主要还是要看里头的 table。会以 *.otf 做扩展名的,通常就是 CFF OpenType,不同的地方是字体实体资料是 CFF(Compact Font Format) table,而不是原来 TTF 的 glyf table。
OpenType font 包括了 Adobe CID-Keyed font 的技术,像目前 AR6/7 所附上的 OpenType font,其实是 CID-Keyed font 但穿上了 TrueType 的衣服(因为 CFF 本来就可以含 CID-Keyed font)。
只要判断出字体含有 DSIG(Digital Signature) table,大致上就可以判定他是 OpenType font。然后再来判断是含有 CFF table 或是 glyf table 就可以判断是 CFF outlines 或是 TrueType outlines。