HP LaserJet Bitmap Character Definition
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 109
of the character (in portrait orientation): the first dot row of data corresponds to the first dot row
of the character. The end of each row is padded with zero bits so it contains an integral num-
ber of bytes.
The number of bytes of the character data should be exactly the Character Width (in bytes)
times the Character Height. Additional data is discarded. The character will consist only of the
downloaded character data, even if this is insufficient.
Class 2: Compressed Bitmap Character Data - (see the figure below) Class 2 character
data is composed of a string of bytes using a compressed run-length-with-line-repetition for-
mat. The first byte tells how many times the first row is repeated after the initial row. The sec-
ond byte tells how many white dots start the row (if the first dot is black, the second byte is 0).
The third byte tells how many black dots follow, the fourth byte tells how many white dots fol-
low that, etc., until the end of the row.
The character width (dots) field in the character descriptor determines the row width: the dot
count for each row in the character cell must equal the character width. For example, in the fol-
lowing figure, the cell width is 20; thus each row (excluding the repetition count byte) adds up
to 20.
The fully described row is duplicated the number of times indicated by its first byte. After the
duplication, the next byte indicates the repetition count for the next row.
More than 255 dots of the same type in a row is indicated by a byte containing 255, followed
by a byte containing 0 (meaning there are none of the opposite type of dots), followed by a
byte containing the count of the remaining dots of the current type.