ttf文件结构解析.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ttf文件结构解析

ttf文件结构解析 TrueType字体通常包含在单个TrueType字体文件中,其文件后缀为.TTF。OpenType字体是以类似? ?于TrueType字体的格式编码的POSTSCRIPT字体。OPENTYPE字体使用.OTF文件后缀。OPENTYPE还允许把多个OPENTYPE字体组合在一个文件中以利于数据共享。这些字体被称为TrueType字体集(TrueType? ?collection),其文件后缀为.TTC。 ? ?? ?TrueType字体用machintosh的轮廓字体资源的格式编码,有一个唯一的标记名"sfnt"。windows没有macintosh的位图字体资源格式,字体目录? ?包含了字体格式的版本号和几个表,每个表都有一个tableentry结构项,tableentry结构包含了资源标记、校验和、偏移量和每个表的大小。下面是TrueType字体目录的c语言定义: typedef? ?sturct { char? ?tag[4]; ULONG? ?checkSum; ULONG? ?offset; ULONG? ?length; }TableEntry; typedef? ?struct { Fixed? ?sfntversion;? ?//0x10000? ?for? ?version? ?1.0 USHORT? ?numTables; USHORT? ?searchRange; USHORT? ?entrySelector; USHORT? ?rangeShift; TableEntry? ?entries[1];//variable? ?number? ?of? ?TableEntry }TableDirectory; ? ?? ???TrueType? ?字体中的所有数据都使用big-endian编码,最高位字节在最前面(因为TrueType字体最初是由apple公司定义的,而apple公司的os运行在motorola的cpu上)。如果一人TrueType字体以00? ?01? ?00? ?00? ?,00? ?17开头,我们就可以知道它的格式是轮廓字体资源("sfnt")版本1.0的格式,有23个表。 ? ?? ???TableDirectory结构的最后一个字段是可变长度的tableentry结构的数组,安体中的每个表对应其中一项。TrueType字体中的每个表都保存了不同的逻辑信息-----如图元中数据、字符到图元的映射、字距调整信息等等。有表是必须的,有些是可选的。下表列出了TrueType字体中常见的表。 ?? head? ?? ?? ???字体头? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 字体的全局信息 cmap? ?? ?? ???字符代码到图元的映射? ?? ?? ?? ?? ?把字符代码映射为图元索引 glyf? ?? ?? ???图元数据? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?图元轮廓定义以及网格调整指令 maxp? ?? ?? ???最大需求表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???字体中所需内存分配情况的汇总数据 mmtx? ?? ?? ???水平规格? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?图元水平规格 loca? ?? ?? ???位置表索引? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???把元索引转换为图元的位置 name? ?? ?? ???命名表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 版权说明、字体名、字体族名、风格名等等 hmtx? ?? ?? ???水平布局? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?字体水平布局星系:上高、下高、行间距、最大前进宽度、最小左支撑、最小右支撑 kerm? ?? ?? ???字距调整表? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???字距调整对的数组 post? ?? ?? ???PostScript信息? ?? ?? ?? ?? ?? ?? ?? ?? ?所有图元的PostScript? ?FontInfo目录项和PostScript名 PCLT? ?? ?? ???PCL? ?5数据? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? HP? ?PCL? ?5Printer? ?Language? ?的字体信息:字体数、宽度、x高度、风格、记号集等等 OS/2? ?? ?? ???OS/2和Windows特有的规格? ?? ?? ?Tr

文档评论(0)

jiulama + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档