'post' - PostScript

This table contains additional information needed to use TrueType fonts on PostScript printers. This includes data for the FontInfo dictionary entry and the PostScript names of all the glyphs.

The table begins as follows:

Type

Name

Description

Fixed

Format Type

0x00010000 for format 1.0, 0x00020000 for format 2.0, and so on...

Fixed

italicAngle

Italic angle in counter-clockwise degrees from the vertical. Zero for upright text, negative for text that leans to the right (forward)

FWord

underlinePosition

Suggested values for the underline position (negative values indicate below baseline).

FWord

underlineThickness

Suggested values for the underline thickness.

ULONG

isFixedPitch

Set to 0 if the font is proportionally spaced, non-zero if the font is not proportionally spaced (i.e. monospaced).

ULONG

minMemType42

Minimum memory usage when a TrueType font is downloaded.

ULONG

maxMemType42

Maximum memory usage when a TrueType font is downloaded.

ULONG

minMemType1

Minimum memory usage when a TrueType font is downloaded as a Type 1 font.

ULONG

maxMemType1

Maximum memory usage when a TrueType font is downloaded as a Type 1 font.


The last four entries in the table are present because PostScript drivers can do better memory management if the virtual memory (VM) requirements of a downloadable TrueType font are known before the font is downloaded. This information should be supplied if known. If it is not known, set the value to zero. The driver will still work but will be less efficient.

Maximum memory usage is minimum memory usage plus maximum runtime memory use. Maximum runtime memory use depends on the maximum band size of any bitmap potentially rasterized by the TrueType font scaler. Runtime memory usage could be calculated by rendering characters at different point sizes and comparing memory use.

How to calculate VM usageHow to calculate VM usage

The memory usage of a downloaded TrueType font will vary with whether it is defined as a TrueType or Type 1 font on the printer. Minimum memory usage can be calculated by calling VMStatus, downloading the font, and calling VMStatus a second time.

If the format is 1.0 or 3.0, the table ends here. The additional entries for formats 2.0 and 2.5 are shown below. Apple has defined a format 4.0 for use with QuickDraw GX, which is described in their documentation.

Format 1.0Format 1.0

This TrueType font file contains exactly the 258 glyphs in the standard Macintosh TrueType font file in the order specified in Appendix C, "Standard Macintosh Character Set to UGL." As a result, the glyph names are taken from the system with no storage required by the font.

Format 2.0Format 2.0

This is the format required by Microsoft fonts.

Type

Description

USHORT

Number of glyphs (this is the same as numGlyphs in 'maxp' table).

USHORT

glyphNameIndex[numGlyphs].

CHAR

Glyph names with length bytes [variable] (a Pascal string).


This TrueType font file contains glyphs not in the standard Macintosh set or the ordering of the glyphs in the TrueType font file is non-standard (again, for the Macintosh). The glyph name array maps the glyphs in this font to name index. If the name index is between 0 and 257, treat the name index as a glyph index in the Macintosh standard order. If the name index is between 258 and 32767, then subtract 258 and use that to index into the list of Pascal strings at the end of the table. Thus a given font may map some of its glyphs to the standard glyph names, and some to its own names.

Index numbers 32768 through 65535 are reserved for future use. If you do not want to associate a PostScript name with a particular glyph, use index number 0 which points the name .notdef.

Format 2.5 Format 2.5

This format provides a space saving table for fonts which contain a pure subset of, or a simple reordering of, the standard Macintosh glyph set.

Type

Description

CHAR

offset[numGlyphs]


This format is useful for font files that contain only glyphs in the standard Macintosh glyph set but which have those glyphs arranged in a non-standard order or which are missing some glyphs. The table contains one byte for each glyph in the font file. The byte is treated as a signed offset that maps the glyph index used in this font into the standard glyph index. In other words, assuming that the 'sfnt' contains the three glyphs A, B, and C which are the 37th, 38th, and 39th glyphs in the standard ordering, the 'post' table would contain the bytes +36, +36, +36.

Format 3.0Format 3.0

This format makes it possible to create a special font that is not burdened with a large 'post' table set of glyph names.

This format specifies that no PostScript name information is provided for the glyphs in this font file. The printing behavior of this format on PostScript printers is unspecified, except that it should not result in a fatal or unrecoverable error. Some drivers may print nothing, other drivers may attempt to print using a default naming scheme.

Windows v3.1 makes use of the italic angle value in the 'post' table but does not actually require any glyph names to be stored as Pascal strings .