HP PCL/PJL reference - PCL 5 Comparison Guide

ENWW Printer-Specific Differences 2-41
A TrueType mort table typically contains a header of 76 bytes,
followed by the vertical substitution array which follows the segment
format described here. However, the mort table header is designed to
be variable-length, and the location of the vertical substitution data
may be located elsewhere in mort tables in future fonts.
If the Font Type is not Type 3 (16-bit fonts), this data segment is
ignored.
If the value pairs are not sorted by horizontal glyph ID, the data
segment is invalid. If the End of Table mark #1 is not 0xFFFF, the data
segment is invalid. The location of the end of the table is determined
using the Data Segment Size field. If the segment is invalid, the font
download is ignored.
Typeface String Segment
The purpose of this segment is to provide a substitute string to print
for a permanent downloaded font when doing a PCL Typeface List
printout. It has the following structure:
Embedded Font Name Flag (UB)—A zero value in this field is used to
indicate that the ASCII name of the font (from the Font Name field)
should be printed in addition to the substitute string. A non-zero value
is used to indicate that only the substitute string should be printed.
Substitute String Length (UB)—the number of UI characters in
the Substitute String Character List.
Byte 15 (MSB) 8 7 (LSB) 0 Byte
0 TF (21574) 1
2
4
Data Segment Size (2*n+2) * 3
5
6 Embedded Font
Name Flag
Substitute String
Length (n)
7
8 Substitute String Character List 9
. . . . . .
* This segment is for Font Format 16. The Data Segment Size field for Font Format 16
fonts is 4 bytes; the segment for Font Format 15 fonts is identical except the Data
Segment Size field is 2 bytes instead.