2024年5月4日发(作者:)

.

ttf文件结构解析

TrueType字体通常包含在单个TrueType字体文件中,其文件后缀为.TTF。OpenTy

pe字体是以类似 于TrueType字体的格式编码的POSTSCRIPT字体。OPENTYPE字体

使用.OTF文件后缀。OPENTYPE还允许把多个OPENTYPE字体组合在一个文件中以利于

数据共享。这些字体被称为TrueType字体集(TrueType collection),其文件后缀为.T

TC。

TrueType字体用machintosh的轮廓字体资源的格式编码,有一个唯一的标记名"s

fnt"。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的c

pu上)。如果一人TrueType字体以00 01 00 00 ,00 17开头,我们就可以知道

它的格式是轮廓字体资源("sfnt")版本1.0的格式,有23个表。

TableDirectory结构的最后一个字段是可变长度的tableentry结构的数组,安体

.