Hp Deskjet 600 Users Manual PCL Developer's Guide, Rev6.0

2015-02-09

: Hp Hp-Deskjet-600-Users-Manual-548792 hp-deskjet-600-users-manual-548792 hp pdf

Open the PDF directly: View PDF PDF.
Page Count: 124

DownloadHp Hp-Deskjet-600-Users-Manual- PCL Developer's Guide, Rev6.0  Hp-deskjet-600-users-manual
Open PDF In BrowserView PDF
HP DeskJet 600, 700, 800,
900 & HP 2000 Series
PCL Developer’s Guide
Hewlett-Packard Vancouver Site

To aid in HP PCL printer driver development
for HP DeskJet 600/700/800/900 & HP 2000
Series printers

Preface and Printing History

1.0

Preface and Printing History
The information contained in this document is subject to change without notice.
Hewlett-Packard makes no warranty of any kind with regard to this material, including,
but not limited to, the implied warranties of merchantability and fitness for a particular
purpose.
Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this material.
This document may not be photocopied, reproduced, modified, or translated without prior consent of Hewlett-Packard Company.

Printing History
Edition 1 September 1995
Edition 2 March 1996
Edition 3 May 1996
Edition 4 May 1997
Edition 5 October 1997
Edition 6 December 1999, Edition 6.1 September 2001

© Copyright 1995, 1996, 1997, 1998, 1999, 2001 by Hewlett-Packard Company
18110 S.E. 34th Street, Vancouver, WA 98683, USA

2

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

About this Developer’s Guide

2.0

About this Developer’s Guide

2.1

Which printers are covered by this guide1
Throughout this HP PCL Developer’s Guide you will see printer names referenced. Here is a
list of actual names and the “Series” names used throughout this guide.

2.1.1

HP DeskJet 600 Series: 630C*, 640C*, and 656C*
HP DeskJet 600 HP DeskJet 610C
HP DeskJet 660C
HP DeskJet 670C
HP DeskJet 680C
HP DeskJet 690C

HP DeskJet 600, HP DeskJet 600C
- HP DeskJet 610C, HP DeskJet 610CL, HP DeskJet 612C
- HP DeskJet 660C, HP DeskJet 660Cse
- HP DeskJet 670C, HP DeskJet 670TV, HP DeskJet 672C
- HP DeskJet 680C, HP DeskJet 682C
- HP DeskJet 690C, HP DeskJet 692C, HP DeskJet 693C,
HP DeskJet 694C
HP DeskJet 695C - HP DeskJet 695C, HP DeskJet 695Cci, HP DeskJet 697C

2.1.2

HP DeskJet 800 Series: 840C*
HP DeskJet 810C - HP DeskJet 810C, HP DeskJet 812C, HP DeskJet 815C
HP DeskJet 830C - HP DeskJet 830C
HP DeskJet 850C - HP DeskJet 850C, HP DeskJet 855C, HP DeskJet 855Cse,
HP DeskJet 855Cxi
HP DeskJet 870C - HP DeskJet 870Cse, HP DeskJet 870Cxi
HP DeskJet 880C - HP DeskJet 880C, HP DeskJet 882C
HP DeskJet 890C - HP DeskJet 890C, HP DeskJet 890Cse, HP DeskJet 890Cxi,
HP DeskJet 890CM
HP DeskJet 895C - HP DeskJet 895Cse, HP DeskJet 895Cxi

2.1.3

HP DeskJet 900 Series: 920C*, 940C*, 960C*, 980C*, and 990C*
HP DeskJet 930C, 950C, and 970C - HP DeskJet 930Cxi, 950Cxi, and 970Cxi

2.1.4

HP 2000C Series
HP 2000C - HP 2000C, HP 2000CN, HP 2000Cse, HP 2000Cxi

1. HP DeskJet 710C, 712, HP DeskJet 720C, 722C, and HP DeskJet 820Cse, 820Cxi
printers are “Windows” printers. See Section 2.2.1 “Special Note” regarding these
printers. * Product will appear in December 2001 revision

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

3

About this Developer’s Guide

2.2

Special Notes
4 HP DeskJets were designed in series - the printer’s internal firmware will usually report the
series name, rather than the specific product name. All printers in a series will behave as
the base model. For example, the HP DeskJet 810C Series printers were sold under the
name of the HP DeskJet 810C, HP DeskJet 812C, and the HP DeskJet 815C. All three
printer models have the same internal firmware, reporting the printer as a HP DeskJet
810C.
Note that the HP DeskJet 895Cse and HP DeskJet 895Cxi are both part of the HP DeskJet 895C Series family and are NOT derived from the HP DeskJet 890C Series.

4 If a command is not covered in this guide, it is either obsolete or Hewlett-Packard proprietary information. No further information on these unsupported or proprietary commands
is available.

4 In the HP PCL escape sequences within this manual, the letter “ell” (l) is represented by a
script character (l ) to differentiate between the “ell” and the character 1 (one). Where
spaces have been added to commands for readability, those spaces must not be included
in your code.

4 Specifications on the ink cartridges (including the HP Photo Cartridge) are not available this is Hewlett-Packard proprietary information and will not be provided.
2.2.1

Special Note - HP DeskJet 710C, 720C and 820C Series printers

4 The HP DeskJet 710C, 720C, and 820C Series printers are “Windows” printers. These
printers will not function from a DOS-only environment. However, they will work when
accessed from a DOS box within Windows 3.1x, 95, 98.
For clarity, these printers are not included in the printer tables in this guide. If you wish to
send PCL commands to these printers, use the HP DeskJet 660C Series printers as your
guide in the tables.

4

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Table of Contents

3.0

Table of Contents
1.0 Preface and Printing History

2

2.0 About this Developer’s Guide

3

2.1 Which printers are covered by this guide
2.1.1
2.1.2
2.1.3
2.1.4

HP DeskJet 600 Series
HP DeskJet 800 Series
HP DeskJet 900 Series
HP 2000C Series 3

2.2 Special Notes

3

3
3
3

4

2.2.1 Special Note - HP DeskJet 710C, 720C and 820C Series
printers 4

3.0 Table of Contents

5

4.0 How This Developer’s Guide Works
4.0.1
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.0.10
4.0.11

10

Page Length 10
The Command Description Page 10
Command Name 10
Escape Sequence 11
Command Summary 11
Command Usage Table 11
Command Options 11
Command Option Recognition Grid 11
Effect of Command Options 11
Detailed Command Description 12
Important Point 12

5.0 Introduction to HP PCL

13

5.1 History of HP PCL Printer Language
5.1.1 What are Printer Commands?
5.1.2 Control Codes 13
5.1.3 HP PCL Commands 13

5.2 Syntax of Escape Sequences

13

13

14

5.2.1 Two-Character Escape Sequences 14
5.2.2 Parameterized Escape Sequences 14

6.0 The Page 17
6.1 Logical Page, Physical Page 17
6.2 Page Layout 18
6.2.1 Current Active Position (CAP)
6.2.2 CAP Reference Point 19

7.0 The Print Environment

20

8.0 Merged Text and Graphics
9.0 Programming Hints

18

21

22

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

5

Table of Contents

9.0.1
9.0.2
9.0.3
9.0.4
9.0.5

Follow Specifications 22
Leverage from Previous Programs 22
Priority of Feature Set Commands 22
Priority of Commands 23
Time Savers 23

10.0 HP PCL Commands

25

10.1Control Codes and Special Character Codes
10.1.1 Escape

25

25

10.2 Testing Commands
10.3 Print Modes 25

25

10.3.1 Transparent Data Mode 25
10.3.2 Display Functions Mode ON 26
10.3.3 Display Functions Mode OFF 26

10.4 Text Enhancements
10.4.1
10.4.2
10.4.3
10.4.4

27

Enable Underline 27
Disable Underline 28
Line Termination 28
End-of-Line Wrap 29

10.5 Job Control 30
10.5.1 Reset

30

10.6 Printer Control
10.6.1
10.6.2
10.6.3
10.6.4
10.6.5

31

Gray Balance 31
Dry Timer 32
Print Quality 33
Media Type 34
Unit of Measure 34

10.7 Printer Diagnostics
10.7.1 Self-Test

36

36

10.8 Page Control 37
10.8.1
10.8.2
10.8.3
10.8.4
10.8.5
10.8.6
10.8.7
10.8.8
10.8.9
10.8.10
10.8.11
10.8.12
10.8.13

Page Length 37
Page Size 38
Media Source 40
Orientation 41
Horizontal Motion Index 42
Vertical Motion Index 43
Line Spacing 44
Clear Horizontal Margins 44
Left Margin 45
Right Margin 45
Top Margin 46
Text Length 47
Perforation Skip Mode 47

10.9 Horizontal Positioning Commands
10.9.1
10.9.2
10.9.3
10.9.4

6

Backspace 49
Carriage Return
Space 49
Linefeed 49

49

49

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Table of Contents

10.9.5 Formfeed 50
10.9.6 Horizontal Tab 50
10.9.7 Move CAP Horizontal (Decipoints) 51
10.9.8 Move CAP Horizontal (Columns) 52
10.9.9 Move CAP Horizontal (HP PCL Units) 52

10.10 Vertical Positioning Commands 54
10.10.1 Move CAP Vertical (Rows) 54
10.10.2 Move CAP Vertical (Decipoints) 55
10.10.3 Move CAP Vertical (HP PCL Units) 56

10.11 Font Selection
10.11.1
10.11.2
10.11.3
10.11.4
10.11.5
10.11.6
10.11.7
10.11.8

57

Font Selection by Attribute
Font Symbol Set 57
Font Spacing 60
Font Pitch 60
Font Height 61
Font Style 62
Font Stroke Weight 64
Font Selection by ID 65

10.12Downloading Fonts

57

66

10.12.1Font ID 66
10.12.2 Download Font 67
10.12.3 Character Code 68
10.12.4 Download Character 68
10.12.5 Font Control 69

10.13Raster Graphics
10.13.1
10.13.2
10.13.3
10.13.4
10.13.5
10.13.6
10.13.7
10.13.8

70

Raster Mode 70
Commands Locked Out of Raster Mode 70
Commands Allowed in Raster Mode 70
Start Raster 71
End Raster 71
Raster Resolution 72
Source Raster Width 73
Y Offset 74

10.14Raster Data Transfer

75

10.14.1 Transfer Raster by Plane 75
10.14.2 Transfer Raster by Row/Block

10.15 Raster Compression

10.15.1 Compression Method

10.16Color

77

84

10.16.1 Simple Color 84
10.16.2 Foreground Color

11.0 Fonts

76

77

87

90

11.1 Standard Bitmap Font Definition 90
11.2 Resolution-Specified Bitmap Font Definition

91

11.2.1 Font Descriptor Size (UINT) 92
11.2.2 Descriptor Format (UBYTE) 92
11.2.3 Symbol Set Type (UBYTE) 92

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

7

Table of Contents

11.2.4
11.2.5
11.2.6
11.2.7
11.2.8
11.2.9
11.2.10
11.2.11
11.2.12
11.2.13
11.2.14
11.2.15
11.2.16
11.2.17
11.2.18
11.2.19
11.2.20
11.2.21
11.2.22
11.2.23
11.2.24
11.2.25
11.2.26
11.2.27
11.2.28
11.2.29
11.2.30
11.2.31
11.2.32
11.2.33
11.2.34
11.2.35
11.2.36
11.2.37
11.2.38

Font Type (UBYTE) 93
Style MSB (UINT) 93
Baseline Position (UINT) 94
Cell Width (UINT) 94
Cell Height (UINT) 94
Orientation (UBYTE) 94
Spacing (BOOL) 95
Symbol Set (UINT) 95
Character Set (UINT16) 95
Pitch (UINT) 95
Height (UINT) 96
xHeight (UINT) 96
Width Type (SBYTE) 96
Style LSB (UBYTE) 96
Stroke Weight (SBYTE) 96
Typeface [LSB/MSB] (UBYTE) 97
Serif Style (UBYTE) 98
Quality 98
Placement 99
Underline Position (SBYTE) 99
Underline Thickness (UBYTE) 99
Text Height (UINT) 99
Text Width (UINT) 99
First Code (UINT) 100
Last Code/Number of Chars (UINT)
Pitch Extended (UBYTE) 100
Height Extended (UBYTE) 100
Cap Height (UINT) 101
Font Number (UINT) 101
Font Name (ASC16) 101
X Resolution (UINT) 101
Y Resolution (UINT) 101
Copyright 102
Font Scaling Technology 102
Segment Size 102

11.3 Bitmap Resolution Segment
11.3.1 X Resolution (UINT16)
11.3.2 Y Resolution (UINT16)

103

103
103

11.4 Character Enhancement Segment
11.4.1 Style (UINT32) 104
11.4.2 Stroke Weight (UINT32)
11.4.3 Sizing (UINT16) 105

100

104

104

11.5 Dual-Pitch-Space Char Segment

106

11.5.1 Full-Width-Space Character Code 106
11.5.2 Half-Width-Space Character Code 106

12.0 HP LaserJet Bitmap Character Definition 107
12.0.1 Format (UBYTE) 107
12.0.2 Continuation (BOOL) 108

8

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Table of Contents

12.0.3
12.0.4
12.0.5
12.0.6
12.0.7
12.0.8
12.0.9
12.0.10
12.0.11

Descriptor Size (UBYTE) 108
Class (UBYTE) 108
Orientation (UBYTE) 111
Left Offset (SINT) 111
Top Offset (SINT) 111
Character Width (UINT) 111
Character Height (UINT) 111
Delta X (SINT) 112
Character Data 112

13.0 Banner Printing 113
13.0.1
13.0.2
13.0.3
13.0.4
13.0.5
13.0.6
13.0.7
13.0.8

Media Source 113
Margins 114
Command Sequence 114
Moving to a New Logical Page 114
Unloading Continuous Media 114
Power-On with Continuous Media 115
Power-Off with Continuous Media 115
Printing Cutsheet with Z-Fold Media 115

13.1 Sample HP PCL for a Banner Print Job

14.0 HP PCL Code Samples

116

14.1 Page Formatting Program Example
14.2 Commands Sent to Printer 118
14.3 3-Plane Color Graphics 119
14.4 4-Plane Color Graphics 120

15.0 Printer Commands

115

116

122

16.0 Other Resources for Assistance

124

16.1 HP Developer Exchange 124
16.2 Comments & Feedback 124

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

9

How This Developer’s Guide Works

4.0

How This Developer’s Guide Works
Below is a sample command description chart from this guide. On the following pages you
can find descriptor names for the various parts of the graph.

HP2000C

DJ970C

DJ895C

C
DJ890C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

&l#P

#
Value

DJ600

DJ610C

G

F

DJ690C

Page Length - Esc

TABLE 1.

E

B

DJ880C

Page Length

DJ870C

A 4.0.1

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Page length set to 66 lines

1 .. n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Page length is set, in number of
lines, at the current lpi

Default

0 (66 lines per page)

Range

1 to maximum supported paper size - Command is ignored for out of
range values

H

ha
rt
O
nl
y!

EFFECT

C

D Designates the number of lines on the logical page at the current VMI (Vertical Motion Index)
This command performs the following actions:

4
4
4
4

Prints any unprinted pages.

Sa
m

I

pl
e

setting.

Ejects the current page if printable data has been received (FF-CR).
Sets text length, top margin, left margin, and right margin to user defaults.
Moves CAP to the left edge of the logical page at the top of form.

The printer may select a different page size for the same line count, since lines are defined by
the current VMI. This command is ignored if VMI is 0.

4.0.2

The Command Description Page

A

Since some commands are not recognized by all HP DeskJet printers, or some family members do not recognize all options for a particular command, it is necessary to indicate which
printers do respond to each command, and how each printer treats each command option.
4.0.3

Command Name

B

The Command Name is the name by which each command is referred to within the text of this
guide, and by which the command is referenced in the index.

10

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

How This Developer’s Guide Works

4.0.4

Escape Sequence

C

This is the ASCII text version of the binary string, which causes the command to be invoked.
The pound sign ("#") is used to represent where one of the command options, which are listed
following the Command Summary, would be inserted.
4.0.5

Command Summary

D

A brief description of the purpose of a command is given. The Command Summary can be
used to determine quickly if a particular command will perform the overall task you desire.
4.0.6

Command Usage Table

E

The Command Usage Table provides a quick key for the application of the available command
options for each printer command. The column labeled "#Value" lists all options (also referred
to as command parameters) for the command being discussed. The group of columns labeled
with the model numbers of the HP DeskJet printers indicates which printers recognize each
command option. The column labeled "Effect" briefly describes what result the use of each
command option will have. The Command Usage Table is designed to let you quickly determine if a particular command and a selected command option will be recognized by your target printer, and what the effect of using that command and command option will be. The
detailed command description can be carefully studied to gain a thorough understanding of
the command once you determine if it is the one you want to use.
4.0.7

Command Options

F

All command options for a command are listed in the column of the Command Usage Table,
which is labeled "Value". You should note that even though a particular member of the HP
DeskJet printer family is indicated as recognizing a command, that printer may not recognize,
and therefore not respond to, all listed command options.
4.0.8

Command Option Recognition Grid

G

This section of the table serves to quickly indicate which HP DeskJet printer models will recognize and respond to a particular command option. If a check mark ("4") appears under a particular printer model in the row for a command option, that printer will recognize the option. If
there is no check mark for a command option under a particular printer model number, that
printer will not recognize or respond to that command option. If a command is used with an
option the printer does not recognize, the results you obtain on your print media will be unpredictable; your printed page may not appear as you expect.
4.0.9

Effect of Command Options

H

The result of using the command with a given command option is briefly described. A detailed
description of the impact of the command and its options are provided in the detailed command description, which follows the Command Usage Table.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

11

How This Developer’s Guide Works

4.0.10

Detailed Command Description

I

This is where all aspects of the command are explained. All details of the command and its
usage are covered, including the effect of the command on the printer and the printing environments, all the command's options and the effect of each of those options, and any
extended impact the command may have which you should be aware of.
4.0.11

!

12

Important Point
Where a blue exclamation point appears, special information that you should keep in mind is
presented. (As a side note, if you print this document on a monochrome printer, the exclamation point will appear a dark gray.) This information may be of a cautionary nature, or it may
be included in this emphasized format to point out special cases, which may apply for a command. Any information noted in these areas should be read carefully before you use the associated command.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Introduction to HP PCL

5.0

Introduction to HP PCL

5.1

History of HP PCL Printer Language
Hewlett-Packard created the HP PCL Printer Language to provide an economical and efficient
way for application programs to control a range of printer features across a number of printing
devices. HP has evolved both the definition and implementations of the HP PCL printer language to provide the optimal price and performance balance. HP PCL 3 continues to lead with
enhancements to the HP PCL printer language in order to deliver powerful technology
advances.
The HP PCL printer language commands are compact escape sequence codes that are
embedded in the print job data stream. This approach minimized both data transmission and
command decode overhead. HP PCL printer language formatters and fonts are designed to
quickly translate application output into high-quality, device-specific, raster print images.
HP PCL printer language commonality from HP printer to HP printer helps to minimize printer
support problems and protect HP printer customer investment in applications and printer driver
software.

5.1.1

What are Printer Commands?
HP PCL language printer commands provide access to printer features. There are two general types of HP PCL language commands:

4 Control codes
4 HP PCL commands
5.1.2

Control Codes
A control code is a character that initiates a printer function, for example Carriage Return
(CR), Line Feed (LF), Form Feed (FF), etc.

5.1.3

HP PCL Commands
HP PCL commands provide access to the printer's HP PCL control structure. The HP PCL
structure controls all of the printer's features.
HP PCL printer commands consist of two or more characters. The first character is always the
ASCII escape character, identified by Esc. Esc is a special control code, which identifies the
subsequent string of characters as a printer command. As the printer monitors incoming data
from a computer, it is "looking" for this character. When this character appears, the printer
reads it and the subsequent string of characters as a command to be performed and not as
data to be printed.

!

HP PCL printer commands are also referred to as escape sequences. The two terms are
used interchangeably throughout this manual.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

13

Introduction to HP PCL

Once an HP PCL command sets a parameter, that parameter will remain set until that HP PCL
command is repeated with a new value, the printer is reset to its user default environment, or
another command makes a change. For example, if you send the printer a command to set
line spacing to 3 lines/inch, each page will print 3 lines/inch until the printer receives a Line
Spacing or VMI command or the printer is reset.

5.2

Syntax of Escape Sequences
There are two forms of HP PCL escape sequences: two-character escape sequences and
parameterized escape sequences.

5.2.1

