post - PostScript

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

Formats 1.0, 2.0, and 2.5 refer to TrueType fonts and OpenType fonts with TrueType data. OpenType fonts with TrueType data may also use Format 3.0. OpenType fonts with CFF data use Format 3.0 only.

The table begins as follows:
TypeName Description
FixedFormat Type 0x00010000 for format 1.0, 0x00020000 for format 2.0, and so on...
FixeditalicAngle Italic angle in counter-clockwise degrees from the vertical. Zero for upright text, negative for text that leans to the right (forward)
FWordunderlinePosition Suggested values for the underline position (negative values indicate below baseline).
FWordunderlineThickness Suggested values for the underline thickness.
ULONGisFixedPitch Set to 0 if the font is proportionally spaced, non-zero if the font is not proportionally spaced (i.e. monospaced).
ULONGminMemType42 Minimum memory usage when an OpenType font is downloaded.
ULONGmaxMemType42 Maximum memory usage when an OpenType font is downloaded.
ULONGminMemType1 Minimum memory usage when an OpenType font is downloaded as a Type 1 font.
ULONGmaxMemType1 Maximum memory usage when an OpenType 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 OpenType 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 font scaler. Runtime memory usage could be calculated by rendering characters at different point sizes and comparing memory use.

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.0

This TrueType-based font file contains exactly the 258 glyphs in the standard Macintosh TrueType font file (see The WGL4.0 Character Set chapter for a list of the Macintosh glyphs). As a result, the glyph names are taken from the system with no storage required by the font.


Format 2.0

This is the format required by TrueType-based fonts to be used on Windows.
Type Description
USHORTNumber of glyphs (this is the same as numGlyphs in 'maxp' table).
USHORTglyphNameIndex[numGlyphs].
CHARGlyph names with length bytes [variable] (a Pascal string).
  

This TrueType-based 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

This format provides a space saving table for TrueType-based fonts which contain a pure subset of, or a simple reordering of, the standard Macintosh glyph set.
Type Description
CHARoffset[numGlyphs]
  

This format is useful for TrueType-based 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 font 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.0

This format is used by OpenType fonts with TrueType or CFF data. The 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 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 .