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:

Byte

15 (MSB)

8

7

(LSB) 0

Byte

0

TF (21574)

 

 

 

1

2

Data Segment Size (2*n+2) *

 

3

4

 

 

 

 

5

6

Embedded FontSubstitute String

7

 

Name Flag

 

Length (n)

 

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.

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.

Substitute String Character List (array of UI)—the characters which make up the substitute string. Each character is represented as a UI value. If the font is a bound font, then the values are accessed by their character codes values; if the font is unbound, then the Unicode index numbers (see Appendix D) are used.

2-42 Printer-Specific Differences