Two-Character Escape Sequences
Two-character escape sequences have the following form:
Esc X
Where "X" is a character that defines the operation to be performed. (Note, "X" may be any
character from the ASCII table within the range 48-126 decimal ["0" through "~"]).
Following are examples of two- character escape sequences:

5.2.2

Esc E

a two-character escape sequence used for resetting the printer.

Esc 9

a two-character escape sequence used for resetting the left and right margins.

Parameterized Escape Sequences
Parameterized escape sequences have the following form:
Esc X y # z1 # z2 # z3 … # Zn[data]
Where y, #, zi (z1, z2, z3… ) and [data] may be optional, depending on the command.
X Parameterized Character - A character from the ASCII table within the range 33-47 decimal ("!" through "/") indicating that the escape sequence is parameterized.
y Group Character - A character from the ASCII table within the range 96-126 decimal (" ' "
through "~") which specifies the group type of control being performed.
# Value Field - A group of characters specifying a numeric value. The numeric value is represented as an ASCII string of characters within the range 48-57 decimal ("0" through "9") that
may be preceded by a + or - sign and may contain a fractional portion indicated by the digits
after a decimal point (.). Numeric value fields are within the range -32767 to 32767. If an
escape sequence requires a value field and a value is not specified, a value of zero is
assumed.

14

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Introduction to HP PCL

