PCLT — PCL 5 Table

The PCLT table was introduced for compatibility with Hewlett-Packard PCL 5 printer language. Use of the PCLT table in OpenType fonts is strongly discouraged. More information on fields in this table can be found in PCL 5 Printer Language Technical Reference Manual, available from Hewlett-Packard Boise Printer Division.

The format for the table is:

Type Name
uint16 majorVersion
uint16 minorVersion
uint32 fontNumber
uint16 pitch
uint16 xHeight
uint16 style
uint16 typeFamily
uint16 capHeight
uint16 symbolSet
int8 typeface[16]
int8 characterComplement[8]
int8 fileName[6]
int8 strokeWeight
int8 widthType
uint8 serifStyle
uint8 (reserved—set to 0)

majorVersion and minorVersion

The current PCLT table version is 1.0.

fontNumber

This 32-bit number is segmented in two parts. The most significant bit indicates native versus converted format. Only font vendors should create fonts with this bit zeroed. The 7 next most significant bits are assigned by Hewlett-Packard Boise Printer Division to major font vendors. The least significant 24 bits are assigned by the vendor. Font vendors should attempt to ensure that each of their fonts is marked with unique values.

Code Vendor
A Adobe Systems
B Bitstream Inc.
C Agfa Corporation
H Bigelow & Holmes
L Linotype Company
M Monotype Typography Ltd.

pitch

The width of the space in font design units, as defined by the unitsPerEm field of the 'head' table. Monospace fonts derive the width of all characters from this field.

xHeight

The height of the optical line describing the height of the lowercase x in font design units. This might not be the same as the measured height of the lowercase x.

style

The most significant 6 bits are reserved. The 5 next most significant bits encode structure. The next 3 most significant bits encode appearance width. The 2 least significant bits encode posture.

Structure (bits 5 – 9)

0 Solid (normal, black)
1 Outline (hollow)
2 Inline (incised, engraved)
3 Contour, edged (antique, distressed)
4 Solid with shadow
5 Outline with shadow
6 Inline with shadow
7 Contour, or edged, with shadow
8 Pattern filled
9 Pattern filled #1 (when more than one pattern)
10 Pattern filled #2 (when more than two patterns)
11 Pattern filled #3 (when more than three patterns)
12 Pattern filled with shadow
13 Pattern filled with shadow #1 (when more than one pattern or shadow)
14 Pattern filled with shadow #2 (when more than two patterns or shadows)
15 Pattern filled with shadow #3 (when more than three patterns or shadows)
16 Inverse
17 Inverse with border
18 – 31 (reserved)

Width (bits 2 – 4)

0 normal
1 condensed
2 compressed, extra condensed
3 extra compressed
4 ultra compressed
5 (reserved)
6 expanded, extended
7 extra expanded, extra extended

Posture (bits 0 – 1)

0 upright
1 oblique, italic
2 alternate italic (backslanted, cursive, swash)
3 (reserved)

typeFamily

The 4 most significant bits are font vendor codes. The 12 least significant bits are typeface family codes. Both are assigned by HP Boise Division.

Vendor Codes (bits 12 – 15)

0 (reserved)
1 Agfa Corporation
2 Bitstream Inc.
3 Linotype Company
4 Monotype Typography Ltd.
5 Adobe Systems
6 font repackagers
7 vendors of unique typefaces
8 – 15 (reserved)

capHeight

The height of the optical line describing the top of the uppercase H in font design units. This might not be the same as the measured height of the uppercase H.

symbolSet

The most significant 11 bits are the value of the symbol set “number” field. The value of the least significant 5 bits, when added to 64, is the ASCII value of the symbol set “ID” field. Symbol set values are assigned by HP Boise Division. Unbound fonts, or “typefaces” should have a symbol set value of 0. See the PCL 5 Printer Language Technical Reference Manual or the PCL 5 Comparison Guide for the most recent published list of codes.

Examples

PCL decimal
Windows 3.1 “ANSI” 19U 629
Windows 3.0 “ANSI” 9U 309
Adobe “Symbol” 19M 621
Macintosh 12J 394
PostScript ISO Latin 1 11J 362
PostScript Std. Encoding 10J 330
Code Page 1004 9J 298
DeskTop 7J 234

typeface

