The OS/2 font-file format consists of two sections. The first section contains the general attributes of the font, and describes features such as its typeface, style, and nominal size. The second section contains the actual definitions of the characters belonging to the font.
The font resource is a set of self-defining records of the form:
typedef struct _RECORD { ULONG ulIdentity; /* structure identity code */ ULONG ulSize; /* structure size in bytes */ . /* data */ . . } RECORD;
A font starts with a special font-signature structure and ends with an ending structure. The font signature has the form:
typedef struct _FONTSIGNATURE { ULONG ulIdentity; ULONG ulSize; CHAR achSignature [12] } FONTSIGNATURE;
Where:
ulIdentity
A 2.x format font includes additional font description information in the PANOSE structure. This structure will be added to the end of the .FNT file (prior to the ENDFONT record).
The font end structure has the form:
typedef struct _ENDFONT{ ULONG ulIdentity; ULONG ulSize; }ENDFONT
Where:
ulIdentity
All records should be in the order of their identity fields.
There are three or four records in a font resource between the font signature and the font end:
Following compilation, the records in the resource are in the order defined above.