zi Parameter Character - Any character from the ASCII table within the range 96-126 decimal (" " " through "~"). This character specifies the parameter to which the previous value
field applies. This character is used when combining escape sequences.
Zn Termination Character - Any character from the ASCII table within the range 64-96 decimal ("@" through "~”). This character specifies the parameter to which the previous value field
applies. This character terminates the escape sequence and is always in the form of a capital
letter, such as A, M, T, etc.
[Data] Binary Data is eight-bit data (for example, graphics data, downloaded fonts, etc.). The
number of bytes of binary data is specified by the value field of the escape sequence. Binary
data immediately follows the terminating character of the escape sequence.
Following is an example of an escape sequence with a termination character and no parameter character. This escape sequence performs a single function of logical page orientation in
landscape mode.

Esc

&

Escape
Character

l

1

O

Termination
Character
Value
Field

Parameterized
Character
Group
Character

!

4 Some escape sequences shown in this manual contain spaces between characters for
clarity. Do not include these spaces when using escape sequences.

4 Also, in the escape sequence a script "l” is used to indicate a lower case "l" for clarity.
The following is an example of two escape sequences, each of which perform one function:
the first sets the logical page orientation to Portrait Mode, and the second sets the page size to
8 ½ x 11 inches.
Esc & l 0 O and Esc & l 2 A
These two escape sequences can be combined into one escape sequence as follows:

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

15

Introduction to HP PCL

Esc

&

l

1

o

Escape
Character

2

A

Termination
Character

Parameterized
Character
Group
Character

Value
Field
Parameter
Character

Value
Field
Notice that the "Esc" and the "&l" are dropped from the second printer command when they
are combined. Also, the upper-case "O" that terminated the first command becomes a lowercase "o" parameter character when these commands are combined.
Use these three rules to combine and shorten printer commands:

4 The first two characters after "Esc" (the parameterized and group character) must be the
same in all of the commands that will be combined. In the example above, these are "&"
and "l".

4 All alphabetical characters within the combined printer command will be lower-case,
except the final letter, which is always upper-case. In the combined example above, "O"
becomes "o". The final character in the printer command must always be upper-case to
let the printer know that the command is complete.

4 The printer commands are performed in the order that they are combined (from left to
right). Be sure to combine commands in the order that they are to be performed.

16

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

The Page

6.0

The Page

6.1

Logical Page, Physical Page
The HP PCL printer language distinguishes between the physical page and the logical page.
The physical page is the actual sheet of paper. Its size is determined by the size of the media
installed in the printer. The logical page defines the addressable area in which the cursor can
be positioned.
CAP (Current Active Position) refers to the "cursor" position on the logical page, similar to the
cursor used on most computer terminals. The CAP location on the logical page is the next
position where a character will be placed. CAP cannot be moved outside of the logical page
bounds. The figure below shows the layout of the logical page.

The Logical Page
Page
Top Margin

Perf Skip
Zone (1 inch)

Page

Left Margin
Right Margin

Text Area

Text Length

Paper Size

Logical Page

Bottom Margin
Unprintable Region

Page

Perf Skip
Zone (1 inch)

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

17

The Page

6.2

Page Layout
Referring to the previous figure, each page passed through the printer has a number of components. Text printing is normally limited to a specific printable area within the logical page
known as the text area. The text area is entirely contained by the logical page, but may be
smaller because of margins. There are unprintable regions along the outside edges and bottom of each sheet of print media. If printing is attempted outside the printable area at the bottom of the sheet, data may be printed on the following sheet. If printing is attempted in the
unprintable regions, formatting or data may be lost.
The perforation skip zone extends from the bottom of the text area on one page to the top of
the text area on the next page. When the Perforation Skip Mode is turned ON, a Line Feed
that would normally move CAP into the bottom margin of the current page instead moves CAP
to the top of the text area on the next page. If the Perforation Skip Mode is turned OFF, a Line
Feed that would move CAP into the bottom margin is allowed. If text printing is attempted
within the unprintable region at the bottom of the page, a hardware page break occurs, the text
is printed on the next sheet of print media, and then a software page break occurs. The result
is an unplanned, extra page, which contains only that portion of the text which invaded the
unprintable region.
Allow ½ inch at the bottom of the page. This extra ½ inch can mean a loss of 3 lines. For
example, on an 11 inch page, the full-page length is 66 lines (6 lines per inch). However, the
effective page length is 10 ½ inches, or 63 lines.

6.2.1

Current Active Position (CAP)
CAP is the position at which the next character will be printed on the page. This position can
be moved to different points on the logical page using the cursor positioning commands. CAP
cannot be moved outside the bounds of the logical page, except when moving to another logical page.
CAP position (0,0) is at the left edge of the logical page at the current top margin position.
Since the top margin can be changed using a printer command, the physical location of the

18

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

The Page

point (0,0) may change. The point (0,0) then, does not necessarily equate to the top of the
paper.

CAP Position
Top Margin

(0,0)

X
Y

Top Margin

(0,0)

ABCD...

X
Y

ABCD...

Logical Page
Logical Page

Landscape
Portrait

6.2.2

CAP Reference Point
The first line starts at the (0,0) coordinate. CAP starts at (X,Y), where X= the left margin setting, and Y= the top margin setting. CAP is moved the distance of the Horizontal Motion Index
to the right after printing a character and one dot row down after printing graphics. The physical location of the (X,Y) coordinate can change due to the size of the first printed character.
Characters are placed with their reference points at CAP. The reference point is on the character baseline, a horizontal line just under the bottom of the non-descending characters. This
means that if the top margin is at the top of the logical page, text cannot be printed at (0,0)
because most of the character would be above the top edge of the page.
Graphics, however, can be printed at (0,0) because they do not move above CAP. Graphics
begin at the vertical level specified by CAP and then move downward on the page from that
point.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

19

The Print Environment

7.0

The Print Environment
The group of all the printer's current feature settings is collectively referred to as the print environment. Default settings refer to the settings the printer uses unless printer commands are
used to select other settings. Default settings are settings that are programmed into the printer
at the factory.
Each time a job is printed, some of the printer's feature settings may be changed from their
default values to produce a desired output for that job. After the job has printed, the job specific feature settings are no longer needed, since the next job will likely have different output
requirements. The next job should clear all previous job settings by performing a reset. This
allows a job to start with the default settings as a base and vary only those settings that are
needed. Returning to the default environment at the beginning of each print job eliminates the
need for setting every feature each time a job is run.

!

20

Starting your print job with the Reset command (Esc E) is the recommended procedure,
since the escape sequence resets all programmable features to their default values.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Merged Text and Graphics

8.0

Merged Text and Graphics
The process for merging text and graphics with the HP DeskJet 600/800/900 & HP 2000
Series printers in both portrait and landscape orientation is the same as the landscape orientation method for the HP DeskJet 520, 540, 550C, and 560C Series printers, described in the
HP DeskJet 500 Series Technical Reference Guide. The HP DeskJet 600/800/900 & HP
2000 Series printers are capable of buffering an entire page of text in either portrait or landscape orientation. This capability dramatically simplifies the procedure for merging text and
graphics.
As with the landscape orientation method for the HP DeskJet 520, 540, 550C, and 560C
Series printers, when merging text and graphics for the HP DeskJet 600/800/900 & HP 2000
Series printers, the text for the entire page is first sent to the printer (without a Form Feed command), where it is stored in the printer’s formatting buffer. Following the transmission of the
text, the CAP is moved to the graphics starting position with cursor positioning commands.
The graphics data for the page is then sent to the printer, and the page is printed as the graphics data is processed by the printer firmware.
It is important to note that once graphics data has been received for any particular raster row
on the page, no text can be printed at that or any earlier position. You should not attempt to
alter this procedure, for instance by sending a partial page of text, a partial page of graphics,
then resuming with text transmission. Even if you do not violate the rule of sending text for a
line (or preceding a line) where graphics data has been received, attempting to intermix the
transmission of text and graphics data for a given page will render unpredictable results. Send
all text for an entire page, then send all graphics data.
Follow the last of the graphics data with a Form Feed command, which will cause any remaining text data for the page to be printed, then proceed to the next page.

!

If you are modifying an existing DeskJet 500 Series printer driver, which has correctly
implemented the merging of text and graphics in the past, to include other features for the
HP DeskJet 600/800/900 & HP 2000 Series printers, you need not re-write your old driver.
Add support for the new features to existing code, being careful to consider the impact of
old, obsolete commands. However, if you are just beginning development, or you intend to
add merged text and graphics capabilities for the HP DeskJet 600/800/900 & HP 2000
Series printers, you should begin with the algorithm provided above.
Be aware that highly complex pages, those with numerous font changes or cursor repositioning accompanying dense and complex graphics, may cause overflow condition with the printer
buffer. If you encounter this problem, you may be able to remove some of the font or position
changes in order to reduce the complexity of the page description.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

21

Programming Hints

9.0

Programming Hints
The following are overall guidelines to keep in mind when programming with HP PCL printer
language commands.

9.0.1

Follow Specifications
Follow the specifications for HP PCL printer language commands as described in this guide.
Do not rely upon undocumented workarounds. For example, the HP DeskJet 500 Series printers do not allow a negative vertical cursor movement of more than 1/3 inch. While it is possible to create a workaround, the solution may produce undesirable results, as the printer papermovement hardware is not designed to provide negative paper motion. Additionally, the
homemade solution that works today may not work with future printer models.

9.0.2

Leverage from Previous Programs
If you have previously used HP PCL commands to create printer programs, you may be able
use most of those same commands for the HP DeskJet 600/800/900 & HP 2000 Series printers. This is especially true if you have programmed for other HP DeskJet printers. Reusing
previously developed code can save you a significant amount of time since you do not have to
start a development effort from scratch.
When leveraging from previous programs, keep in mind that the HP DeskJet 600/800/900 &
HP 2000 Series printers have a number of important differences from the HP LaserJet family
printer.

4 HP DeskJet 600/800/900 & HP 2000 Series printers are line oriented, whereas HP LaserJet printers are page oriented. The HP LaserJet printers format the entire page in internal
memory and then the entire page is printed, whereas the HP DeskJet 600/800/900 & HP
2000 Series printers format and print consecutive horizontal lines of text or rows of graphics of the page content, one after another, until the entire page has been printed.

4 HP LaserJet printers have full-page printing capability and can position the cursor anywhere on the page. HP DeskJet 600/800/900 & HP 2000 Series printers format from the
top of the page to the bottom.

4 Generally, HP DeskJet 600/800/900 & HP 2000 Series printer commands sent to the HP
LaserJet printer will provide the expected printing results, but may not work as efficiently.
Not all HP DeskJet 600/800/900 & HP 2000 Series commands will work with HP LaserJet
printers.
9.0.3

Priority of Feature Set Commands
Printer features for the HP DeskJet 600/800/900 & HP 2000 Series printers are controlled by
escape sequences and control codes. Software application commands override default settings. However, when the printer is reset, either by turning the printer off and then on again or
by sending the Reset escape sequence (Esc E), the printer returns to the default settings.

22

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Programming Hints

9.0.4

Priority of Commands
There are no finite rules when it comes to structuring your overall program. In general, start by
setting the print environment with the printer control commands, such as Reset, Selecting the
Media Source, and so on.
It is almost always advisable to start and end your program with the reset command (Esc E).
This clears the printer environment and places your program back to the default settings. An
exception to this general rule is when the printer settings are intended to carry across a multicomponent print job.
Where specified in this manual, pay close attention to the order of commands. For example,
raster graphics commands should be sent to the printer in the following order:

4
4
4
4
4
4
4

9.0.5

End Raster Graphics
Raster Graphics Resolution
Raster Graphics Width
Raster Graphics Compression Method
Start Raster Graphics
Transfer Raster Graphics Row(s) with or without Relative Vertical Pixel Movement
End Raster Graphics

Time Savers
The following list provides some helpful hints to make your program more efficient:

4 You do not need to specify leading and trailing zeroes. The HP DeskJet 600/800/900 &
HP 2000 Series printers will compensate if you do not include zeros that occur at the end
of an escape sequence. For example, if you want to specify 10 pitch during a font selection sequence, simply specify 10, rather than 0010.00.

4 Group printer control commands at the beginning of a print job. If a number of consecutive pages within a job have the same format (such as margins, HMI, VMI, etc.), the associated page formatting commands only need to be set once for that group of pages.

4 Combine escape sequences where possible. Shortening commands improves throughput. For example, instead of sending the Page Length command (Esc & l # P) and the
Top Margin command (Esc & l # E) separately, send them as one parameterized escape
sequence (Esc & l # p # E). Follow the guidelines for parameterized escape sequences,
which are described earlier in this chapter.

4 Minimize escape sequences where possible. For example, if you wish to move the cursor
two inches down the page, use one cursor movement command, rather than move the
cursor by decipoints or dots a number of times.

4 You do not need to send a request to load paper. However, you do need to specify envelope size and send a Media Source command to load envelopes.

4 Avoid using tabs to move the cursor across the page. Using tabs may make you dependent upon the current font pitch. Instead, use cursor positioning commands.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

23

Programming Hints

4 Avoid using a Start Raster Graphics and End Raster Graphics command on every line.
Use these commands at the beginning and end of the graphics image.

4 When setting the raster graphics width, calculate the widest point of the raster image. Use
this value to set the width once for the entire raster graphics image.

4 Avoid setting top margin or text length to values outside of the printable area. This may
cause data loss.
When using both the top margin and text length commands, the top margin command should
be sent before the text length command

24

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

10.0
10.1

HP PCL Commands
Control Codes and Special Character Codes
The following commands initiate printer control functions:

10.1.1

Escape
Provides supplementary control of printer functions. The escape character itself is a prefix for
the string of one or more characters that follow. Once an escape character is received by the
printer, normal text processing is suspended, and the contents of the print data stream are
interpreted as a printer command, until the command has been activated by a command termination character, or the escape sequence has been determined to be invalid.

10.2

Testing Commands
Transparent Data Mode, and Display Functions modes (both of them) are used for testing purposes, to allow you to print the actual setup strings rather than having HP PCL actually interpret and execute them.
You can use either Print Modes -or- the Display Functions Mode On and Off commands whichever is more intuitive in your programming environment.

Transparent Data Mode

HP2000C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&p#X

#
Value

DJ600

DJ690C

Transparent Data Mode - Esc

TABLE 2.

DJ970C

10.3.1

Print Modes

DJ895C

10.3

1..n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

0 to 32767 - command is ignored for out of range values

EFFECT
Prints all data rather than executing it.

Prints the graphic symbols associated with hidden control code characters.
All subsequent character codes, for the specified number of bytes, are printed with the current
font attributes. The parser ignores all control codes, including the Esc character. Instead, the
code’s graphic symbol in the current symbol set is printed. For example, in the PC-8 symbol
set, Esc is printed as a left arrow.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

25

HP PCL Commands

Display Functions Mode ON

HP2000C

DJ970C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

Y

#
Value

DJ600

DJ690C

Display Functions Mode ON - Esc

TABLE 3.

DJ895C

10.3.2

1..n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

off

EFFECT
Display Functions turned on

This command turns on Display Functions Mode; a character code is then printed in the current active font.
Turning Display Functions mode ON has the following effects:

4 All control code and escape sequence functions except CR and Esc Z are disabled. CR
marks the paper and executes CR-LF. Esc Z marks the paper and disables Display Functions Mode.

4 All character codes, except CR and Esc Z, either mark the paper or produce a blank
space.
The exact implementation may vary between products. This mode is intended as a programmer’s debugging aid, and is not to be used for document preparation.
Display Functions Mode OFF

HP2000C

DJ970C

DJ895C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc Z

#
Value

DJ600

DJ660C

Display Functions Mode OFF -

DJ610C

TABLE 4.

DJ890C

10.3.3

1..n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

off

EFFECT
Display Functions turned off

This command turns Display Functions Mode OFF. If Display Function Mode is ON when Esc
Z is received, the characters for the next sequence are printed, and Display Function Mode is
disabled. If Display Function Mode is OFF when Esc Z is received, no operation is performed.

26

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Enable Underline

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc & d # D

#
Value

DJ600

DJ660C

Enable Underline -

DJ610C

TABLE 5.

DJ870C

10.4.1

Text Enhancements

DJ850C

10.4

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default - single underline

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Single underline, fixed location
below the baseline

2

4 4 4 4 4 4 4 4 4

Double underline, fixed location
below the baseline

3

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Single underline, font
dependent (“floating”) location

4

4 4 4 4 4 4 4 4 4

Double underline, font
dependent (“floating”) location

Default

off

Range

0 to 4 - (default is selected for values >4 or <0)

4

4

4 4 4

4 4 4

EFFECT

Enables the automatic underline enhancement.

!

This command must use a capital “D” as a terminator.

Except when changing the left margin causes positive horizontal CAP movement, when
underlining is enabled, each printed character or any positive horizontal motion (e.g., spaces,
CAP moves) is automatically underlined.
Once enabled, underline remains enabled until explicitly disabled. The default state is underline disabled.
A single underline is produced if double underline is invoked but unavailable, as in the case of
the DeskJet 850/870/890 Series printers.
When fixed location underlining is enabled, the underline is drawn a fixed, device-dependent
distance below the baseline. When floating location underlining is enabled, the greatest underline distance specified in all of the fonts printed on the current line determines where the
underline is positioned. The underline distance and height is defined in the font descriptor.
In the HP DeskJet implementation of “floating” underline, each font defines the thickness of
the underline character and its position relative to the baseline.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

27

HP PCL Commands

With HP DeskJet 500 Series printers, if underlining is enabled and changing the left margin causes a positive horizontal cursor movement, the move is underlined. With HP DeskJet 600/800/900 & HP 2000 Series printers, the move is not underlined.

!

HP DeskJet 500 Series printers use a value (#) of 255 to disable underlining. HP DeskJet
600/800/900 & HP 2000 Series printers select Default for values over 4 or below 0.
Disable Underline

HP2000C

DJ970C

DJ895C

DJ890C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&d@

#
Value

DJ600

DJ690C

Disable Underline - Esc

TABLE 6.

DJ880C

10.4.2

n/a

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

EFFECT
Underlining is OFF

Disables automatic text underlining.
Line Termination

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc & k # G

#
Value

DJ600

DJ660C

Line Termination -

DJ610C

TABLE 7.

DJ850C

10.4.3

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

CR = CR; LF = LF; FF = FF

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

CR = CR, LF; LF = LF; FF = FF

2

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

CR = CR; LF = CR, LF; FF =
CR, FF

3

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

CR = CR, LF; LF = CR, LF; FF
= CR, FF

Default

0

Range

0 to 3 - Command is ignored for out of range values

EFFECT

This command controls how the printer interprets CR (Carriage Return), LF (Line Feed), and
FF (Form Feed) control characters. For example, a value field of 1 causes the printer to execute a carriage return (CR) and linefeed (LF) for every CR received. A linefeed or formfeed is
sent as is.

28

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

End-of-Line Wrap

HP2000C

DJ970C

DJ895C

DJ890C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&s#C

#
Value

DJ600

DJ690C

End-of-Line Wrap - Esc

TABLE 8.

DJ880C

10.4.4

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Enables End-of-Line Wrap

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Disables End-of-Line Wrap

Default

1

Range

0 to 1 - Command is ignored for out of range values

EFFECT

Defines the action that occurs when a line of text reaches the right margin.
When end-of-line wrap is enabled, a character or space that would move the CAP to the right
of the right margin causes a CR-LF to be executed (prior to the printing of the character or
space).
When end-of-line wrap is disabled, a character or space that would move CAP to the right of
the right margin is not printed, and CAP is set to the right margin.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

29

HP PCL Commands

10.5
10.5.1

Job Control
Reset
Esc E
Performs a reset on the printer (this is NOT a hardware reset). The reset performs the following:
Prints all data received before the reset.

4
4
4
4
4

“Floats” CAP.
Resets all programmable features to their user default values.
Deletes temporary fonts.
Does not delete downloaded permanent features.
Resets the color palette to black and white.

Esc E has no effect on I/O and causes no disruption in host-to-peripheral communication. The
printer remains on-line and no data is lost.
Esc E should be the first command received at the beginning of a job (e.g., before font download) to establish default conditions; and it should be the last command at the end of a job to
leave the machine in the user default state and clear any partially composed pages.
Esc E “floats” CAP on the current page if no printable data has been received; otherwise it
ejects the current page and “floats” CAP on the next page.
CAP is floating prior to printable characters, or commands affecting CAP. (Commands affecting CAP are ASCII data, LF, CAP moves, space, etc.). Commands affecting top and left margins, line spacing, page length, and orientation can change CAP while it is floating.
CAP is fixed following printable characters or commands affecting CAP. CAP is fixed to the left
margin and top margin plus 3/4 VMI upon receipt of printable characters or raster graphics
commands that explicitly move CAP fix it at the specified location. Commands changing the
top and left margins or line spacing cannot affect a fixed CAP; page length or orientation commands eject the page, moving CAP to the top-of-form on the subsequent page. If no printable
data is received, page length and orientation commands eject the page only if the device cannot move the paper back to the top of form. The intent is to not eject unnecessary blank pages.
Since control panel settings can override the factory defaults, Esc E uses the control panel
settings as the default values.
The SPACE character is not considered a printable character with respect to CAP.

30

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Gray Balance

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc * b # B

#
Value

DJ600

DJ660C

Gray Balance -

DJ610C

TABLE 9.

DJ870C

10.6.1

Printer Control

DJ850C

10.6

0

4

Set gray balance to device
default (enabled or disabled)

1

4

Enable gray balancing

2

4

Disable gray balancing

Default

Device dependent

Range

0 to 2 - Command is ignored for out of range values

EFFECT

Determines whether black optimization is performed to make process black (composite
black—composed of color inks) appear more black.
When composite black is constructed by setting all the bits in the CMY color planes, the resulting color may not be isotonic. Gray balancing removes some dots to neutralize the hue shift.
Esc E resets Gray Balance to the device-dependent default.

!

The default for the HP DeskJet 550C is 2 (disable gray balancing).
The defaults for the HP DeskJet 540 and HP DeskJet 600 printers are Print Mode and
Media Type dependent - as shown in the following table. Other HP DeskJet printers do
not require gray balancing, as the gray balance function is built into the Media Type/Print
Quality commands. The Gray Balance command is considered obsolete for those printers.
Gray Balance Default Modes
HP DeskJet 540

HP DeskJet 600

Plain
Paper

Special
Paper

Glossy/
Trans.

Plain
Paper

Special
Paper

Glossy/Trans.

EconoFast

(disabled)

(disabled)

(disabled)

(disabled)

(disabled)

(disabled)

Normal

(enabled)

(enabled)

(enabled)

(enabled)

(enabled)

(disabled)

Best

(enabled)

(enabled)

(enabled)

(enabled)

(enabled)

(disabled)

Print Mode

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

31

HP PCL Commands

Dry Timer

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&b#T

#
Value

DJ600

DJ690C

Dry Timer - Esc

TABLE 10.

DJ850C

10.6.2

0

4

Dry Timer is off

1..1200

4

Dry timer is on - time set for
specified number of seconds

Default

0

Range

0 to 1200 - Command is ignored for out of range values

EFFECT

Sets a minimum dry time between pages to ensure that a previous page dries before the next
page is dropped on top of it.
The time required for ink to dry depends on media, print modes, and environment (temperature and humidity). For example, transparencies may need over 10 minutes in an unheated,
damp environment.
Esc E resets the dry timer to the default value of 0.

!

The Dry Timer function has been incorporated into the Media Type/Print Quality command
combination. The parameters specified for those commands determine the Dry Timer setting. Although some HP DeskJet 600/800/900 & HP 2000 Series printers will respond to
this command, the command is considered obsolete. Dependence on the command
should be removed from your application.
The HP DeskJet 600/800/900 & HP 2000 Series printers use the following values as Dry
Timer defaults when Media Type and Print Quality commands are used:
Dry Timer Defaults
EconoFast Mode

Media Type
Plain Paper

32

Normal Mode

Best Mode

Black

Color

Black

Color

Black

Color

0 sec.

0 sec.

15 sec.

15 sec.

25 sec.

15 sec.

Special Paper

0 sec.

0 sec.

15 sec.

15 sec.

25 sec.

15 sec.

Transparency

60 sec.

120 sec.

180 sec.

360 sec.

240 sec.

360 sec.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Print Quality

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc * o # m/M

#
Value

DJ600

DJ660C

Print Quality -

DJ610C

TABLE 11.

DJ830C

10.6.3

-1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

EconoFast mode selected

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Normal quality selected

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Best quality selected

Default

0

Range

-1 to 1 - Command is ignored for out of range values

EFFECT

The Print Quality (PQ) command, in conjunction with the Media Type (Esc & l # M) command, provides a high-level print mode specifier and replaces the need for the following commands:

4
4
4
4

Font Quality (Primary)

Esc ( s # Q

Font Quality (Secondary)

Esc ) s # Q

Raster Graphics Quality

Esc * r # Q

Mechanical Print Quality (shingling)

Esc * o # Q

This command closes and prints the current page, and moves CAP to the top of form at the left
margin on the next physical page.

!

After receiving the Print Quality command, HP DeskJet 600/800/900 & HP 2000 Series
printers ignore Font Quality (Primary), Font Quality (Secondary), Raster Graphics
Quality, and Mechanical Print Quality commands until a Reset command or an equivalent device reset occurs.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

33

HP PCL Commands

Media Type

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&l#M

#
Value

DJ600

DJ690C

Media Type - Esc

TABLE 12.

DJ870C

10.6.4

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Plain paper

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Bond paper

2

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Special paper (HP Premium
Inkjet Paper)

3

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Glossy film/Photo media

4

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Transparency film

5

4

Quick Dry Glossy

6

4

Quick Dry Transparency

Default

0

Range

0 to 4 - Command is ignored for out of range values

EFFECT

Sets the print mode required for printing on various media types.
If no printable data has been sent, CAP moves to the top of form at the left margin of the current page. If printable data has been sent, the page is printed and CAP moves to the top of
form at the left margin of the next physical page.
For HP DeskJet 600/800/900 & HP 2000 Series printers, the specified media type will
affect output resolution, depletion, shingling, gray balancing, and dry time.

!

Unit of Measure

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

Esc & u # D
DJ870C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

DJ660C

DJ610C

#
Value

Unit of Measure -

DJ600

TABLE 13.

DJ850C

10.6.5

EFFECT

300

4 4

4

4

300 units per inch

600

4 4

4

4

600 units per inch

Default

Device dependent

Range

300,600 - command is ignored for all other values

34

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

The value field establishes the number of units per inch used in the following commands.
These commands formerly used a device’s dot-per-inch resolution as the unit of measure.
Printers that do not support this command still use dots as their unit of measure for these commands.

4
4
4
4

Move CAP Vertical (PCL Units) - Esc * p # Y
Move CAP Horizontal (PCL Units) - Esc * p # X
Vertical Rectangle Size (PCL Units) - Esc * c # B
Horizontal Rectangle Size (PCL Units) - Esc * c # A

In addition, since the current unit of measure setting affects how CAP movement values are
rounded, it also affects the result of the following commands:

4
4
4
4

Move CAP Horizontal (Columns) - Esc & a # C
Horizontal Tab - 
Space - 
Backspace - 

This command affects only the start of characters and PCL Unit commands. This may cause
character spacing to be different on a 600 dpi printer vs. a 300 dpi printer, or on a 300 dpi
printer that supports this command vs. a 300 dpi printer that does not. To get the same character placement on both printer, the unit of measure should be set to 300 and HMI command
(Esc & k # H) should be sent after font selection has occurred.
This command does not affect binary raster data (bitmap fonts, raster graphics, patterns).
A control panel reset or Esc E defaults the measuring unit. Since the unit of measure is part of
the user environment, it is saved and restored whenever a macro is called or an overlay
invoked, but is defaulted when the user environment is established for an overlay.
Bitmap and scalable fonts must retain their initial metric information. Conversion to the current
selected unit must use the original units to avoid cumulative errors due to successive rounding.
Out-of-range values are mapped to the supported value with the minimum relative error.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

35

HP PCL Commands

10.7
10.7.1

Printer Diagnostics
Self-Test
Esc z
Initiates printer self-test, which instructs the printer to perform the following actions:

4 Process all data preceding the self-test.
4 Perform Esc E reset (ejecting the page if printable data has been sent). Permanent downloaded fonts are not deleted.

4
4
4
4

Move CAP to the top of form, if not already there.
Perform the self-test.
After self-test, move to the top of form, if not already there.
Resume execution of the user data without data loss (programmable features need not be
saved).

This should be as complete a self-test as the product is capable of performing. If no error is
detected, the printer will remain on-line. If an error is detected, the printer will go to the off-line
state.
In general, this command should not be used in an application. It is intended as a diagnostic
tool for developers and support staff. The HP DeskJet 600/800/900 & HP 2000 Series printers
provide several diagnostic print outs that are user-accessible via the printer front panel.

36

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

10.8

Page Control
The following commands facilitate the definition of a print job page.
Page Length

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&l#P

#
Value

DJ600

DJ690C

Page Length - Esc

TABLE 14.

DJ870C

10.8.1

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Page length set to 66 lines

1 .. n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Page length is set, in number of
lines, at the current lpi

Default

0 (66 lines per page)

Range

1 to maximum supported paper size - Command is ignored for out of
range values

EFFECT

Designates the number of lines on the logical page at the current VMI (Vertical Motion Index)
setting.
This command performs the following actions:

4
4
4
4

Prints any unprinted pages.
Ejects the current page if printable data has been received (FF-CR).
Sets text length, top margin, left margin, and right margin to user defaults.
Moves CAP to the left edge of the logical page at the top of form.

The printer may select a different page size for the same line count, since lines are defined by
the current VMI. This command is ignored if VMI is 0.
For comparison purposes, the following table lists the page length line values associated with
some standard paper sizes. To calculate the number of lines per page, multiply lines per inch
(lpi) times the length of the physical page. For example, US Letter size paper is 11 inches;
therefore, 6 x 11 = 66.
Page Length Line Values

Paper Size

6 lpi

8 lpi

Letter

66

88

Legal

84

112

A4

70

93

Executive

63

84

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

37

HP PCL Commands

HP DeskJet maximum page length is 14 inches for the HP DeskJet 600/800/900 & HP 2000
Series printers.
This command must be sent at the beginning of a page prior to any printable data; otherwise, when the command is sent, the current page is closed and printed.

!

Page Size

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&l#A

#
Value

DJ600

DJ690C

Page Size - Esc

TABLE 15.

DJ850C

10.8.2

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

Regionally dependent (US Letter for printers sold in North America)

Range

limited to values specified in tables below - Command is ignored for out
of range values

EFFECT
Page size set to that indicated
by value index in the following
tables

Designates the size of the media to be used.
This command performs the following actions:

4
4
4
4
4

38

Prints any unprinted pages.
Ejects the current page if printable data has been received (FF-CR).
Sets text length, top margin, left margin, and right margin to user defaults.
Moves CAP to the left edge of the logical page at the top margin.
Disables the automatic macro overlay.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Since the logical page is defined to extend from the top and bottom edges of the physical
page, this command also sets logical page length.

TABLE 16.

Selectable Sheet Media Sizes for HP DeskJet 600/800/900 & HP 2000 Series printers

Value

Page Description

Page Size

1

US Executive

7.25” x 10.5”

2

US Letter

8.5” x 11”

3

US Legal

8.5” x 14”

25

ISO and JIS A5

148.5 mm x 210 mm

26

ISO and JIS A4

210 mm x 297 mm

45

JIS B5

182 mm x 257 mm

101

Custom

5.00” x 5.83”” through 8.5” x 14
(127 mm x 148 mm-216mm x 356mm)

TABLE 17.

Selectable Card Sizes

Value

Card Description

Card Size

71

Japanese Hagaki Postcard

100 mm x 148 mm

72

Japanese Oufuku-Hagaki Postcards

148 mm x 200 mm

73

ISO and JIS A6 Card

105 mm x 148 mm

74

US Index Card

4” x 6”

75

US Index Card

5” x 8”

78

3x5 Index Card

3” x 5”
(HP 2000C Only)

TABLE 18.

!

Selectable Envelope Sizes

Value

Envelope Description

Envelope Size

-81

U.S. Commercial #10 (portrait)

41/8” x 91/2”

81

U.S. Commercial-10 (landscape)

41/8” x 91/2”

90

International DL

110 mm x 220 mm

92

International C6

114 mm x 162 mm

109

U.S. A2

4 3/8” x 5 3/4”

112

Japanese Envelope #2

111.1 mm x 146 mm
(HP 2000C Only)

Unsigned or positive values specify that the short paper axis is aligned with printer’s paper
axis; negative values specify that the long paper axis is aligned with the printer’s paper
axis.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

39

HP PCL Commands

With HP DeskJet 600/800/900 & HP 2000 Series printers, all envelopes load in landscape
(short edge first). Before the HP DeskJet 550C Series printer, envelopes loaded in portrait. Envelope printing orientation defaults to portrait, except for Commercial 10 (value =
81), which defaults to landscape. Value = -81 prints Commercial 10 envelopes in portrait
orientation.
To minimize the unprintable region on custom size media for the HP DeskJet 600/800/900
& HP 2000 Series printers, t, the application should send the length of the custom page
using the Page Length (Esc & l # P) command.
Media Source

4 4 4 4

-1

4

4

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

Esc & l # H

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

DJ660C

DJ610C

#
Value

Media Source -

DJ600

TABLE 19.

DJ850C

10.8.3

4 4

EFFECT
Load z-fold media (banners)

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Print current page (source is
unchanged)

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Load from tray

3

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Envelope feed

Default

0

Range

-1, 0, 1, 3 - Command defaults for out of range values
Selects the media source.
This command prints the current page and moves CAP to top of form at the left margin on the
next physical page. The command remains effective until another tray is selected.

40

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Orientation

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc & l # O

#
Value

DJ600

DJ660C

Orientation -

DJ610C

TABLE 20.

DJ830C

10.8.4

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Portrait

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Landscape

2

EFFECT

Reverse Portrait

4 4

3
Default

0

Range

0 to 3 - Command is ignored for out of range values

4

Reverse Landscape

Defines the position of the logical page and the default direction of text printing with respect to
the physical page.
If the printer has received printable data, an orientation change ejects the current page and
opens another page in the new orientation. Since this command ejects the page, it cannot be
used to change text orientation within a page. The command is ignored if the new orientation
and the current orientation are the same.
This command does not affect graphics.
This command has the following effects:

4 Prints all data received before the command.
4 Executes a formfeed and carriage return.
4 Sets the following to their user defaults:
- logical page
- print direction
- page length
- text length
- top margin, left margin, right margin
- HMI and VMI
This command should be sent at the beginning of a page because it ejects a page containing
printable data. Since this command defaults the above features, it should be followed by commands that set any desired non-default values.
This command affects only text orientation - not raster graphics orientation. For example, if orientation is changed from portrait to landscape, graphics will continue to print in portrait. This
can result in clipping if CAP is not positioned to take this into account.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

41

HP PCL Commands

Horizontal Motion Index

HP2000C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&k#H

#
Value

DJ600

DJ690C

Horizontal Motion Index (HMI) - Esc

TABLE 21.

DJ970C

10.8.5

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

Determined by the pitch or height (x 112%) value in the default font
descriptor

Range

0 to 126.99 - Command is ignored for out of range values

EFFECT
Number of 1/120 inch
increments

Designates the width of columns used for horizontal movement calculations. In the vertical text
path direction, designates the height of rows used for inter-character movement calculations.
HMI defaults to the invoked font’s space character when any of the font’s characteristics (orientation, character set, pitch, etc.) are changed, when switching between primary and secondary fonts with  and .
For fixed pitch fonts, HMI affects all printable characters, including the space and backspace
characters. For proportionally spaced fonts, HMI may affect only the space character: if the
space character glyph exists, CAP moves the width of the space character; otherwise CAP
moves according to the HMI.
For multiple fixed-pitch fonts, the HMI directly affects the nominal (full width) space of the font.
Other spacings are scaled linearly according to the current HMI value, i.e., the character
widths are multiplied by the ratio of the HMI to the nominal width.
In the vertical text path direction mode, the HMI defaults to the height (x 112%) of the font. In
fixed-pitched or multiple-fixed-pitched fonts, the HMI takes on the height (x 112%) of the fixedpitch font.
For proportionally-spaced fonts, the HMI may affect only the space character. If the space
character glyph exists, CAP moves the height (x 112%) of the space character. Otherwise the
CAP moves according to the HMI.

42

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Vertical Motion Index

HP2000C

DJ970C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&l#C

#
Value

DJ600

DJ690C

Vertical Motion Index (VMI) - Esc

TABLE 22.

DJ895C

10.8.6

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

8

Range

0 to Current logical page length up to 32767 - Command is ignored for
out of range values

EFFECT
Number of 1/48 inch increments
between rows

Sets the vertical spacing between lines of print (the vertical distance CAP will move for a linefeed in horizontal text path mode and the horizontal distance the CAP will move for a linefeed
in the vertical text path mode.
This command performs the same functions as Line Spacing (Esc & l # D), except the measurement interval is in 1/48-inch increments instead of lines per inch (lpi). Both commands set
linefeed spacing. To convert lpi to VMI:
VMI = 48.0/ lpi
If the Page Length (Esc & l # P) command follows an VMI change, physical page size is
recalculated. Depending on the VMI modification, the printer may request a different page
size.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

43

HP PCL Commands

Line Spacing

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&l#D

#
Value

DJ600

DJ690C

Line Spacing - Esc

TABLE 23.

DJ870C

10.8.7

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

6

Range

0 to Current logical page length up to 32767 - Command is ignored for
out of range values

EFFECT
Sets the number of lines printed
per inch

This command performs the same functions as VMI (Esc & l # C), except it identifies the VMI
in lines per inch (lpi). Both commands set linefeed spacing. To convert VMI to lpi:
lpi = 48.0/ VMI
In HP DeskJet printers, a value of 0 sets line spacing to 12 lpi.

!

Clear Horizontal Margins

HP2000C

DJ970C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

9

#
Value

DJ600

DJ690C

Clear Horizontal Margins - Esc

TABLE 24.

DJ895C

10.8.8

n/a

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

EFFECT
Default left and right margins

Resets the left and right margins to their default positions. CAP is unchanged.
Left Margin = left bound of the logical page (column 0)
Right Margin = right bound of the logical page.

!
44

This command is considered to be obsolete, and is listed for backward compatibility only.
Do not use this command in new code, as subsequent HP DeskJet printers may not support the command.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Left Margin

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&a#L

#
Value

DJ600

DJ690C

Left Margin - Esc

TABLE 25.

DJ870C

10.8.9

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

0

Range

0 to right bound of logical page - Command is ignored for out of range
values

EFFECT
Sets the left margin to the left
edge of the specified column

If CAP is to the left of the new left margin, it moves to the new left margin; otherwise, this command does not affect CAP. Attempts to set the left margin to the right of the right margin
should be ignored; however, left and right margins can be set at the same location.
Column 0 is the first column on the left edge of the logical page, not the physical page.

!

Right Margin

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&a#M

#
Value

DJ600

DJ690C

Right Margin - Esc

TABLE 26.

DJ870C

10.8.10

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

Logical page right bound

Range

Current left margin to logical page left bound - Command is ignored for
out of range values

EFFECT
Sets the right margin to the right
edge of the specified column

This command is ignored for columns to the left of the left margin. Specifying a column beyond
the right logical page limit sets the right margin to the right logical page limit. If CAP is to the
right of the new right margin, CAP is moved to the new right margin; otherwise this command
does not affect CAP.
Characters whose cells overlap with the right margin are not printed unless end-of-line wrap is
enabled: then the character prints at the left margin on the next line. Attempts to set the right

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

45

HP PCL Commands

margin to the left of the left margin should be ignored; however, left and right margins can be
set to the same location.
Top Margin

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc & l # E

#
Value

DJ600

DJ660C

Top Margin -

DJ610C

TABLE 27.

DJ830C

10.8.11

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

0.5 inch

Range

0 to logical page length - Command is ignored for out of range values

EFFECT
Top margin is set to specified
number of lines at the current
lines-per-inch setting

Specifies the distance between the top of the logical page and the top of the text area.
The top margin is specified in lines whose spacing is determined by the current line spacing.
This command is ignored if the current line spacing is 0, or if a value beyond the current logical
page length is received.
CAP is not moved if it is below the new top margin. If CAP is above the new top margin, CAP
is placed at the baseline of the first row of characters. This position, called top of form, is calculated as follows: top of form = top margin in inches + (.75 x VMI in inches)
The first line of the logical page is always line 0. The vertical position of the first line of print on
the logical page is at top of form as defined above.
The top margin represents a physical position: once the top margin is set, it is unaffected by
subsequent changes in line spacing.

!

Since this command defaults text length, it should precede the Text Length (Esc & l # F)
command.
HP DeskJet printers default to 1/2” with perforation skip mode on, and 0” with perforation
skip mode off.

46

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Text Length

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc & l # F

#
Value

DJ600

DJ660C

Text Length -

DJ610C

TABLE 28.

DJ830C

10.8.12

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

Logical page length - top margin - 1/2 incha

Range

Current left margin to logical page left bound - Command is ignored for
out of range values

EFFECT
Sets length of the text area, in
lines, from the top margin

a. If the calculation is negative, text length defaults to (logical page length - top margin)

This command is ignored if current VMI is 0 or a text length greater than [logical page length top margin] is requested. A value field of 0 defaults text length.
Text length determines the bottom margin when perforation skip is enabled. Text length is
ignored when perforation skip is disabled.
Perforation Skip Mode

HP2000C

DJ970C

DJ895C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&l#L

#
Value

DJ600

DJ690C

Perforation Skip Mode - Esc

TABLE 29.

DJ890C

10.8.13

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Disables perforation skip mode

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Enables perforation skip mode

Default

1

Range

0, 1 - Command is ignored for other values

EFFECT

Controls perforation skip mode.
The perforation region extends from the bottom of the text area to the top margin of the next
page. Text Length (Esc & l # F) determines the size of the perforation skip region (and, indirectly, the bottom margin).
If perforation skip is enabled, text length sets the bottom margin. Printing ends at the specified
text length, and then starts again at the top margin of the next page.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

47

HP PCL Commands

If perforation skip is disabled, text is printed to the end of the page and onto the next page.
Text length and top margin are ignored. Text in the unprintable region may be lost.

!

48

Disabling perforation skip may cause text outside of the printable area to be lost. To prevent this, perforation skip should be enabled. Changing perforation skip mode defaults top
margin and text length.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

10.9

Horizontal Positioning Commands
The following commands provide for cursor movement on the horizontal axis.

10.9.1

Backspace

Moves CAP one character position backwards on the current line.
For horizontal text path direction, no action occurs if CAP is already at the left margin. If the
CAP is to the left of the left margin (via one of the Move CAP commands),  functions as if
the left margin were column 0, the logical page left boundary.
For vertical text path direction, no action occurs if CAP is already at the top margin. If CAP is
above the top margin (via one of the Move CAP commands), BS functions as if the top margin
were row 0, the logical page top boundary.
In proportional spacing, a single  centers the overstriking character with the character
being over-struck. After printing the overstrike character, CAP is at the same position as
before the . Multiple backspaces each move back the distance of the last printable character or space.

!
10.9.2

HP DeskJet 600/800/900 & HP 2000 Series printers backspace using only the last proportional character width. The resulting cursor relocation is therefore not a fixed constant.

Carriage Return

Moves CAP to the left margin on the current row.

10.9.3

Space

Moves CAP forward one character position (defined by HMI) on the current line.
CAP does not move if it is already at the right margin and end-of-line wrap is not enabled. If
end-of-line wrap is enabled, CAP moves to the left margin of the next row and then prints the
space.

10.9.4

Linefeed


HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

49

HP PCL Commands

Moves CAP to the same horizontal position, one row down. If perforation skip mode is
enabled, a linefeed that would go beyond the text length boundary moves CAP to the same
horizontal position at the top of form on the next page. If perforation skip mode is disabled, text
is printed to the end of the page and onto the next page. Text in the unprintable region may be
lost.
10.9.5

Formfeed

Formfeed advances CAP to the same horizontal position at the top of the form on the next
page. Top of Form is at the vertical position computed by top of form = top margin + (3/4 x line
spacing)

!
10.9.6

Multiple formfeeds in sequence are not interpreted as a single formfeed.

Horizontal Tab

Horizontal Tab moves CAP to the next tab stop on the current line.
The first tab stop is at the left margin; additional tab stops are fixed at every 8 columns to the
right margin. Tabs represent a logical position and, thus, refer to different physical positions for
different settings of HMI.
The following are some boundary cases:

4 If the requested tab stop is outside the right margin and CAP is at or to the left of the right
margin, HT moves CAP to the right margin.

4 If the requested tab stop is outside the printable area and CAP is to the right of the right
margin, HT moves CAP to the edge of the printable area.

4 If CAP is to the left of the left margin, HT moves CAP to the left margin.
Tabs do not cause lines to be wrapped if end-of-line-wrap mode is enabled.
HMI determines current column width. If HMI is changed, the physical location of each tab
stop moves. HT has no effect if the HMI is 0.

50

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Move CAP Horizontal (Decipoints)

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&a#H

#
Value

DJ600

DJ690C

Move CAP Horizontal (Decipoints) - Esc

TABLE 30.

HP2000C

10.9.7

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

-32767 to +32767 (up to logical page right and left limits, rounded to the
nearest HP PCL unit or decimal point) - Command is ignored for out of
range values

EFFECT
Moves CAP horizontally by the
specified number of decipoints
(1/720 inch)

A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP right or
left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP
moves an absolute distance from the logical page left edge.
This command ignores margins and can move CAP anywhere horizontally within the logical
page. Attempts to go outside the logical page will move CAP to the appropriate logical page
limit.
Devices not having an integral number of decipoints-to-dots should implement fractional decipoints for dot addressing.

!

HP DeskJet 600/800/900 & HP 2000 Series printers use 2 fractional digits and truncate to
1/3600-inch units.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

51

HP PCL Commands

Move CAP Horizontal (Columns)

HP2000C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&a#C

#
Value

DJ600

DJ690C

Move CAP Horizontal (Columns) - Esc

TABLE 31.

DJ970C

10.9.8

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

-32767 to +32767 (up to logical page right and left limits, rounded to the
nearest HP PCL unit) - Command is ignored for out of range values

EFFECT
Moves CAP horizontally by the
specified number of columns

A signed value field indicates relative movement: plus (+)or minus (-) signs move CAP right or
left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP
moves an absolute distance from the logical page left edge (column 0).
This command ignores margins and can move CAP horizontally anywhere within the logical
page. Attempts to go outside the logical page will move CAP to the appropriate logical page
limit.
HP DeskJet 600/800/900 & HP 2000 Series printers use 2 fractional digits and truncate to
1/3600-inch units.

!

Move CAP Horizontal (HP PCL Units)

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

*p#X

#
Value

DJ600

DJ690C

Move CAP Horizontal (HP PCL Units) - Esc

TABLE 32.

HP2000C

10.9.9

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

-32767 to +32767 (up to logical page right and left limits, rounded to the
nearest HP PCL unit) - Command is ignored for out of range values

EFFECT
Moves CAP horizontally by the
specified number of HP PCL
units

A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP right or
left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP
moves an absolute distance from the logical page left edge.

52

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

This command ignores margins and can move CAP horizontally anywhere within the logical
page. Attempts to go outside the logical page will move CAP to the appropriate logical page
limit.
HP DeskJet printers prior to the HP DeskJet 600 Series printers use 1/300”.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

53

HP PCL Commands

10.10

Vertical Positioning Commands
The following commands provide cursor positioning on the vertical axis.
Move CAP Vertical (Rows)

HP2000C

DJ970C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

&a#R

#
Value

DJ600

DJ690C

Move CAP Vertical (Rows) - Esc

TABLE 33.

DJ895C

10.10.1

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

-32767 to +32767 - Command is ignored for out of range values

EFFECT
Moves CAP to the same
column position on a new line
based on the active line spacing

A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP downward and upward relative to CAP, respectively. The absence of a sign indicates absolute
movement: CAP moves from the top of the logical page, an absolute distance computed by:
Distance from top of logical page = top margin + (3/4 x VMI/48.0) + (value VMI)/48.0
Except for the following, the effect of this command is limited to the logical page:

4 Positive relative positioning allows movement to the next logical page.
4 Negative relative positioning allows movement above the top of form, up to the limit of the
logical page or the top of the physical page.
After power on or reset, CAP moves to the top of form, if not already there.

54

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Move CAP Vertical (Decipoints)

HP2000C

DJ970C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc & a # V

#
Value

DJ600

DJ660C

Move CAP Vertical (Decipoints) -

DJ610C

TABLE 34.

DJ895C

10.10.2

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

-32767 to +32767 - Command is ignored for out of range values

EFFECT
Moves CAP to a new position
along the vertical axis

If no such position exists, moves CAP to the logical page limit.
A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP downward and upward relative to CAP, respectively. The absence of a sign indicates absolute
movement: CAP moves an absolute distance from the top margin.
Except for the following, the effect of this command is limited to the logical page:

4 Positive relative positioning allows movement to the next logical page.
4 Negative relative positioning allows movement above the top of form, up to the limit of the
logical page or the top of the physical page.
After power on or reset, CAP moves to the top of form, if not already there.
Devices not having an integral number of decipoints-to-dots should implement fractional decipoints for dot addressing.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

55

HP PCL Commands

Move CAP Vertical (HP PCL Units)

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

*p#Y

#
Value

DJ600

DJ690C

Move CAP Vertical (HP PCL Units) - Esc

TABLE 35.

HP2000C

10.10.3

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

-32767 to +32767 - Command is ignored for out of range values

EFFECT
Moves CAP specified number
of HP PCL units along the Y
axis

If no such position exists, the printer moves to the logical page limit.
A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP downward and upward relative to CAP, respectively. The absence of a sign indicates absolute
movement: CAP moves an absolute distance from the top margin.
The current size, in units-per-inch, of a HP PCL Unit is specified by the Units of Measure
(Esc & u # D) command. Otherwise, the unit-per-inch for HP PCL movement defaults to 1/300
inch.
Except for the following, the effect of this command is limited to the logical page:

4 Positive relative positioning allows movement to the next logical page.
4 Negative relative positioning allows movement above the top of form, up to the limit of the
logical page or the top of the physical page.
After power on or reset, CAP moves to the top of form, if not already there.
HP DeskJet 600/800/900 & HP 2000 Series printers use 1/300”.

56

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

10.11
10.11.1

Font Selection
Font Selection by Attribute
The user requests a font by designating its attributes with the following commands. For the HP
DeskJet 600 Series printers, successful selection requires the selected font is either one of the
built-in bitmap fonts or a soft font that has been downloaded to the printer. For the HP DeskJet 850, 870, 890 Series printers, successful selection only requires that the typeface specified is one of those included in the printer’s firmware; any specified point size will be generated
by the printer’s font scaling technology.

10.11.2

Font Symbol Set

Esc ( ID
Font Symbol Set (Secondary) - Esc ) ID

4

HP2000C

DJ970C

DJ895C

n/a

DJ890C

Range

4 4

DJ880C

10U - (PC-8, Code Page 437)

DJ870C

Default

DJ850C

4 4 4 4 4 4 4

DJ830C

ID

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

#
Value

DJ600

DJ660C

Font Symbol Set (Primary) -

DJ610C

TABLE 36.

EFFECT
Symbol set identification value
from the table

Identifies the set of symbols in a font, consists of a decimal value and a letter value.
The ID (identification number) consists of a number portion and a letter portion. For example,
to specify ASCII (0U) as the symbol set for the primary font, send Esc(0U. Some of the possible values for the identification number (ID) are listed on the symbol set tables on the following
pages.
The legal range of the number portion of ID is 0 to 2047. The legal range of the letter portion of
ID is the upper-case ASCII characters “A” through “Z”, except for “X”. Symbol sets with IDs of
“X” can only be selected with the Font ID. “Q” is used with HP “Specials” symbol sets and not
recommended for general use. “Y” is used for barcode symbol sets.
PC-8, Code Page 437 (10U) is the default primary and secondary symbol set; but a userdefault may be selected. PC-8 is selected if the specified symbol set does not exist or cannot
be satisfied by any font.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

57

HP PCL Commands

The following table lists printer-supported symbol sets and symbol set IDs for the HP DeskJet
600/800/900 & HP 2000 Series printers.

58

ID

Symbol Set Name

ID

Symbol Set Name

0A

Math-7 (same as 0M)

1G

ISO 21: German

0B

Line Draw-7 (same as 0L)

8G

Greek-8

0C

HP Large Characters (264x)

9G

Windows 3.1 Latin/Greek

0D

ISO 60: Danish/Norwegian

10G

PC-851 Latin/Greek

1D

ISO 61: Norwegian Version 2

12G

PC-8 Latin/Greek

2D

Devanagari

0H

Hebrew-7

0E

Roman Extension

7H

ISO 8859/8 Latin/Hebrew

1E

IS04: United Kingdom

8H

Hebrew-8

9E

Windows 3.1 Latin 2

15H

PC-862 Latin/Hebrew

0F

ISO 25: French (obsolete)

0I

ISO 15: Italian

1F

ISO 69: French

6J

Microsoft Publishing

0G

HP German

7J

DeskTop

8J

Document

36L

Pi Set #6

9J

PC-1004

0M

Math-7

10J

PS Text

1M

Tech-7

11J

PS ISO Latin 1

5M

PS Math

12J

MC Text

6M

Ventura Math

13J

Ventura International

8M

Math-8

14J

Ventura US

10M

Universal Greek & Math Pi

16J

Swash Characters

11M

TEX Math Extension

17J

Small Caps and Old Style Figures

12M

TEXMath Symbol

18J

Old Style Figures

13M

TEX Math Italic

19J

Fractions

19M

Symbol

21J

Lining Figures

0N

ISO 8859/1 Latin 1

22J

Small Caps and Lining Figures

2N

ISO 8859/2 Latin 2

23J

Alternate Caps

3N

ISO 8859/3 Latin 3

0K

ISO 14: JIS ASCII

4N

ISO 8859/4 Latin4

lK

ISO 13: Katakana

5N

ISO 885919 Latin 5

2K

ISO 57: Chinese

6N

ISO8859/10 Latin 6

8K

Kana-8

10N

ISO 885915 Latin/Cyrillic

9K

Korean-8

0O

OCR-A

50K

JIS Kanji-l

1O

OCR-B

51K

JIS Kanji-2

2O

OCR-M

0L

Line Draw-7

10O

MICR

1L

HP Block Characters

OP

Typewriter Paired APL

2L

Tax Line Draw

1P

Bit Paired APL

8L

LineDraw-8

10P

Expert

9L

Ventura ITC Zapf Dingbats

11P

Alternate

10L

PS ITC Zapf Dingbats

12P

Fraktur

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

ID

Symbol Set Name

ID

Symbol Set Name

11L

ITC Zapf Dingbats Series 100

0R

Cyrillic ASCII (8859/5-1986)

12L

ITC Zapf Dingbats Series 200

1R

Cyrillic

13L

ITC Zapf Dingbats Series 300

3R

PC Cyrillic (CP 866)

20L

Carta

9R

Windows 3.1 Latin/Cyrillic

21L

Ornaments

0S

ISO 11: Swedish

22L

Universal News & Commercial Pi

1S

HP Spanish

23L

Chess

2S

ISO 17: Spanish

24L

Astrology 1

3S

ISO 10 Swedish

31L

Pi Set #l

4S

ISO 16: Portuguese

32L

Pi Set #2

5S

ISO 84: Portuguese

33L

Pi Set #3

6S

ISO 85: Spanish

34L

Pi Set #4

7S

HP European Spanish

579L

Wingdings

8S

HP Latin Spanish

35L

Pi Set #5

16S

HP-GL Download

17S

HP-GL Drafting

16U

PC-857 Turkish

18S

HP-GL Special Symbols

17U

PC-852, Latin 2

20S

Sonata

19U

Windows 3.1 Latin I

0T

Thai-8

20U

PC-860 Portugal

5T

Windows 3.1 Latin 5

21U

PC-861 Iceland

8T

Turkish-8

23U

PC-863 Canada French

9T

PC-8T, Turkish

25U

PC-865 Norway

10T

Teletex

26U

PC-775 Baltic

19T

TIS (TAPCI23)

27U

PC Latvian/Russian

0U

ISO 6: ASCII

28U

PC Lithuanian/Russian

1U

Legal

29U

PC Lithuanian/Russian (CP 772)

2U

ISO 2: Int’l Reference Version

10V

Code Page 864 Latin/Arabic

5U

HPL

8V

HP Arabic-8

7U

OEM-1

0Y

3 of 9 Barcode

8U

Roman-8

1Y

Industrial 2 of 5 Barcode

9U

Windows 3.0 Latin 1

2Y

Matrix 20f5 Barcode

10U

PC-8, Code Page 437

4Y

Interleaved 2 of 5 Barcode

11U

PC-8 D/N, Danish/Norwegian

5Y

CODABARBarcode

12U

PC-850, Multilingual

6Y

MSI/Plessey Barcode

15U

Pi Font

7Y

Code 11 Barcode

8Y

UPC/EAN Barcode

15Y

USPS ZIP

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

59

HP PCL Commands

10.11.3

Font Spacing

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ680C

DJ670C

DJ660C

DJ610C

#
Value

DJ600

DJ695C

(s#P
Font Spacing (Secondary) - Esc ) s # P
DJ690C

Font Spacing (Primary) - Esc

TABLE 37.

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Fixed spacing

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Proportional spacing

Default

0

Range

0, 1 - Command is ignored for other values

EFFECT

Designates inter-character spacing as either proportional or fixed.
If proportional spacing is specified and no proportional font is available in the requested symbol set, a fixed spacing font with the current pitch specification is chosen, if available.
If fixed spacing is requested but no fixed-pitch font is available, a proportional font is chosen, if
available.
For fixed-space bitmap fonts, both pitch and height are used for selection of font character
size. For fixed-space scalable fonts, only pitch is used. For proportional bitmap and scalable
fonts, only height is used.
10.11.4

Font Pitch

Esc ( s # H
Font Pitch (Secondary) - Esc ) s # H
HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

#
Value

DJ600

DJ660C

Font Pitch (Primary) -

DJ610C

TABLE 38.

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

10 cpi

Range

> 0.0 - valid to 2 decimal places - Command is ignored for out of range
values

EFFECT
Inter character spacing for
current font is set

Designates the horizontal spacing of a fixed-space or dual-fixed space (bitmap or scalable)
font in characters per inch (cpi).

60

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

If the exact pitch is unavailable, the next larger pitch is selected. If a larger pitch is unavailable,
the closest smaller pitch is selected.
Pitch is ignored when selecting proportional fonts, but saved in the font select table and available when a fixed space font is selected.
For fixed space bitmap fonts, both pitch and height are used for font selection. For fixed space
scalable fonts, only pitch is used. For proportional scalable fonts, only height is used. For dualfixed space fonts, only the pitch is used.
For scalable fonts, pitch is converted to a corresponding point size (height), which is scaled by
the printer. Effective pitch ranges are thus limited by height constraints.
10.11.5

Font Height

Esc ( s # V
Font Height (Secondary) - Esc ) s # V
HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

#
Value

DJ600

DJ660C

Font Height (Primary) -

DJ610C

TABLE 39.

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

12 points

Range

> 0.0 - valid to 2 decimal places - Command is ignored for out of range
values.

EFFECT
Height for current font is set

Specifies font height in points (1/72 inch).
If the requested height is unavailable, the closest heights are chosen for the next selection criteria. The closest value is in terms of absolute difference: e.g., if 6, 8, and 12 point fonts are
available and 10 is requested, both 8 and 12 point fonts are considered.
Fractional values may be specified when requesting height. All bitmap fonts within 0.25 points
of the requested height are considered. If a 12 point font is requested, fonts between 11.75
and 12.25 are considered. Or, to put it another way, if 6, 8, and 11.75 point fonts are available
and 10 is requested, both the 8 and 11.75 fonts are considered.
Height is ignored when selecting a fixed space scalable font; but the value is saved in the font
select table and available when a proportional font is selected.
If no font within .25 points is available, HP DeskJet selects the next smaller height. If no
smaller height is available, the next larger height is selected.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

61

HP PCL Commands

10.11.6

Font Style

Esc ( s # S
Font Style (Secondary) - Esc ) s # S
HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

#
Value

DJ600

DJ660C

Font Style (Primary) -

DJ610C

TABLE 40.

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

0

Range

0 to 32767 - values exceeding range are ignored

EFFECT
Specified characteristics are
applied to font style request

Identifies the posture, width, and structure of the font symbols. The partial sums for posture,
width, and structure are added together to determine the desired value (#). The composition of
the style word is shown below.
Style Word = Posture + (4 x Width) + (32 x Structure)
15

14

X

9

reserved

Value (#) =

Posture

0

Upright

1

Italic

2

Alternate Italic

3

Reserved

Value (#) =

62

10

5
structure

4

2

width

1

0

posture

Width

0

Normal

1

Condensed

2

Compressed or extra condensed

3

Extra compressed

4

Ultra compressed

5

Reserved

6

Extended or expanded

7

Extra extended or extra expanded

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Value (#) =

Structure (style word partial sum multiplied by 32)

0

Solid

1

Outline

2

In-line

3

Contour, Edge effects

4

Solid with shadow

5

Outline with shadow

6

In-line with shadow

7

Contour with shadow

8

Patterned (complex patterns, subjective to typeface)

12-15

Patterned with shadow

16

Inverse

17

Inverse in open border

18-30
31

Reserved
Unknown structure

Default = 0
Range = 0 to 32767 (values greater than 32767 are clamped)
MATCHING ALGORITHM
The following procedure matches requested styles with available styles:

4 Printers recognizing only style values 0, l, and 2 discard requests for larger values.
4 Printers recognizing style values from 0 to 255 convert requests for larger values to 255.
The request is discarded if an exact match is not found after conversion.

4 An exact match is required for style selection. If the requested value is within the range of
the printer and a match is not made, the request is ignored, but saved in the font select
table, available for the next selection.
Whenever a requested font parameter is ignored, the parameter is retained in the font select
table for future font selections; and the current font selection process continues as if the
parameter had never been requested.
In some HP PCL machines, the style word may be an operator: slanting, condensing, expanding, outlining, and shadowing operations are all theoretically possible. For example, if italic is
unavailable, slant may be added to the upright face. No new command sequence is required
to support such operations.
EXAMPLE: Assume that a font style of “italic compressed contour” is desired. The value(#)
would be computed as follows:
1 + (2 x 4) + (3 x 32) = 105

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

63

HP PCL Commands

10.11.7

Font Stroke Weight

Esc ( s # B
Font Stroke Weight (Secondary) - Esc ) s # B
HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

#
Value

DJ600

DJ660C

Font Stroke Weight (Primary) -

DJ610C

TABLE 41.

-7

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Ultra thin

-6

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Extra thin

-5

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Thin

-4

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Extra light

-3

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Light

-2

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Demi-light

-1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Semi-light

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

“Book” or “text” weight

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Semi-bold

2

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Demi-bold

3

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Bold

4

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Extra bold

5

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Black

6

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Extra black

7

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Ultra black

Default

0

Range

-7 to 7 (less than -7 maps to -7; greater than 7 maps to 7)

EFFECT

Designates the thickness of the strokes that compose the characters of a font.
If the designated stroke weight is unavailable and 0 or greater, the closest thicker weight is
selected. If a thicker weight is unavailable, the closest thinner weight is selected.
If the designated stroke weight is unavailable and less than 0, the closest thinner weight is
selected. If a thinner weight is unavailable, the closest thicker weight is selected.
Many typefaces were designed for advertising, and a “medium” was used to describe the standard treatment. Later, additional treatments were designed for text use. Therefore, the typeface treatment designation “medium” may not always take a HP PCL value of 0. This value
may be assigned to “book” or “text” instead.

64

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

10.11.8

Font Selection by ID

Esc ( # X
Font Selection by ID (Secondary) - Esc ) # X
HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

#
Value

DJ600

DJ660C

Font Selection by ID (Primary) -

DJ610C

TABLE 42.

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

0 to 32767 - values exceeding range are ignored

EFFECT
Font with indicated ID is
selected

Designates a font by ID as primary or secondary. The designated font, if present, is selected
as the primary/secondary font, and all the attributes in the primary/ secondary font select table
are changed to match those of the designated font. Pitch, however, is not changed if the designated font is proportional. No action occurs if the designated font is unavailable. See the
Font Symbol Set Command for Symbol Set ID Numbers.

!

Pitch and height are unchanged if the designated font is scalable.
If a proportional-space scalable font is selected by ID, the Height command should be
sent prior to the Font Selection ID command to specify point size. Otherwise, the size will
be determined by the height of the former font (as listed in the font select table).
For shared or multi-user environments, HP recommends that soft fonts be selected by
attribute rather than ID.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

65

HP PCL Commands

10.12

Downloading Fonts
Currently, the HP DeskJet 600 Series and 850/855 Series printers are the only printers that
accept downloaded fonts. Note that the HP DeskJet format soft fonts are designed for use
with the HP DeskJet 500 Series printers. The following sections discuss the format for the HP
LaserJet format soft fonts, which is the type used for the DeskJet 600 Series and 850/855
Series printers.
Before sending font data, the font must first be assigned an identification number so the font
can be referenced by subsequent HP PCL commands.

Font ID

0

Range

0 to 32767 - values exceeding range are ignored

HP2000C

Default

4

DJ970C

4 4 4 4 4 4 4

DJ895C

n

DJ890C

#
Value

DJ880C

DJ870C

DJ850C

DJ830C

DJ695C

DJ690C

DJ680C

DJ670C

Esc * c # D

DJ600

DJ660C

Font ID -

DJ610C

TABLE 43.

DJ810C

10.12.1

EFFECT
The subsequently downloaded
font is given the specified ID
number

A font already having this ID number is deleted when the font definition is received, even if the
new font is rejected because of memory constraints or invalid data fields.
This ID is used as the value field of the Esc ( # X and the Esc ) # X soft font selection commands.
EXAMPLE:
Assume that Esc * c 1 D sets the current Font ID to 1. If this command is followed by a valid
font definition (Esc s # W), a font with an ID of 1 is created.

!

66

If this command is followed by a Font Management (Esc * c # F) command, the appropriate action is executed for any font currently associated with an ID of 1.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Download Font

#
Value
n

4 4 4 4 4 4 4

Default

n/a

Range

0 to 32767 - command is ignored for invalid descriptor or insufficient
memory and the font descriptor data is discarded

4

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc ) s # W [font definition]

DJ600

DJ660C

Download Font -

DJ610C

TABLE 44.

DJ850C

10.12.2

EFFECT
Downloads a font definition and
assigns the font the current font
ID

This command must be sent prior to downloading the characters in the font.
Note that this command downloads the entire font definition, which includes the font descriptor, as well as any additional data segments such as the Global Intellifont Segment, the Global
TrueType Segment, the Copyright, the Application Support Segment, etc. The value (#) of this
command gives the size of the definition; the first word of the definition gives the size of the
descriptor. The descriptor, which is the first part of the definition, defines characteristics common to all the characters of a font.
Some devices, such as PaintJet, may not use a font definition or may ignore some fields; but
each field should contain a valid value for printer compatibility. Missing data and “reserved”
fields should be set to 0; excess data should be discarded.
The two font definitions recognized by the HP DeskJet 600, 850, 870, 890, & HP 2000 Series
printers are provided in the section of this guide entitled “Fonts”.

4 Bitmap - Older definition for bitmap fonts. Not recommended for new devices.
4 Resolution - Specified Bitmap - Replaces the previous Bitmap definition. Allows font resolution to be specified in dots-per-inch.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

67

HP PCL Commands

Character Code

4 4 4 4 4 4 4

Default

0

Range

0 to 65535 - command is ignored for out of range values

HP2000C

n

DJ970C

#
Value

DJ895C

DJ890C

DJ880C

DJ870C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc * c # E

DJ600

DJ660C

Character Code -

DJ610C

TABLE 45.

DJ850C

10.12.3

4

EFFECT
Establishes a decimal ASCII
code for the next character
downloaded

The character code is a state variable that must be designated prior to the download of a character descriptor. Any existing characters with the same code are deleted.
EXAMPLE: Esc *c103E sets the character code to 103. If followed by the Character Descriptor
(Esc ( s # W) command with a valid character descriptor and data, a character is defined in the
code location corresponding to the ASCII lowercase “g”.
HP DeskJet 600, 830, 895, 900 & HP 2000 Series printers support a range of 0 - 65535.
After downloading the font definition, each character in the font must be defined.
Download Character

4 4 4 4 4 4 4

Default

n/a

Range

0 to 32767 - command is ignored for out of range values

4

HP2000C

n

DJ970C

#
Value

DJ895C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

( s # W [Character Definition]

DJ600

DJ690C

Download Character - Esc

TABLE 46.

DJ890C

10.12.4

EFFECT
Downloads a character
definition with the specified (n)
number of bytes

Downloads a character definition with the character code assigned by Esc * c # E.
The value field (#) contains the number of bytes to be downloaded up to a maximum of 32767.
If more bytes are needed, this command is used again as many times as necessary. The

68

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

group of bytes sent by one command is called a block. A character definition consists of a first
block and zero or more continuation blocks.
An unsupported or invalid character definition is ignored and discarded. An out-of-memory
condition during character download deletes the entire font. Reserved fields should be set to
0.
Font Control

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc * c # F

#
Value

DJ600

DJ660C

Font Control -

DJ610C

TABLE 47.

DJ830C

10.12.5

0

4 4 4 4 4 4 4

4

Delete all fonts (temp,
permanent, and soft)

1

4 4 4 4 4 4 4

4

Delete all temporary fonts
(temp, permanent, and soft)

2

4 4 4 4 4 4 4

4

Delete font (specified by last
Font ID)

3

4 4 4 4 4 4 4

4

Delete character (last Font ID
and Character Code)

4

4 4 4 4 4 4 4

4

Make font temporary (specified
by last Font ID)

5

4 4 4 4 4 4 4

4

Make font permanent (specified
by last Font ID)

Default

n/a

Range

0 to 5 - Command is ignored for other values, or if no font has the specified ID

EFFECT

Manipulates fonts and characters designated by Font ID and Character Code.
If the primary or secondary font is deleted, a new primary or secondary font is automatically
selected from the remaining fonts.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

69

HP PCL Commands

10.13

Raster Graphics
The following HP PCL commands apply to the printing of raster graphic images on HP DeskJet 600/800/900 & HP 2000 Series printers.

10.13.1

Raster Mode
The Start Raster (Esc * r # A) command begins a restricted state called raster mode. Raster
mode locks out commands that would affect rendering of the graphics image. These commands remain locked out until End Raster (Esc * r C).

10.13.2

Commands Locked Out of Raster Mode
The following raster commands are ignored in raster mode. They should be used to define a
graphic image’s parameters before entering graphics mode.

10.13.3

Configure Raster Data

Esc * g # W

Simple Color

Esc r # U

Source Raster Width

Esc r # S

Start Raster

Esc r # A

Commands Allowed in Raster Mode
The following commands may be used in raster mode without implicitly ending raster mode.

70

Compression Method

Esc b # M

Seed Row Source

Esc b # S

Transfer Raster by Row/Block

Esc * b # W

Transfer Raster by Plane

Esc b # V

Y Offset

Esc b # Y

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Start Raster

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc * r # A

#
Value

DJ600

DJ660C

Start Raster -

DJ610C

TABLE 48.

DJ830C

10.13.4

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Start graphics at logical page
left boundary (current vertical
position)

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Start graphics at CAP (current
vertical and horizontal position)

Default

0

Range

0 to 1 - Out of range values default to 0

EFFECT

Starts raster mode and specifies the starting position of the raster image.
This command sets the left raster margin. A value of 0 starts the upper left corner of the picture at the current vertical position on the left edge of the logical page. A value of 1 starts the
upper left corner of the picture at CAP (the current vertical and horizontal position).
Start Raster locks out the commands listed above and clears the seed row.
End Raster

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

*rC

#
Value

DJ600

DJ690C

End Raster - Esc

TABLE 49.

DJ870C

10.13.5

n/a

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

n/a

EFFECT
Printer returns to text mode
command processing

This command ends Raster Mode. It signifies the end of the transfer of a raster graphics
image and ends the current raster row. It performs the following functions:

4 Resets the seed row to zeros.
4 Re-enables commands locked out of raster mode by Esc * r # A.
4 Defaults the compression method to 0.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

71

HP PCL Commands

4 Resets the left graphics margin to 0.
4 Moves CAP to the row immediately following the end of the raster area and zero-fills
empty rows if source raster height was specified; otherwise to the next row.

4 Resets the plane pointer to 1.
If a value field is received, it is ignored and the command is still executed.

!

Raster Resolution

HP2000C

DJ970C

DJ895C

DJ890C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

*t#R

#
Value

DJ600

DJ690C

Raster Resolution - Esc

TABLE 50.

DJ880C

10.13.6

75

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

graphics data printed at 75 dpi

100

4 4 4 4 4 4 4 4 4

4 4 4 4 4 4

graphics data printed at 100 dpi

150

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

graphics data printed at 150 dpi

300

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

graphics data printed at 300 dpi

600

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

graphics data printed at 600 dpi
(applies to black data only)a

Default

75

Range

75, 100, 150, 300, 600 - Command is ignored for other values

EFFECT

a. Only black raster data can print at 600 dots per inch on HP DeskJet 600/800/900 & HP 2000 Series printers.

Defines the resolution at which graphics data is to be printed
To assure that the graphic is printed without data loss, an unsupported resolution is mapped to
the next higher supported resolution. For example, a request for 125 dpi on a HP DeskJet 600/
810/830/895/900 or HP 2000 Series printer would result in 150 dpi being selected as the
graphics print resolution.
During raster mode this command is locked out.

!
72

HP DeskJet 600/800/900 & HP 2000 Series printers support 75, 100, 150, and 300 dpi for
color and black printing. They also support 600 dpi for black data only. The default will be
75.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Source Raster Width

HP2000C

DJ970C

DJ895C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

*r#S

#
Value

DJ600

DJ690C

Source Raster Width - Esc

TABLE 51.

DJ890C

10.13.7

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

Logical page width

Range

0 to 32767 - (clamped to right logical page boundary minus left graphics
margin)

EFFECT
Raster region width is set to
specified number of pixels (at
current resolution)a

a. HP DeskJet 600, 810, 830, 850, 895, 900 & HP 2000 Series printers round source raster width values that are not
a multiple of 8 to the next higher multiple of eight (i.e., the next byte boundary).

Specifies the width in pixels of the raster area.
Raster width extends from the left graphics margin to one of the following:

4 The distance specified by the Source Raster Width (Esc * t # H) command.
4 The right edge of the logical page, if the specified width would extend outside the printable
area.

4 The right edge of the printable area, if width is not specified.
HP DeskJet printers always clip at the right edge of the printable area.
The left graphics margin is set to one of the following:

4 CAP (explicit Start Raster).
4 Left edge of the logical page (explicit or implicit Start Raster).
The printer clips data that would extend outside the specified width. If width is not specified,
the printer clips at the right edge of the printable area. If a width greater than the printable area
is specified, the printer clips at the right edge of the logical page.
The printer zero-fills rows not specified for the full width. These zero-filled portions of a row
map to either white or transparent, depending on the media type currently selected (Esc * v #
N).

!

On color devices, a zero-fill is not necessarily white. For example RGB data set to zero
prints as black on a HP DeskJet printer. Undefined graphics space would therefore print
as black.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

73

HP PCL Commands

Since width is in the direction that the raster rows are laid down, source raster width is relative
to the current raster resolution or print quality setting.
Y Offset

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

*b#Y
DJ870C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

DJ600

#
Value

DJ690C

Y Offset - Esc

TABLE 52.

DJ850C

10.13.8

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

-32767 to 32767 - Command is ignored for out of range values

EFFECT
Cursor is moved specified
number of raster lines of vertical
movement

Moves CAP vertically (relative to CAP) by the specified number of raster lines.
This command is recognized only in raster mode and only within the raster area.
This command zero-fills the offset area.
For Delta Row compression (methods 3 and 9), this command zeros the seed row.

!

74

Movement by this command is based on the graphics resolution.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

10.14

Raster Data Transfer
The Raster Transfer commands (Esc * b # V, Esc * b # W) define how many bytes will be
interpreted as binary raster data
The Transfer Raster by Plane (Esc * b # V) command is used when the data is encoded by
plane, as specified by the Simple Color (Esc * r # U) command. Transfer Raster by Plane is
used to send each plane in the row except the last; Transfer Raster by Row (Esc * b # W)
must be used to send the last plane and advance the row.
The Transfer Raster by Row (Esc * b # W) command moves CAP to the beginning of the
next pixel row after the graphics data in the command is sent to the printer. The command is
used for single-color devices, for the last plane in a multi-plane row, or for color raster transfer
when the data is encoded by pixel.
Transfer Raster by Plane

HP2000C

DJ970C

* b # V [data]

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

DJ600

#
Value

DJ690C

Transfer Raster by Plane - Esc

TABLE 53.

DJ895C

10.14.1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

0 to 32767 - Command is ignored for out of range values

EFFECT
Specified number of bytes of
graphics data for a single plane
of data is set to the printer. The
row pointer is not incremented.

Sends a plane of data to the printer and advances to the next plane, but not to the next row.
The number of planes per row is specified by the Simple Color (Esc * r # U) command (also
known as Set Planes per Row). The first plane sent represents the least significant bit in the
pixel.
Since Transfer Raster by Plane (Esc * b # V) does not advance the row, it cannot be used
for the last plane or for single-plane rows. Only Transfer Raster by Row (Esc * b # W) can
advance the row.
The amount of data sent varies from plane to plane and is independent of raster width. Planes
whose data specifies a row shorter than the raster width are zero-filled. Empty planes can be
sent by Esc * b 0 V.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

75

HP PCL Commands

Transfer Raster by Row/Block

HP2000C

DJ895C

DJ890C

DJ880C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

* b # W [data]

#
Value

DJ600

DJ690C

Transfer Raster by Row or Block - Esc

TABLE 54.

DJ970C

10.14.2

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

n/a

Range

0 to 32767 - Command is ignored for out of range values

EFFECT
Following specified number of
data bytes sent to the printer as
K data

Transfers the number of bytes specified in the value field to the printer in a row by row or block
format, depending on the current compression method (Esc * b # M), then moves CAP to the
next row.
This command is used in single-color and multi-color printers where data is encoded by row
rather than by pixel. Because this command advances the row, it is also used for single-plane
rows or the last plane in a multi-plane row.
CAP is updated for each row in both row or block formats. For row formats, CAP is reset to the
left graphics margin. For block formats, CAP is reset to the X coordinate of the block; and the
Y coordinate is incremented.
The amount of data sent by this command can vary from row to row. If the picture width allows
more data than is sent, the undefined area is zero-filled. Undefined planes in a multi-plane row
are zero-filled. Black and white devices interpret zeros as white; color devices interpret zero
according to the current palette.
The plane pointer in a multi-plane row is reset to 1 after the data is transferred.
The data field is interpreted according to the current compression method (Esc * b # M).

76

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

10.15

Raster Compression
Since raster images take a large amount of memory and processing time, raster data should
be reduced as much as possible. White-space data transfer can be reduced by sending empty
rows and planes (Esc * b 0 W, Esc * b 0 V), or by offsetting the left graphic margin (Esc * r 1
A) or the vertical starting point (Esc * b # Y). The Compression Method (Esc * b # M) command provides several other ways of compressing data.
Compression Method

HP2000C

DJ970C

DJ895C

DJ890C

DJ880C

DJ850C

DJ830C

DJ810C

DJ695C

DJ690C

DJ680C

DJ670C

Esc * b # M

#
Value

DJ600

DJ660C

Compression Method -

DJ610C

TABLE 55.

DJ870C

10.15.1

0

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Unencoded

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Run-length encoding

2

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Tagged Image File Format
(TIFF) revision 4.0 “Packbits”
encoding

3

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Delta row encoding

9

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Compressed replacement delta
row encoding

Default

0

Range

0-3, 9 - Out of range values default to 0

EFFECT

Determines how raster data is interpreted in the Transfer Raster by Row or Transfer Raster by
Plane commands. The compression method stays in effect until explicitly changed to another
method or reset by Reset (Esc E) or End raster (Esc * r C).
Method 0- Unencoded
This is a simple binary transfer: no compression.
Method 1- Run-Length Encoding
Method 1 interprets raster data as byte pairs. The first byte tells how many times the second
byte is repeated, i.e., a repetition count. The second byte is the data to be printed. The repetition count can be 0 through 255. A count of 0 means the byte pattern occurs once and is not
repeated; a count of 1 means the pattern occurs twice; and a count of 255 means the pattern
occurs 256 times.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

77

HP PCL Commands

!

Method 1 requires byte pairs: a Transfer Raster (Esc * b # V or Esc * b # W) command
with an odd value field is ignored and the data discarded.
Method 2 - Tagged Image File Format Encoding (TIFF revision 4)
Method 2 (“packbit” encoding) combines methods 0 and 1, with blocks of repeated bytes and
blocks of literal (unencoded) bytes. A control byte precedes the raster data; it indicates the
number of succeeding bytes, and whether they are repeated or literal.
The control byte is in 2’s complement format. If bit 7 is set (byte = -1 to -127), the following
bytes are repeated. The control byte’s absolute value is the number of repetitions (occurrences = repetitions + 1). For example, a control byte of -5 means the subsequent byte is
repeated 5 times (6 occurrences).
If bit 7 of the control byte is zero (byte = 0 to 127), the following bytes are literal. The number
of succeeding data bytes is 1 + the value of the control byte. A control byte of 0 means 1 literal
byte follows; a control byte of 6 means 7 literal bytes follow.
A control byte of -128 is ignored; the next byte is then treated as a control byte.
It is more efficient to code two consecutive identical bytes as a repeated byte, unless these
bytes are preceded and followed by literal bytes. Three-byte repeats should always be
encoded as replicate runs.
The row length indicated by the Transfer Raster commands (Esc * b # V, Esc * b # W)
has precedence if it is met before the literal run count.

!

EXAMPLES OF METHODS 0 - 2:
The following examples show how methods 0 - 2 can be used to send the raster row below:
Byte Number
Bits
ASCII

#1

#2

#3

#4

#5

#6

01010101. 01010101. 01010101. 01010101. 01000001. 01010100. 01010100
U

U

U

U

A

T

Compression method 0 - Unencoded
Esc*r1 A
Esc*b0m7WUUUUATT
Esc*rC

78

#7

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

T

HP PCL Commands

Compression method 1 - Run-length encoding
Esc*r1 A
Esc*b1 m6W(3)U(0)A(1)T
Esc*rC
Compression method 2 - TIFF encoding
Esc*r1 A Esc*b2m6W(-3)U(0)A(-1)T -orEsc*b2m6W(-3)U(2)ATT
Esc*rC

!

Parentheses in the above escape sequences are for readability only.

Method 3 - Delta Row Encoding
This method replaces only bytes in the current row that are different from the preceding row
(seed row). Unreplaced bytes are replicated from the seed row. The current row then becomes
the seed row.
A delta compression string consists of a command byte and the replacement (delta) bytes:
[(Command byte)(1 to 8 replacement bytes)]
The command byte has two parts: the number of consecutive replacement bytes that follow,
and the left offset from the current byte position.
7

5

Replacement count (1 - 8)

4

0

Left offset from the current byte (O - 30)

Three bits of the command byte contain the replacement count: the number of consecutive
replacement bytes that follow (000 = 1, 111 = 8).
Five bits contain the offset from the current byte to the next replacement byte. The current byte
follows the last replacement byte or, at the beginning of a row, the left graphics margin. An offset of 0 is the current byte; an offset of I is the byte following the current byte.
For example, assume the current byte is the first byte in the row. An offset of 7 skips bytes 0
through 6, and a replacement count of 5 replaces bytes 7 through 11. The new current byte is
12. A second offset of 3 skips bytes 12, 13, and 14; byte 15 is the next byte to be replaced.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

79

HP PCL Commands

The values of the offset have the following definitions:
0 to 30:

The offset is 0 to 30.

31:

The offset is 31 or greater. If the offset is 31, an additional offset byte follows
the command byte. The offset in the command byte is added to the offset byte.
If the off- set byte is 0, the offset is 31; if the offset byte is 255, additional offset
bytes follow. The last offset byte will have a value less than 255. All the offset
bytes are added to the offset in the command byte to get the offset value. For
example, if there are 2 offset bytes, and the last byte contains 175, the total offset would be:
31 + 255 + 175 = 461.

If more than eight delta bytes are needed, additional command byte/delta bytes are added:
[(Command Byte)(1-8 Delta Bytes)][(Command Byte)(1-8 Delta Bytes)] . . .
The seed row is zeroed when raster mode is entered. Every raster transfer affects the seed
row, regardless of the compression method. For example, an Esc * b 0 W while in compression method 0 zeros the seed row. This allows method 3 to be combined with other methods in
order to achieve better compression performance.
A vertical offset also affects the seed row: the Y Offset (Esc * b # Y) command skips rows,
leaving them blank, and zeros the seed row.
Method 3 operates on each plane independently, and a separate seed row is maintained for
each graphic plane. However, a Y Offset affects all planes and seed rows simultaneously.
The examples below show how method 3 affects Raster Transfer and Y Offset commands:
Esc b 0 W

Repeat the previous row. The seed row is unchanged

Esc b 1 Y

Move down one raster row. Zero the seed row.

Esc b 0 Y

Move down zero raster rows. Zero the seed row

Seed row width is set to the source raster width at the beginning of raster mode. Source Raster Width (Esc * r # S) updates seed row width.
If the Transfer Raster (Esc * b # V or Esc * b # W) command byte count is less than the control
byte count, only the transfer byte count number of bytes are replaced. If the transfer count is
greater than the control count, only the control byte number of bytes are replaced; for example, if the control byte count is 10 but the transfer count is 3, only 3 bytes are replaced.
If the last byte indicated by the transfer command value is a control byte, it is ignored. Therefore, Esc * b 1 W does not affect the seed row, but causes the previous row to be repeated.
DELTA ROW EXAMPLE:

80

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

The following data is compressed using method 3. Italicized bytes are those needing replacement, i.e., bytes different from the seed row. Graphics data is binary.
Byte #:

1

2

3

4

5

Row 1

00000000

11111111

00000000

00000000

00000000

Row 2

00000000

11111111

11110000

00000000

00000000

Row 3

00001111

11111111

11110000

10101010

10101010

Esc * r 1 A

Start Raster initializes the seed row to all zeros.
Row 1 - Esc * b 3 m 2 W (00000001 )( 11111111 )
3m selects method 3, and 2W indicates that 2 bytes of data will follow. The upper three bits of
the command byte are zero, indicating that one byte will be replaced. The lower five bits contain a relative offset of 1, indicating that the replacement occurs one byte in from the current
position. The replacement byte follows and contains 11111111.
Row 2 - Esc * b 2 W (00000010)(11110000)
The first three bits of the command bye are 0 indicating one byte will be replaced. The lower
five bits contain a relative offset of 2; so the replacement will occur 2 bytes from the current
position. The replacement byte 11110000 follows.
Row 3 - Esc * b 5 W (00000000)(00001111)(00100010)(10101010)(1010 1010)
Three bytes are replaced using two commands. The first three bits of the first command byte
are zero, indicating a single byte replacement, and the next five bits are zero, indicating a relative offset of zero. The replacement byte 00001111 follows.
The first three bits of the second command byte are 001, indicating the replacement of two
bytes; and the lower five bits contain a relative offset of two. The two replacement bytes
(10101010)(10101010) follow the command byte.
Method 9 - Compressed Replacement Delta Row Encoding
Like Method 3, this method replaces only bytes in the current row that differ from the preceding (seed) row. Unlike Method 3, the replacement (delta) bytes may be encoded.
A delta compression string consists of a command byte, optional offset bytes, optional
replacement count bytes, and the replacement data.

Command
Byte

Optional Offset
Bytes

Optional Replacement Count
Bytes

Data
Bytes

The command byte itself has three parts:

Control Bit

Offset Count

Replacement Count

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

81

HP PCL Commands

Control Bit:

Determines whether the replacement data is encoded, and also the bit
boundaries of the command byte’s other two fields.

Offset Count:

The number of bytes the replacement data is offset from the current position in the seed row.

Replacement
Count:

The number of consecutive data bytes to be replaced.

Control Bit = 0
If the control bit is 0, the replacement data is uncompressed. Bits 0-2 contain the replacement
count; bits 3-6 contain the offset count. The replacement count is the number of bytes to be
replaced by the bytes following the command byte. The offset count is the location these
replacement bytes will occupy relative to the current position in the seed row.
Like compression method 3, the current byte follows the last replacement byte or, at the beginning of a row, the left graphics margin. An offset of 0 is the current byte; an offset of 1 is the
byte following the current byte.

6

7
Control Bit = 0

3

Offset Count

2

0

Replacement Count

If the offset count is 15, an offset count byte follows the command byte and is added to the
command byte’s offset count. If the offset count byte is 0, the offset count is 15. If the offset
count byte is 255, another offset count byte follows. The last offset count byte will be less than
255.
One more byte than that indicated by the replacement count will be replaced. That is, 000 = 1
and 111 = 8. For example, if the replacement count is 5, then 6 bytes are replaced.
If the replacement count is 7, a replacement count byte follows the command byte and any offset count bytes. If the replacement count byte is 0, then 8 bytes are replaced. If the replacement count byte is 255, another replacement count byte follows. The last replacement count
byte will be less than 255. All of the replacement count bytes are added to the replacement
count in the command byte to get the total replacement byte count. One more than the total
replacement byte count will be replaced.
Control Bit = 1
Operation is similar if the control bit is 1, except that the replacement data is run length
encoded and the bit boundaries are different. Bits 5 and 6 contain the offset count; bits 0 - 4
contain the replacement count. As when the control bit is 0, optional offset bytes and replacement bytes may be added.

7

6

Control Bit = 1

82

5

Offset Count

4

0

Replacement Count

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Seed Row Source Esc * b # S
Specifies the plane of the seed row for multi-plane graphics in compression methods 3 and 9.
Value (#)

=

0 - Use the corresponding plane of the previous row.

=

> 0 - Number of previous seed planes before the current plane

Default = 0
Range = 0 to number of currently active planes.
For example, if the printer is in 3-plane mode and Esc * b 0 S was sent, then:

4 The Cyan plane would use the Cyan plane from the previous row
as a seed plane.

4 The Magenta plane would use the Magenta plane from the previous
row as a seed plane.

4 The Yellow plane would use the Yellow plane from the previous
row as a seed plane.
If the printer is in 3-plane CMY mode and Esc * b 1 S is sent, then:

4 The Cyan plane would use the Yellow plane from the previous row as
a seed plane.

4 The Magenta plane would use the Cyan plane from the current row
as a seed plane.

4 The Yellow plane would use the Magenta plane from the current row
as a seed plane.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

83

HP PCL Commands

Simple Color

HP2000C

DJ970C

DJ895C

(Also known as Set Planes Per Row)

DJ890C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

*r#U

#
Value

DJ600

DJ690C

Simple Color - Esc

TABLE 56.

DJ880C

10.16.1

Color

DJ870C

10.16

1

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Single plane K palette

-3

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

3 planes, device CMY palette

3

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

3 planes, device RGB palette

-4

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

4 planes, device KCMY palette

Default

1

Range

-4, -3, 1, 3 - Command is ignored for out of range values

EFFECT

The Simple Color (Esc * r # U) command, sometimes referred to as Set Planes Per Row,
allows color selection from a fixed palette. CMY or RGB raster data must be transferred by
plane (Esc * b # V) as well as by row (Esc * b # W). The pixel encoding mode is indexed planar.Creates a fixed-size palette whose color specification cannot be modified.

!

The HP DeskJet 600 printer, which is a single-pen device, maps a value parameter of -4
to 3-plane CMY, converting K data to composite black.
The absolute value of the value field indicates the number of planes per row of raster data to
be sent. The number of entries in the new palette is 2n, with index values 0 to 2n -1. For example a 4-plane palette has 16 entries, with index numbers 0 to 15.
A value field of 1 creates a 2-entry black and white default HP LaserJet palette.
A value field of 3 creates an 8-entry Device RGB palette (compatible with a HP PCL Imaging
Mode palette.
A value field of -3 creates an 8-entry palette in Device CMY color space.
A value field of -4 supports 4-plane Device KCMY color. Plane 1 is the black pen, and planes
2, 3, and 4 respectively are the CMY planes.
The four Simple Color palettes are shown below.

!
84

The ordering for color data planes when the RGB palette is selected is RGB. The first
Transfer By Plane command will send Red Data to the printer, the second will send Green
Data, and the Blue Data is sent with a Transfer By Row command, which increments the

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Row Pointer. The HP DeskJet 600/800/900 & HP 2000 Series printer firmware will complement the data and fire the pen as required to generate the appropriate CMY color. The
RGB palette below shows both the RGB data values sent to the printer and the corresponding color printed.
Single Plane (black) Palette (value = 1)
Planes Per Row

Color

Data Pattern

1

White (no ink)

0

Black

1

3-Plane CMY Color Palette (value = -3)
Planes per Row
3

Color
Printed

Data Plane Pattern
C

M

Y

White (no
ink)

0

0

0

Yellow

0

0

1

Magenta

0

1

0

Red

0

1

1

Cyan

1

0

0

Green

1

0

1

Blue

1

1

0

Composite
Black

1

1

1

3-Plane RGB Color Palette (Value = 3)
Planes per Row
3

Data Plane Pattern

Color
Printed

R

G

B

0

0

0

Composite
Black

0

0

1

Blue

0

1

0

Green

0

1

1

Yellow

1

0

0

Red

1

0

1

Magenta

1

1

0

Cyan

1

1

1

White (no
ink)

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

85

HP PCL Commands

4 Plane (KCMY) Color Palette (value = -4)
Planes per Row
4

86

Color Printed

Data Plane Pattern
K

C

M

Y

White

0

0

0

0

Yellow

0

0

0

1

Magenta

0

0

1

0

Red

0

0

1

1

Cyan

0

1

0

0

Green

0

1

0

1

Blue

0

1

1

0

Composite
Black

0

1

1

1

Black

1

0

0

0

Black/Yellow

1

0

0

1

Black/Magenta

1

0

1

0

Black/Red

1

0

1

1

Black/Cyan

1

1

0

0

Black/Blue

1

1

0

1

Black/Green

1

1

1

0

Black

1

1

1

1

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

Foreground Color

HP2000C

DJ970C

DJ895C

DJ890C

DJ870C

DJ850C

DJ830C

DJ810C

DJ695C

DJ680C

DJ670C

DJ660C

DJ610C

*v#S

#
Value

DJ600

DJ690C

Foreground Color - Esc

TABLE 57.

DJ880C

10.16.2

n

4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

Default

0

Range

0 to the size of the current palette-1
Out of range values are mapped in to a new index via modulo (palette
size)

EFFECT
Text will be printed in the color
specified by the given index

All HP PCL marking entities utilize foreground color, which is selected by Esc * v # S from the
current palette.
Sets the foreground color to the specified index of the current palette.
Out-of-range values are mapped into a new index via modulo (palette size). For example, if
the current palette size is 8, and the selected index for the foreground color command is 10,
the index is mapped into the index of 2 (i.e., 10 modulo 8).
Foreground color affects the following HP PCL page marking primitives in HP DeskJet 600/
800/900 & HP 2000 Series printers.

4 Text characters
4 Solid or monochrome patterned rectangular area fills (rules) (800, 855, 870, 890 only)
4 Raster images (see note below)

!

The HP DeskJet 600 printer will ignore this command if the black pen is installed (foreground color will be black). When the color pen is installed, the printer will map a request
for a four plane palette to a 3 plane palette, using composite black in place of black.
Foreground color interacts with color raster images on HP DeskJet 1200 Series and HP
DeskJet 1600 Series printers. Foreground color does not affect raster color on HP DeskJet 600/800/900 & HP 2000 Series printers. If you are developing printer driver code that
will be ported to drivers for HP DeskJet 1200 and/or 1600 Series printer, to avoid undesired interactions, select a black foreground color when transmitting raster images to the
printer.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

87

HP PCL Commands

TABLE 58.

Single Plane (black) Palette

Planes Per Row

Index

Color

1

0

White (no ink)

1

Black

TABLE 59.

Three Plane (CMY) Color Palette

Planes per Row

Index

Color

3

0

White (no ink)

1

Cyan

2

Magenta

3

Blue

4

Yellow

5

Green

6

Red

7

Composite Black

TABLE 60.

88

Three Plane (RGB) Color Palette

Planes per Row

Index

Color

3

0

Composite Black

1

Red

2

Green

3

Yellow

4

Blue

5

Magenta

6

Cyan

7

White (no ink)

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Commands

TABLE 61.

Four Plane (KCMY) Color Palette

Planes per Row

Index

Color Printed

4

0

White (no ink)

1

White (no ink)

2

Cyan

3

Black

4

Magenta

5

Black

6

Blue

7

Black

8

Yellow

9

Black

10

Green

11

Black

12

Red

13

Black

14

Composite Black

15

Composite Black

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

89

Fonts

11.0

Fonts
A soft font is composed of a Font Definition (font header) and a series of character definitions.
Both are described below. In order to use the standard bitmap font definition on a HP DeskJet
600 or 85X Series printers, the Font Descriptor Size field must be set to exactly 64. The First
Code and Last Code fields must also contain valid information. HP LaserJet printers do not
enforce these restrictions, and it is therefore common for developers leveraging code and
fonts from previous HP LaserJet development to experience problems.

11.1

Standard Bitmap Font Definition
(format 0):
Byte

15

(MSB)

7

(LSB)

0

Byte

Font Descriptor Size (64)

0

1

2

Descriptor Format (0)

Symbol Set Type

3

4

Style MSB

Reserved

5

6

Baseline Position

7

8

Cell Width

9

10

Cell Height

11

12

Orientation

14

Symbol Set

15

16

Pitch (Default HMI)

17

18

Height

19

20

x-Height

21

22

Width Type

Style LSB

23

24

Stroke Weight

Typeface LSB

25

26

Typeface MSB

Serif Style

27

28

Quality

Placement

29

30

Underline Position

Underline Thickness

31

32

Text Height

33

34

Text Width

35

36

First Code

37

38

Last Code

39

40

Pitch Extended

42

Cap Height

Spacing

13

Height Extended

41
43

44-46

Font Number

45-47

48-63

Font Name

49-63

64

90

8

Copyright (optional)

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

65

Fonts

11.2

Resolution-Specified Bitmap Font Definition
(Format 20)
The Resolution-Specified Bitmap font definition shown below is the same as the Standard Bitmap font definition, except that it allows specification of resolution (shaded fields). As with the
Standard Bitmap Definition, the Font Descriptor Size field and the First Code/Last Code fields
must be filled and valid. The Font Descriptor Size field for the Resolution Specified Bitmap
must be at least 68.
Byte

15

(MSB)

8

7

(LSB)

0

Byte

0

Font Descriptor Size (68)

1

2

Format (20)

Symbol Set Type

3

4

Style MSB

Reserved

5

6

Baseline Position

7

8

Cell Width

9

10

Cell Height

11

12

Orientation

14

Symbol Set

15

16

Pitch (Default HMI)

17

18

Height

19

20

x-Height

21

22

Width Type

Style LSB

23

24

Stroke Weight

Typeface LSB

25

26

Typeface MSB

Serif Style

27

28

Quality

Placement

29

30

Underline Position

Underline Thickness

31

32

Text Height

33

34

Text Width

35

36

First Code

37

38

Last Code

39

40

Pitch Extended

42

Cap Height

Spacing

Height Extended

13

41
43

44-46

Font Number

45-47

48-62

Font Name

49-63

64

X Resolution

65

66

Y Resolution

67

68

Copyright (optional)

69

n

...

n+l

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

91

Fonts

The following notation is used to define data types in the font definitions:
(BOOL)
Boolean (0,1)
(UBYTE)
Unsigned Byte (0 . . . 255)
(SBYTE)
Signed Byte (-1 28 . . .1 27)
(UINT)
Unsigned Integer (0 . . . 65535)
(SINT)
Signed Integer (-32768 . . . 32767)
(ULINT)
Unsigned Long Integer (0 . . . (232-1 ))
(SLINT)
Signed Long Integer (_231. . . (23 (ASCxx)
ASCII String
(array (0 . . . (xx-1))) of characters
11.2.1

Font Descriptor Size (UINT)
This field contains the number of bytes in the font descriptor (not the font definition size, which
is given by the escape sequence value field). See the font definition tables for the appropriate
value. The font is invalid if the size is less than the minimum required.

11.2.2

Descriptor Format (UBYTE)
Identifies the font as one of the following:
ValueFormat
0 Standard Bitmap
20 Resolution-Specified Bitmap
Unrecognized values invalidate font creation.

!
11.2.3

HP DeskJets prior to the HP DeskJet 600 Series use a value of 9 for landscape fonts or
fonts larger than 18 points; all other HP DeskJet fonts use a value of 5.
The HP DeskJet 600 and 85X Series printers only support formats 0 (Standard Bitmap),
and 20 (Resolution-Specified Bitmap).
Symbol Set Type (UBYTE)
Describes the font’s relationship to symbol sets.
Value

92

Symbol Set Organization

0

Bound font, 7-bit (96 characters) - Character codes 32-127 [decimal] are printablea

1

Bound, 8-bit (192 characters) - Character codes 32-127 and 160-255 printable.

2

Bound font, 8-bit (256 characters) - All codes are printable except 0, 7-15, and
27a

10

Unbound font, no symbol set affiliation - Character codes correspond to MSL
numbers (for Intellifont unbound scalable fonts)

11

Unbound font, no symbol set affiliation - Character codes correspond to Unicode
numbers (for TrueType unbound scalable fonts)

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Fonts

a. Access to those codes that are unprintable, yet have a character defined, requires the
use of the Transparent Print (Esc & P # X) command
11.2.4

Font Type (UBYTE)
Identifies the font type as one of the following:
Value
0
1
2
3

Symbol Set Organization
7-bit (32 -1 27 are printable)
8-bit (32 -127 and 160 - 255 are printable)
PC-8 (0 - 255 are printable except 7 -1 5 and 27)
16-bit (all are printable except 0, 7 -1 5, 27, 65279, 65534, and 65535)

A type 3 font is a 16-bit font with character codes downloaded according to some native mapping (for example, Shift-JIS, JIS208, etc.). This native mapping allows the font to be used as a
stand-alone font, or it can be bound to another symbol set and then used.
11.2.5

Style MSB (UINT)
The style MSB (byte 4) is combined with the style LSB (byte 23) to make the style word, which
is calculated from the partial sums for posture, width, and structure. The binary structure of the
style word is shown below.
Style Word = Posture + (4 x Width) + (32 x Structure)
15
X
Value(#)

14

10
reserved
=

=

=

9

5
structure

4

2
width

1

0

posture

Posture (style word partial sum)
0 - Upright
1 - Italic
2 - Alternate Italic
3 - Reserved
Width (style word partial sum multiplied by 4)
0 - Normal
1 - Condensed
2 - Compressed or extra condensed
3 - Extra compressed
4 - Ultra compressed
5 - Reserved
6 - Extended or expanded
7 - Extra extended or extra expanded
Structure (style word partial sum multiplied by 32)
0 - Solid
1 - Outline
2 - In-line
3 - Contour, Edge effects
4 - Solid with shadow

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

93

Fonts

5 - Outline with shadow
6 - In-line with shadow
7 - Contour with shadow
8-11 -Patterned (complex patterns, subjective to typeface)
12-15 - Patterned with shadow
16 - Inverse
17 - Inverse in open border
18-30 - Reserved
31 - Unknown structure
The reserved bits (10 to 15) should be set to 0.
If a font style of “italic compressed contour” is downloaded, the value(#) would be:

1 +(2x4)+(3x32)=105
11.2.6

!
11.2.7

!
11.2.8

!
11.2.9

Baseline Position (UINT)
HP DeskJet 600 and 85X Series printers ignore this field.

TrueType - Set to 0.
Cell Width (UINT)
HP DeskJet 600 and 85X Series printers ignore this field.

Cell Height (UINT)
HP DeskJet 600 and 85X Series printers ignore this field.

Orientation (UBYTE)
Specifies font orientation. All font characters must have the same orientation as those specified in the font descriptor; otherwise they are discarded as they are downloaded.
0 = portrait (0 degrees; the orientation of the printer’s raster scan)
1 = landscape (90 degrees counterclockwise)
2 = reverse portrait (180 degrees counterclockwise)
3 = reverse landscape (270 degrees counterclockwise)

!
94

HP DeskJet 600 and 85X Series printers will rotate the fonts to match the paper’s physical
coordinate system for various paper sizes.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Fonts

11.2.10

Spacing (BOOL)
Specifies the type of font spacing. Fixed spacing is 0; proportional spacing is l; dual-fixed
spacing is 2.

!
11.2.11

HP DeskJet printers prior to the HP DeskJet 600 Series treat values other than 0 or 1 as 1,
and require that landscape fonts have fixed spacing.
Symbol Set (UINT)
Bound Font - Specifies the symbol set characteristic of the font.
The value for this field is derived from the symbol set identification number (ID) used by Esc(lD
in the font selection process. The number portion (#) and the ASCII value of the letter portion
(L) of the ID are used to obtain the symbol set descriptor field value:
Symbol Set Descriptor Field = (# x 32) + (L - 64)
Assume the symbol set is US ASCII ISO-6. The symbol set table in the section
“Font Selection by Attribute,” identifies US ASCII as “0U”. Since # = 0 and U = 85, the field
value is 21:

Symbol Set Descriptor Field = (0 x 32) + (85 - 64) = 21
Unbound Font - This field should be set to 56 (1X) for unbound fonts.
11.2.12

Character Set (UINT16)
The Character Set field specifies the native mapping of a large font.

11.2.13

Pitch (UINT)
Bitmap Font - Specifies the pitch of the font in quarter-dot units (i.e., four quarter-dot units
equal one dot; also known as radix dots). It combines with Pitch Extended to specify the pitch
of the font in 1/1024 dots. Pitch defines the default HMI for the font.
For example, at 300 dpi (1200 quarter-dots/inch), a 17-ppi font has a pitch field of 70 and a
non-zero pitch extended field.
(1 inch /17char) x (300 dots / inch) x (4 radix dots / dot) = 70.588 radix dots
The remainder 0.588 is converted back to dots and then to 1/1024 dots:
(0.588 radix dots /4 radix dots per dot) x (1024 units / dot) = 150 units/dot
Pitch Extended is set to 1501/1024 units.
For proportional fonts, the width “printed” for a control code space is determined by the pitch
value unless HMI has been changed.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

95

Fonts

11.2.14

Height (UINT)
Bitmap Font - Specifies the font’s height in quarter-dot units. The value, converted to points
(1/72 inch), is used as the height characteristic of the font. Height combines with Height
Extended to specify the design height of the font in 1/1024 dots.
For example, a 10 point font at 300 dpi has a height field of 166 quarter dots (1200 quarter
dots/inch, 1/72 inch/ point).
(10 point) x (1 inch /72 point) x (300 dots/inch) x (4 quarter-dots/dot) = 166.667

11.2.15

xHeight (UINT)
Bitmap Font - Specifies the height of the lower case “x” in quarter dots.
All HP DeskJet 600 and 85X Series printers ignore this field.

11.2.16

!
11.2.17

Width Type (SBYTE)
HP DeskJet printers ignore this field.

Style LSB (UBYTE)
The least significant byte of the style word. Refer to the Style MSB field.

11.2.18

Stroke Weight (SBYTE)
Specifies the thickness of the font characters. The standard stroke weight is 0 for a medium
font, 3 for a bold font, and -3 for a light font.
Value

96

Stroke Weight

-7

Ultra thin

-6

Extra thin

-5

Thin

-4

Extra light

-3

Light

-2

Demi-light

-1

Semi-light

0

Medium, Book, or Text

1

Semi-bold

2

Demi-bold

3

Bold

4

Extra bold

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Fonts

Value

Stroke Weight

5

Black

6

Extra black

7

Ultra black

Default = 0
Range = -7 to 7 (less than -7 maps to -7; greater than 7 maps to 7)
11.2.19

Typeface [LSB/MSB] (UBYTE)
Specifies the HP typeface number of the font. Three versions of this field are used: the obsolete single-byte version for older fonts, the version used by HP DeskJet 500 and HP LaserJet
III printers, and the new HP LaserJet 4 version (also used by the HP DeskJet 600 and 85X
Series printers.
Single-Byte Version
HP DeskJets prior to HP DeskJet 500 and HP LaserJets prior to HP LaserJet IID used only the
least significant byte (LSB). These printers ignore the upper byte (MSB) in the current version
described below.
HP LaserJet III / HP DeskJet 500 Version
The typeface word includes a 4-bit field for the vendor number, a 2-bit field for the version
number, and a 9-bit field for the actual typeface number. The most significant bit of the most
significant byte is always zero. The typeface word is shown below.
Typeface Family Value
MSB
15
0

LSB
14

11
Vendor

10

9

Version

8

0
Typeface Base Value

Typeface Base Value
0
3
4
5
6
7
8
...

Line Printer or Line Draw
Courier
Helvetica
Times Roman
Letter Gothic
Script
Prestige

Version (typeface word partial sum multiplied by 512)
0
1

1st version
2nd version

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

97

Fonts

2
3

3rd version
4th version

Vendor (typeface word partial sum multiplied by 2048)
0
Reserved for generic typeface selection.
1
Reserved for HP use only.
2
Agfa Division, Miles Inc.
4
Bitstream Inc.
6
Linotype Company
8
The Monotype Corporation plc
10
Adobe Systems, Inc.
3, 5, 7, 9,11-15 Reserved
Default = 3
Range = 0 to 65535 (unavailable values are ignored)
Vendor Number (bits 11-14) - This HP-assigned value is between 0 and 15.
Vendor Version (bits 10, 9) - This value is between 0 and 3. It will change when the vendor
changes the width of a font or adds new characters to a font. A vendor code of 0 is reserved
for generic typeface selection so that older one-byte typeface values can still be used in the
generic typeface selection process.
Typeface Base Value (bits 0 to 8) - This value is between 0 and 511. Some of these values
include appearance width and structure information (i.e., Helvetica Compressed and Helvetica
Outline, etc.).

!

A typeface family value in which both Vendor and Version numbers are 0 is reserved for
generic type- face selection. That is, for typeface family values less than 512, the printer
exactly matches the LSB typeface base value field. For typeface values greater than or
equal to 512, the printer uses the full 16-bit typeface word.
PROCEDURE:
Typeface Family = Typeface Base Value + (Version x 512) + (Vendor x 2048)
The HP typeface number for Agfa’s Dom Casual typeface is 4157 (vendor value=2, version
value=0, and type- face value = 61).

61+(0x512)+(2x2048)=4157
11.2.20

Serif Style (UBYTE)
HP DeskJet 600 and 85X Series printers ignore this field.

11.2.21

Quality
HP DeskJet 600 and 85X Series printers ignore this field.

98

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Fonts

11.2.22

Placement
HP DeskJet 600/800/900 & HP 2000 Series printers ignore this field.

11.2.23

Underline Position (SBYTE)
Bitmap Font - Specifies the distance from the baseline to the top dot row of the underline in
dots. Zero specifies an underline position at the baseline. A positive value specifies an underline position above the baseline. A negative value specifies an underline position below the
baseline.
Scalable Font - Set to 0. Underline Distance is ignored. The Master Underline Position field
identifies this information for scalable fonts.

!
11.2.24

HP DeskJet 600 and 85X Series printers use this field for auto-underlining.

Underline Thickness (UBYTE)
Specifies the thickness of the underline in dots for a bitmap font.
Bitmap Font - Specified in dots. A bitmap font prints 3-dot thick underlines at 300 dpi and 6dot thick under- lines at 600 dpi.
Scalable Font - Should be ignored and set to 0. The Master Underline Height provides this
information.

!
11.2.25

HP DeskJet 600 and 85X Series printers use this field for auto-underlining.

Text Height (UINT)
Specifies the font’s optimum interline spacing for this font. This value is typically 120% of the
height of the font.
Bitmap Font - Specified in quarter-dot units.
Scalable Font - Specified in design window units (defined in the Scale Factor field).

11.2.26

Text Width (UINT)
Specifies the font’s average lowercase character width (it can be a weighted average).
Bitmap Font - Specified in quarter-dots.
Scalable Font - Specified in design window units (defined in the Scale Factor field).

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

99

Fonts

11.2.27

First Code (UINT)
Specifies the character code of the first printable character in the font. The space character
may be printable, and will print an image if one is defined; otherwise, a space control code is
executed.
For a type 3 font, this field can have any value from 0 through 65535. First Code must be less
than or equal to Last Code.
Symbol SetType
0
1
2
10
11

11.2.28

First Code/Last Code
32/127
32/127-160/255
0/255
Set to 0 (for unbound font)
Set to 0 (for unbound font)

Last Code/Number of Chars (UINT)
Specifies the character code of the last printable character in the font. This value may be
greater than the last code of the symbol set as implied by the symbol set type because there
may be components of compound characters that are not part of the symbol set, but must be
downloaded.
For a bound font, this field specifies the last downloadable character code in the font. For an
unbound font (type 10 or 11), it specifies the maximum number of characters that can be
downloaded into the font.
For a type 3 font, this field can be any value from First Code through 65535. Last Code can be
equal to First Code.

11.2.29

Pitch Extended (UBYTE)
Bitmap Font - This is an addition to the Pitch field that extends pitch an extra 8 bits to allow 10
bits of fractional dots. The value of this field is in 1/1024 dot units. For example, a 17-ppi font
for a 300-ppi device would have a Pitch field of 70 (17.5 dots or 17.1429 cpi) and a Pitch
Extended field of 150 (0.1465 dots additional, which adds to 17.6465 dots, or 17.0005 cpi). An
example of calculating the Pitch and Pitch Extended fields is provided in the Pitch field
description.
Scalable Font - This field is set to zero.

!
11.2.30

HP DeskJet 500 Series printers ignore this field. The HP DeskJet 600 and 85X Series
printers do not
Height Extended (UBYTE)
Bitmap Font - This is an addition to the Height field that extends the height an extra 8 bits to
allow 10 bits of fractional dots. The value of this field is in 1/1024 dot units. For example, a 10

100

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Fonts

point font for a 300-ppi device would have a height of 166 (41.5 dots, or 9.96 points) and a
Height Extended field of 170 (0.1660 dots additional, which adds to 9.9998 points). This field is
similar to the Pitch Extended field (refer to the Pitch field example).
Scalable Font - This field is ignored and should be set to zero.

!
11.2.31

HP DeskJet 500 Series printers ignore this field. The HP DeskJet 600 and 85X Series
printers do not.
Cap Height (UINT)
Cap height is a percentage of the Em of a font and is used to calculate the distance from the
cap line (top of an unaccented, upper-case letter, e.g., “H”) to the baseline. An Em is a measure in decipoints of the height of a font; e.g., the em of a 10-point font is 100 decipoints.
Bitmap Font - Fonts containing a 0 in this field are assumed to have a cap height percentage
of 70.87% of em. The Cap Height data is represented as the product of the cap height percentage and the maximum unsigned integer:
0.7087 x 65535 = 46445
For nonzero values the Cap Height percentage is calculated as follows:
% = (Cap Height Data /65535) x 100
Scalable Font - Contains the cap height in design window units (as defined in the Scale Factor field).

11.2.32

Font Number (UINT)
Bitmap Font - Should be ignored and set to 0.

11.2.33

Font Name (ASC16)
This is a 16 byte ASCII character field in which the user may assign a font name.

11.2.34

X Resolution (UINT)
In resolution-specified bitmap fonts, this field specifies the resolution of the font in the X
dimension in dots per inch.

11.2.35

Y Resolution (UINT)
In resolution-specified bitmap fonts, this field specifies the resolution of the font in the Y
dimension in dots per inch.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

101

Fonts

11.2.36

Copyright
This optional field contains ASCII data.

11.2.37

Font Scaling Technology
This field specifies either an Intellifont or TrueType scalable font or, for Format 16, a bitmap
font.
Value
0
1
254

Font Scaling Technology
Intellifont
TrueType
bitmap

Using a value of 254 for bitmap fonts reserves the lower values for other font scaling technologies as they evolve.
11.2.38

Segment Size
The Segment Size field of a Format 16 font is 32 bits in length.

102

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Fonts

11.3

Bitmap Resolution Segment
The BR (Bitmap Resolution) segment is used to define the X resolution and Y resolution of the
bitmap.
This segment must be present for bitmap fonts, otherwise the font is invalidated.
If the specified resolution is not supported by the device, the font is invalidated.
The structure for the BR segment is:
Byte

15

(MSB)

8

17

0

Byte

x

BR

x+1

x+2

Segment Size

x+3

x+4

11.3.1

(LSB)

x+5

x+6

X Resolution

x+7

x+8

Y Resolution

x+9

X Resolution (UINT16)
In resolution-specified bitmap fonts, this field specifies the resolution of the font in the X
dimension in dots per inch.

11.3.2

Y Resolution (UINT16)
In resolution-specified bitmap fonts, this field specifies the resolution of the font in the Y
dimension in dots per inch.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

103

Fonts

11.4

Character Enhancement Segment
The CE (Character Enhancement) segment is used to indicate if a downloaded font is allowed
to use the printer’s character enhancement algorithms. It allows soft-font vendors and ISVs to
use the printer’s algorithms to enhance their fonts.
The structure of the CE segment is:
Byte

15

(MSB)

8

17

(LSB)
0

Byte

x

CE

x+1

x+2

Segment Size

x+3

x+4

x+5

x+6

Style

x+7

x+8

11.4.1

x+9

x+10

Stroke Weight

x+11

x+12

Sizing

x+13

Style (UINT32)
This field specifies the style treatments that the printer is allowed to apply to the font characters.
Style Word = Posture + Structure
31

12 11
Structure

Bit Positions (#)

=

=

11.4.2

4 3
Reserved

0

Posture

Posture
1
italics
0,2,3 reserved
Structure
12
Outline
13
Shadow
14- 31 reserved

Stroke Weight (UINT32)
This field specifies the stroke weight (thickness of the font character strokes) for the printer to
apply to the font.
15

9
Bolding

104

8

7
0
Lightening

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Fonts

Bit Positions (#)

11.4.3

=

StrokeWeight
0-6
reserved
7
Semi Light
8
“Book” or “Text”
9
Semi-Bold
10
Demi-Bold
11
Bold
12
Extra Bold
13
Black
14
Extra Black
15
Ultra Black

Sizing (UINT16)
This field specifies the algorithmic size transformations that can be applied to the font. The
operation can apply to either the X or Y dimension of the characters.
Sizing Word = Reduction + Expansion
15

8 7
Expansion

Bit Positions (#)

0
Reduction

=

=

Reduction
0
0.5 X dimension
1
0.5 Y dimension
2 - 7 reserved
Expansion
8
1.5 X dimension
9
1.5 Y dimension
10
2 X dimension
11
2 Y dimension
12 - 15 reserved

HP DeskJet 600, 700, 800 and HP 2000 Series printers support only 0.5 X/Y, 1.5 X/Y, and 2
X/Y.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

105

Fonts

11.5

Dual-Pitch-Space Char Segment
The DP (Dual-Pitch-Space Character Code) segment is used to specify the space character
code for full-width spacing (two-byte characters) and half-width spacing (one-byte characters).
The structure for the Dual-Pitch-Space Character Code segment is as follows:
Byte

15

(MSB)
8

7

(LSB)
0

x

DP

x+1

x+2

Segment Size

x+3

x+4

11.5.1

Byte

x+5

x+6

Full-Width-Space Character Code

x+7

x+8

Half-Width-Space Character Code

x+9

Full-Width-Space Character Code
(UINT16)
This field contains the character code for a full-width space character (for two-byte character
sets).

11.5.2

Half-Width-Space Character Code
This field contains the character code for a half-width space character (for one-byte character
sets).

106

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP LaserJet Bitmap Character Definition

12.0

HP LaserJet Bitmap Character Definition
The format for the HP LaserJet bitmap character definition and continuation block is shown
below. Format is set to 4, and Descriptor Size is set to 14.
Byte

15 (MSB) 8

7 (LSB) 0

0

Format (4)

Continuation (0)

2

Descriptor Size (14)

Class (1)

4

Orientation

Reserved (0)

6

Left Offset

8

Top Offset

10

Character Width

12

Character Height

14

Delta X

16

Bitmap Character Data: (in bytes)
....
Format (4)

0
2

12.0.1

Continuation (non-zero)

Bitmap Character Data: (in bytes)
....

Format (UBYTE)
Specifies the character descriptor format.
Value
0
1
3
4
5
6
7
8
9
19
12
15

Format
82906A
82450A
QuietJet
LaserJet bitmap
DeskJet
PaintJet
PaintJet XL
RuggedWriter
DeskJet PLUS
Intellifont
DeskJet 500
TrueType

The character is discarded if the format is different from that expected by the device.

!

HP DeskJet 600 and 85X Series printers support only format 4.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

107

HP LaserJet Bitmap Character Definition

12.0.2

Continuation (BOOL)
Specifies whether the following data is a character descriptor block (0) or a continuation (nonzero) of the data associated with the previous character descriptor.
If the byte count in the value field of the Define Character command exceeds 32767, the character must be sent in 2 or more blocks. The additional bytes are sent in as many continuation
blocks as needed (except compound characters).
Compound characters (e.g., accented characters) cannot be continued.
A character that has not received all the character data is an “incomplete” character. There is
at most one incomplete character at a time. If an incomplete character is deleted, any subsequent continuation downloads are ignored.
A continuation block that is downloaded before the first block was received is ignored.

12.0.3

Descriptor Size (UBYTE)
Specifies character descriptor size in bytes. The descriptor follows the character header,
which consists of the first two bytes of the character definition (the Format and Continuation
fields). For bitmap characters, the descriptor size includes Descriptor Size through Delta X.
For Intellifont characters, the descriptor size includes only Descriptor Size and Class. For TrueType characters, the descriptor size includes Descriptor Size and Class, but additional
descriptor information can follow; therefore, the minimum TrueType descriptor size is 2.
Value
6
7
2
2+
14

12.0.4

Device
DeskJet (Format 5 or 9 character descriptor)
DeskJet (Format 12 character descriptor)
Intellifont
TrueType (additional descriptor information can be added)
LaserJet bitmap

Class (UBYTE)
Specifies the format of the character data.
Value
1
2
3
4
15

Class
Bitmap
Compressed bitmap
Intellifont
Compound Intellifont
TrueType

Class 1: Bitmap Data - Class 1 character data is a string of bytes containing the dot-per-bit
image of the character, with no compression. A “1” bit causes the dot to be printed.
The data is grouped in dot rows describing a one-dot high strip of the character from left to
right in the direction of the printer’s raster scan. The dot rows are organized from top to bottom

108

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP LaserJet Bitmap Character Definition

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 number 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 format. The first byte tells how many times the first row is repeated after the initial row. The second 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 follow 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 following 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.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

109

HP LaserJet Bitmap Character Definition

Character
Height

Left
Offset

Line
Repetition

Character Width

Padding
for Byte
Alignment*

Number Number Number Number Number Number
White
Black
White
White
Black
Black
Pixels
Pixels
Pixels
Pixels
Pixels
Pixels

2

0

20

-

-

-

-

0

0

2

6

4

6

2

0

0

1

7

4

7

1

12

8

4

8

-

-

-

1

5

10

5

-

-

-

*Byte alignment is necessary only for raster data (i.e., not for compressed raster data).
Uncompressed - 60 bytes
Compressed - 25 bytes

Class 2 Compressed Bitmap Character Data

110

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP LaserJet Bitmap Character Definition

12.0.5

Orientation (UBYTE)
Bitmap fonts only. Specifies the orientation of the character. Character orientation must match
the orientation in the font descriptor, as follows:
Value
0
1
2
3

Orientation
Portrait
Landscape
Reverse-portrait
Reverse-landscape

The character is discarded if the orientation is not supported or is different from the font orientation.
12.0.6

Left Offset (SINT)
Bitmap fonts only. Specifies the distance in dots from the reference point to the left side of the
character pattern on the physical page coordinate system (i.e. this value is orientation dependent). The left and top offsets locate the character reference point about CAP.
HP DeskJet 600 and 85X Series printers recognize a range of -16384 to 16384.

12.0.7

Top Offset (SINT)
Bitmap fonts only. Specifies the distance in dots from the reference point to the top of the character pattern on the physical page coordinate system (i.e. this value is orientation dependent).
The left and top offsets locate the character reference point about CAP.
HP DeskJet 600 and 85X Series printers recognize a range of -16384 to 16384.

12.0.8

Character Width (UINT)
Bitmap fonts only. Specifies the width of the character in dots on the physical coordinate system (i.e. this value is orientation dependent). Generally, this width is from the farthest left black
dot to the farthest right black dot.
HP DeskJet 600 and 85X Series printers recognize a range of 1 to 16384.

12.0.9

Character Height (UINT)
Bitmap fonts only. Specifies the height of the character in dots on the physical coordinate system (i.e. this value is orientation dependent).
HP DeskJet 600 and 85X Series printers recognize a range of 1 to 16384.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

111

HP LaserJet Bitmap Character Definition

12.0.10

Delta X (SINT)
Bitmap fonts only. Specifies the number of quarter-dot units (radix dots) by which the horizontal position within the HP PCL logical page coordinate system is incremented after printing the
character. If the value field is negative, the value is set to 0. This value is used by the printer
only when the font is proportionally spaced.

12.0.11

Character Data
The character data is in the format specified by the class field.

112

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Banner Printing

13.0

Banner Printing
The following information concerns the printing of continuous forms (banners, z-fold media) on
the HP DeskJet 680 and 690 Series printers. This is the only information made available by
the VCD R&D lab. There are no new HP PCL commands for banner printing. The only HP
PCL command that has actually been modified in association with printing on continuous
media is the command. Only media sizes (as selected with the Media Size command) US Letter and ISO/JIS A4 can be used for continuous form printing.

13.0.1

Media Source

Esc & l # H
The HP DeskJet 680 and 690 Series printers add support for sources -1 (z-fold) and 1 (Tray 1,
cut sheet).
Default media source is Tray 1.
Note that the value used for the variable parameter in the command (“#”), like the rest of the
command, is an ASCII character string. Therefore, a value of “-1” would actually be sent to
the printer as a hex equivalent of “2E 31”.

!

The HP DeskJet 680 and 690 Series printers support values -1, 0, and 1. When the media
source is z-fold, a value of ”0” will eject one blank page. If media remains in the mechanism, the printer will enter a paper-unloading state (see Unloading Continuous Media,
below). In this state, the top LED on the face of the printer will flash, and pressing the
RESUME button will advance one page.
The banner source is only supported for media sizes (see Esc & l # A) of US-Letter (11 inches)
and ISO/JIS A4 (11 2/3 inches). All other media sizes will only load from the cut sheet media
source (Tray 1). This is to ensure that only banners of lengths HP has tested will be printed.
If the printer runs out of paper in the middle of a banner, the rest of the banner data (until the
Esc & l 0 L) will be discarded. There will be no front panel indication when this data is discarded.
In the absence of bidirectional communication, if Tray 1 is selected while continuous media is
loaded at the paper sensor, the mechanism will print the cut sheet job on the continuous
media, as if it were a cut sheet job.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

113

Banner Printing

13.0.2

Margins
Margins in banners are handled the same as margins with cutsheet media. Default top and
bottom margins are 1/2 inch. If perforation skip is disabled (Esc * l 0 L), the margins are
adjusted to 0 top and bottom. The initial cursor (CAP) position in each page is calculated by:
top margin + (3/4 * current line feed) {where current line feed = 1/lines per inch}
With perf skip disabled, the default cursor position is:
0 + (3/4 * 1/6 inch) = 1/8 inch
To position raster graphics at position 0, it is necessary to execute a negative cursor move.
For example Esc * p - 38 Y will move backwards 1/8 inch. Esc * p 0 Y also works when perf
skip is disabled

13.0.3

Command Sequence
The media source must be selected for Continuous Forms before the negative cursor move is
performed, as the Media Source command will default the cursor position to the top left corner
of the defined logical page. In most cases, this defaulting action will leave some amount of top
margin, resulting in a gap appearing in the banner image at the media perforation. By setting
the media source first, and following that command with the negative cursor move, banner
images can be printed. Remember that the negative cursor move must be performed at the
beginning of each new page.

13.0.4

Moving to a New Logical Page
Since raster graphics moves are clipped to the current logical page, it is necessary to explicitly
move to a new page once the current page is filled. As shown in the HP PCL example on the
following page, this may be accomplished by sending a form feed (followed by the appropriate
cursor positioning).
Raster graphics advances never move to the next page, any excess rasters (raster data that
would exceed the logical page boundary) will be discarded. If a raster block spans a page
boundary, it must be sent as multiple blocks, along with the appropriate cursor positioning to
align on the physical media.
For text printing on continuous media, line feeds or form feeds may be used to advance to the
next logical page.

13.0.5

Unloading Continuous Media
When the printer has completed a continuous-media print job, it will advance the paper to the
end of the page after the current page. If media remains in the mechanism, the top LED will
flash. Pressing the Resume button will advance one page. Media must be removed and reinserted between each banner print job.

114

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Banner Printing

13.0.6

Power-On with Continuous Media
The firmware will remember what media type is loaded. If powered down with continuous
media loaded, the firmware will power on with the top LED flashing (as described above)
allowing the user to unload the continuous media if cutsheet media is desired for the next print
job.

13.0.7

Power-Off with Continuous Media
If the Power key is pressed while in the middle of a banner page, the media will first be
advanced to the next top of form before turning the printer off. Any unprinted data will be lost.

13.0.8

Printing Cutsheet with Z-Fold Media
Attempting to print cutsheet media while z-fold media is loaded and there exists a bidirectional
I/O connection between the host and printer, will halt the printer in an error state. Power
cycling will clear the error.
Without a bidirectional I/O connection, the printer will format and print the cutsheet job on the
z-fold media.

13.1

Sample HP PCL for a Banner Print Job
HP PCL Command

Escape Sequence Notes

Reset

Esc E

Set HP PCL to default state

Media Source

Esc & l -1 H

Continuous Forms

Media Size

Esc & l 2 A

US Letter

Perf Skip Off

Esc & l 0 L

Top/Bottom margins set to zero

CAP Position

Esc * p -300 Y or
Esc * p 0 y

Move to top of logical page (move is
clipped to page)

Transfer Rasters

Esc * b # V/W

Image data for one page

Form Feed

FF

Move to next logical page

CAP Position

Esc * p -300 Y or
Esc * p 0 y

Move to top of logical page (move is
clipped to page)

Transfer Rasters

Esc * b # V/W

Image data for another page

Form Feed

FF

Move to next logical page

Eject Banner

Esc & l 0 H

Advances one more page and allows
user unloading

Reset

Esc E

Set HP PCL to default state for next
job

Spaces are included in the escape sequences in the preceding example to enhance readability.
Spaces should not be included in the actual escape sequences sent to the printer.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

115

HP PCL Code Samples

14.0

HP PCL Code Samples
The following pages contain PCL code samples that are intended to address some of the most
commonly asked support questions. Key among these questions are coding general page formatting, 4-plane color graphics, and using Configure Raster Data (CRD).

14.1

Page Formatting Program Example
The following example is old, but covers the essential page formatting commands. While
there is no one best way to write a page formatting program, you can use this example as a
starting point. When performed in the order given, the set of commands prints the output
shown in the figure at the end of the example.
The example assumes the following formatting objectives:

4
4
4
4
4
4
4
4

!

116

Select US Letter size paper
Select portrait page orientation
Set 3/4 in. top, left, and right margins
Set 11/4 in. bottom margin
Establish a header centered approximately in the middle of the top margin
Establish a footer 5/8 inch from the bottom of the paper
Set line spacing at 8 lpi
Use Letter Gothic and CG Times typefaces
No assumption is made as to the status of the configuration switches.

Command Line,
Action

Command

Comment

Reset Printer

Esc E

Returns the printer to its default
settings.

* Set Paper Size

Esc & l 2 A

Selects U.S. Letter size paper 8 1/2
X 11 in.

* Set Portrait
Orientation

Esc & l 0 O

Enable Perforation
Skip Mode

Esc & l 1 L

Default top margin is 1/2 in.

Set Line Spacing

Esc & l 8 D

8 lpi is used for page length and
margin calculations.

Specify Page Length

Esc & l 88 P

11 in. X 8 lpi = 88 lines

Set Top Margin

Esc & l 6 E

3/4 in. margin X 8 lpi = 6 lines

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Code Samples

Command Line,
Action

Command

Comment

Set Text Length

Esc & l 72 F

11 in. page length - [3/4 in. margin +
1 1/4 in. bottom margin] = 9 in. 9 in.
X 8 lpi = 72 lines

Specify Fixed 12 cpi

Esc (s 0 p 12 H

12 cpi is used to set columns for side
margin calculations.

Set Left Margin

Esc & a 6 L

3/4 in. margin = [6 columns X 12 cpi
(selected font pitch)] + 1/4 in.
unprintable region

Set Right Margin

Esc & a 90 M

Page width is 8 1/2 in. The
unprintable region accounts for 1/4
in. leaving 8 1/4 in. (99 columns at 12
cpi). To set the 3/4 in. margin set the
page width at 7 1/2 in. (90 columns at
12 cpi).

Position CAP for
Header

Esc * p - 95y + 475 X

Relative movement. 95 decipoints
up 475 decipoints to the right.

Select Character Set

Esc (12U

Selects PC-850 character set.

Select Header Font

Esc (s 6 h 12 v 0 s 3 b 6
T

Sets font to Letter Gothic 6cpi 12
point bold.

Header Text

DeskJet Printer Family

9/48

Esc & l 9 C

Provides a desirable line spacing for
12 point font used in main text.

End Header

 

Moves CAP out of header and
positions it at top/left margin.

Set Main Text Font

Esc (s 1p 12v 0s 0b
4101T

Sets font to CG Times 12 point.

Main Text

In February 1988 HP
introd.....

Position CAP for Footer

Esc * p 2875 y 1800 X

Absolute movement

Specify Footer Font

Esc (s 0p 24h 6v 0s 0b
6T

Sets font to Letter Gothic

Esc E

Clears partially composed pages;
returns printer to default settings.

Set VMI to

in.

Footer Text
Reset Printer

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

117

HP PCL Code Samples

14.2

Commands Sent to Printer
The series of escape sequences in the table above sends the following commands to the
printer. The series of dots (...) indicate main text. Spaces in escape sequences are for clarity
only; do not include them in the data stream.
EscE Esc&l2a0O Esc&k1w5W Esc& l1l8d88p6e72F Esc(s0p12H Esc&a6l90M Esc*p95y+475X Esc(12U Esc(s6h12v0s3b6TDeskJet Printer Family Esc(& l9C
Esc(s1p12v0s0b4101TIn February 1988, HP introduced the original DeskJet printer at a U.S.
List price of $995. The DeskJet's market position was “Laser Quality Output for Under $1,000”
and offered a superior print quality alternative for users intending to upgrade to 24 wire dot
matrix printers.
In April 1989...
...support for MS Windows 3.0. Esc*p2875y1800X Esc(s0p24h6v0s0b6TCopyright 1990
Hewlett-Packard Co. EscE

This example is a guideline to illustrate page formatting. Depending upon the application,
other methods may be used to achieve the desired printed page. For example, if you want a
header and/or footer to be placed on each page, you can turn Perforation Skip Mode OFF,
allowing the header to sit at the top margin. You can then use vertical positioning commands
to move CAP into position for the main text. Likewise, you can set the printer side margins to
0. You can then use horizontal positioning commands to position CAP for the start of each
line.

118

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Code Samples

14.3

3-Plane Color Graphics
The following shows a simple 3 plane color graphics PCL code sample that prints CYAN,
MAGENTA, YELLOW, then blends them together to produce BLACK, RED, GREEN and
BLUE.
PCL Codes

HEX Data (Run Length Compression)

Description

E

Reset printer

*r-3U

Simple color(3 plane)

*r0A

Start raster

*b1M

Compression method

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*b16V

08FF 0800 0800 0800 08FF 0800 08FF 08FF

(Cyan data)

*b16V

0800 08FF 0800 0800 08FF 08FF 0800 08FF

(Magenta data)

*b16W

0800 0800 08FF 0800 08FF 08FF 08FF 0800

(Yellow data)

*rC

End Raster

E

Reset printer

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

119

HP PCL Code Samples

14.4

4-Plane Color Graphics
The following shows a simple 4 plane color graphics PCL code sample that prints BLACK,
CYAN, MAGENTA, YELLOW, then blends them together to produce BLACK, RED, GREEN
and BLUE.
PCL Codes

HEX Data (Run Length Compression)

E

Reset printer

*r-4U

Simple color(4 plane)

*r0A

Start raster

*b1M

120

Description

Compression method

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

HP PCL Code Samples

PCL Codes

HEX Data (Run Length Compression)

Description

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*b18V

08FF 0800 0800 0800 0100 0800 0800 0800 0800

(Black data)

*b18V

0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF

(Cyan data)

*b18V

0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF

(Magenta data)

*b18W

0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800

(Yellow data)

*rC

End Raster

E

Reset printer

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

121

Printer Commands

15.0

Printer Commands

Escape
Sequence

Action - Result

Escape
Sequence

Action - Result

Esc & a # C

Move CAP Horizontal (Columns)

aEsc

Mechanical Print Quality

Esc & a # H

Move CAP Horizontal (Decipoints)

Esc * p # X

Move CAP Horizontal (HP PCL Units)

Esc & a # L

Left Side Margin Column #

Esc * p # Y

Move CAP Vertical (HP PCL Units)

Esc & a # M

Right Side Margin Column #

Esc * r # A

Start Raster

a

Move CAP Vertical (Rows)

Esc * r C

End Raster

a

Move CAP Vertical (Decipoints)

a

Raster Graphics Quality

a

Dry Timer ( in seconds)

Esc * r # S

Source Raster Width

Esc & d # D

Enable Underline

Esc * r # U

Simple Color

Esc & d @

Disable Underline

Esc * t # R

Raster Resolution

Esc & k # G

Line Termination

Esc * v # S

Foreground Color

Esc & k # H

Horizontal Motion Index (HMI)

Esc ( # X

Font Selection by ID - Primary

Esc & l # A

Page Size

Esc ) # X

Font Selection by ID - Secondary

Esc & l # C

Vertical Motion Index (VMI)

Esc ( ID

Font Symbol Set - Primary

aEsc

Gray Balance

Esc ) ID

Font Symbol Set - Secondary

Esc & l # D

Line Spacing (in lines per inch)

Esc ( s # B

Font Stroke Weight - Primary

a

Seed Row Source

Esc ) s # B

Font Stroke Weight - Secondary

Esc & l # E

Top Margin (in lines at current lpi)

Esc ( s # H

Font Pitch - Primary (in CPI)

Esc & l # F

Text Length

Esc ) s # H

Font Pitch - Secondary (in CPI)

Esc & l # H

Media Source

Esc ( s # P

Font Spacing - Primary

Esc & l # L

Perforation Skip Mode

Esc ) s # P

Font Spacing - Secondary

Esc & l # M

Media Type

Esc ( s # Q

Font Quality - Primary

Esc & l # O

Orientation

Esc ) s # Q

Font Quality - Secondary

Esc & l # P

Page Length (in lines-current
lines per inch)

Esc ( s # S

Font Style - Primary

Esc & s # C

End-of-Line Wrap

Esc ) s # S

Font Style - Secondary

Esc * b # M

Compression Method

Esc ( s # T

Font Typeface - Primary

Esc * b # V

Transfer Raster by Plane

Esc ) s # T

Font Typeface - Secondary

Esc * b # W

Transfer Raster by Row/Block

Esc ( s # V

Font Height - Primary (in points)

Esc * b # Y

Raster Y Offset

Esc ) s # V

Font Height - Secondary (in points)

Esc * c # D

Font ID

Esc ( s # W

Download Character

Esc & a # R
Esc & a # V
Esc & b # T

*b#B

Esc * b # S

122

*o#Q

Esc * r # Q

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

Printer Commands

Esc * c # E

Character Code

Esc ) s W

Download Font

Esc * c # F

Font Control

Esc Y

Display Functions Mode On

Esc * o # M

Print Quality

Esc Z

Display Functions Mode Off

a. Obsolete commands for 6XX printers and above.

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

123

Other Resources for Assistance

16.0
16.1

Other Resources for Assistance
HP Developer Exchange
Available on the World Wide Web - HP Printing & Imaging Solution Provider Program.
Become a registered HP Developer, and receive other documents like this one on other HP
products.
HP Printing & Imaging Solution Provider Program can be found at:
http://dsportal.eservices.hp.com/dspp/home/home_DSPPJumpPage_IDX/

16.2

Comments & Feedback
Feedback on this guide is welcome - send any errors you may find
VAC_DESKJET@HP.COM. Please note - this email address is not for technical support and you may not receive a personalized response from this email address.

124

HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide

to:



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
Creator                         : PCL DEVELOPER'S GUIDE, REV 6.0.FM
Create Date                     : Monday, December 06, 1999 8:57:13 PM
Title                           : PCL Developer's Guide, rev6.0
Author                          : Hewlett-Packard
Producer                        : Acrobat PDFWriter 3.02 for Windows
Subject                         : 
Modify Date                     : 2001:09:13 13:55:14-07:00
Page Count                      : 124
EXIF Metadata provided by EXIF.tools

Navigation menu