This 16-byte ASCII string appears in the “font print” of PCL printers. Care should be taken to ensure that the base string for all typefaces of a family are consistent, and that the designators for bold, italic, etc. are standardized.

Example

Times New
Times New Bd
Times New It
Times New BdIt
Courier New
Courier New Bd
Courier New It
Courier New BdIt

characterComplement

This 8-byte field identifies the symbol collections provided by the font, each bit identifies a symbol collection and is independently interpreted. Symbol set bound fonts should have all bits in this field set (except bit 0).

Examples

DOS/PCL Complement 0xFFFFFFFF003FFFFE
Windows 3.1 “ANSI” 0xFFFFFFFF37FFFFFE
Macintosh 0xFFFFFFFF36FFFFFE
ISO 8859-1 Latin 1 0xFFFFFFFF3BFFFFFE
ISO 8859-1,2,9 Latin 1,2,5 0xFFFFFFFF0BFFFFFE

The character collections identified by each bit are as follows:

31 ASCII (supports several standard interpretations)
30 Latin 1 extensions
29 Latin 2 extensions
28 Latin 5 extensions
27 Desktop Publishing Extensions
26 Accent Extensions (East and West Europe)
25 PCL Extensions
24 Macintosh Extensions
23 PostScript Extensions
22 Code Page Extensions

The character complement field also indicates the index mechanism used with an unbound font. Bit 0 must always be cleared when the font elements are provided in Unicode order.

fileName

This 6-byte field is composed of 3 parts. The first 3 bytes are an industry standard typeface family string. The fourth byte is a treatment character, such as R, B, I. The last two characters are either zeroes for an unbound font or a two-character mnemonic for a symbol set if symbol set found.

Examples

TNRR00 Times New (text weight, upright)
TNRI00 Times New Italic
TNRB00 Times New Bold
TNRJ00 Times New Bold Italic
COUR00 Courier
COUI00 Courier Italic
COUB00 Courier Bold
COUJ00 Courier Bold Italic

Treatment flags

R Text, normal, book, etc.
I Italic, oblique, slanted, etc.
B Bold
J Bold Italic, Bold Oblique
D Demibold
E Demibold Italic, Demibold Oblique
K Black
G Black Italic, Black Oblique
L Light
P Light Italic, Light Oblique
C Condensed
A Condensed Italic, Condensed Oblique
F Bold Condensed
H Bold Condensed Italic, Bold Condensed Oblique
S Semibold (lighter than demibold)
T Semibold Italic, Semibold Oblique

Other treatment flags are assigned over time.

strokeWeight

This int8 field contains the PCL stroke weight value. Only values in the range -7 to 7 are valid:

-7 Ultra Thin
-6 Extra Thin
-5 Thin
-4 Extra Light
-3 Light
-2 Demilight
-1 Semilight
0 Book, text, regular, etc.
1 Semibold (Medium, when darker than Book)
2 Demibold
3 Bold
4 Extra Bold
5 Black
6 Extra Black
7 Ultra Black, or Ultra

Type designers often use interesting names for weights or combinations of weights and styles, such as Heavy, Compact, Inserat, Bold No. 2, etc. PCL stroke weights are assigned on the basis of the entire family and use of the faces. Typically, display faces don’t have a “text” weight assignment.

widthType

This int8 field contains the PCL appearance width value. The values are not directly related to those in the appearance with field of the style word above. Only values in the range -5 to 5 are valid.

-5 Ultra Compressed
-4 Extra Compressed
-3 Compressed, or Extra Condensed
-2 Condensed
0 Normal
2 Expanded
3 Extra Expanded

serifStyle

This uint8 field contains the PCL serif style value. The most significant 2 bits of this byte specify the serif/sans or contrast/monoline characteristics of the typeface.

Bottom 6 bit values:

0 Sans Serif Square
1 Sans Serif Round
2 Serif Line
3 Serif Triangle
4 Serif Swath
5 Serif Block
6 Serif Bracket
7 Rounded Bracket
8 Flair Serif, Modified Sans
9 Script Nonconnecting
10 Script Joining
11 Script Calligraphic
12 Script Broken Letter

Top 2 bit values:

0 (reserved)
1 Sans Serif/Monoline
2 Serif/Contrasting
3 (reserved)