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
Page 2
Preface and Printing History
1.0Preface 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
2HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 3
About this Developer’s Guide
2.0About this Developer’s Guide
2.1Which printers are covered by this guide
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 600, HP DeskJet 600C
HP DeskJet 610C - HP DeskJet 610C, HP DeskJet 610CL, HP DeskJet 612C
HP DeskJet 660C - HP DeskJet 660C, HP DeskJet 660Cse
HP DeskJet 670C - HP DeskJet 670C, HP DeskJet 670TV, HP DeskJet 672C
HP DeskJet 680C - HP DeskJet 680C, HP DeskJet 682C
HP DeskJet 690C - 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
1
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.4HP 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 Guide3
Page 4
About this Developer’s Guide
2.2Special Notes
44
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.
44
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.
44
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.
44
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.1Special Note - HP DeskJet 710C, 720C and 820C Series printers
44
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.
4HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 5
Table of Contents
3.0Table of Contents
1.0 Preface and Printing History2
2.0 About this Developer’s Guide3
2.1 Which printers are covered by this guide3
2.1.1 HP DeskJet 600 Series3
2.1.2 HP DeskJet 800 Series3
2.1.3 HP DeskJet 900 Series3
2.1.4 HP 2000C Series3
2.2 Special Notes4
2.2.1 Special Note - HP DeskJet 710C, 720C and 820C Series
3.0 Table of Contents5
4.0 How This Developer’s Guide Works10
4.0.1 Page Length10
4.0.2 The Command Description Page10
4.0.3 Command Name10
4.0.4 Escape Sequence11
4.0.5 Command Summary11
4.0.6 Command Usage Table11
4.0.7 Command Options11
4.0.8 Command Option Recognition Grid11
4.0.9 Effect of Command Options11
4.0.10 Detailed Command Description12
4.0.11 Important Point12
printers4
5.0 Introduction to HP PCL13
5.1 History of HP PCL Printer Language13
5.1.1 What are Printer Commands?13
5.1.2 Control Codes13
5.1.3 HP PCL Commands13
5.2 Syntax of Escape Sequences14
5.2.1 Two-Character Escape Sequences14
5.2.2 Parameterized Escape Sequences14
6.0 The Page17
6.1 Logical Page, Physical Page17
6.2 Page Layout18
6.2.1 Current Active Position (CAP)18
6.2.2 CAP Reference Point19
7.0 The Print Environment20
8.0 Merged Text and Graphics21
9.0 Programming Hints22
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide5
Page 6
Table of Contents
9.0.1 Follow Specifications22
9.0.2 Leverage from Previous Programs22
9.0.3 Priority of Feature Set Commands22
9.0.4 Priority of Commands23
9.0.5 Time Savers23
10.0 HP PCL Commands25
10.1 Control Codes and Special Character Codes25
10.1.1 Escape25
10.2 Testing Commands25
10.3 Print Modes25
10.3.1 Transparent Data Mode25
10.3.2 Display Functions Mode ON26
10.3.3 Display Functions Mode OFF26
10.4 Text Enhancements27
10.4.1 Enable Underline27
10.4.2 Disable Underline28
10.4.3 Line Termination28
10.4.4 End-of-Line Wrap29
10.5 Job Control30
10.5.1 Reset30
10.6 Printer Control31
10.6.1 Gray Balance31
10.6.2 Dry Timer32
10.6.3 Print Quality33
10.6.4 Media Type34
10.6.5 Unit of Measure34
10.7 Printer Diagnostics36
10.7.1 Self-Test36
10.8 Page Control37
10.8.1 Page Length37
10.8.2 Page Size38
10.8.3 Media Source40
10.8.4 Orientation41
10.8.5 Horizontal Motion Index42
10.8.6 Vertical Motion Index43
10.8.7 Line Spacing44
10.8.8 Clear Horizontal Margins44
10.8.9 Left Margin45
10.8.10 Right Margin45
10.8.11 Top Margin46
10.8.12 Text Length47
10.8.13 Perforation Skip Mode47
10.9 Horizontal Positioning Commands49
10.9.1 Backspace49
10.9.2 Carriage Return49
10.9.3 Space49
10.9.4 Linefeed49
6HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 7
Table of Contents
10.9.5 Formfeed50
10.9.6 Horizontal Tab50
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 Commands54
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 Selection57
10.11.1 Font Selection by Attribute57
10.11.2 Font Symbol Set57
10.11.3 Font Spacing60
10.11.4 Font Pitch60
10.11.5 Font Height61
10.11.6 Font Style62
10.11.7 Font Stroke Weight64
10.11.8 Font Selection by ID65
10.12 Downloading Fonts66
10.12.1 Font ID66
10.12.2 Download Font67
10.12.3 Character Code68
10.12.4 Download Character68
10.12.5 Font Control69
10.13 Raster Graphics70
10.13.1 Raster Mode70
10.13.2 Commands Locked Out of Raster Mode70
10.13.3 Commands Allowed in Raster Mode70
10.13.4 Start Raster71
10.13.5 End Raster71
10.13.6 Raster Resolution72
10.13.7 Source Raster Width73
10.13.8 Y Offset74
10.14 Raster Data Transfer75
10.14.1 Transfer Raster by Plane75
10.14.2 Transfer Raster by Row/Block76
10.15 Raster Compression77
10.15.1 Compression Method77
10.16Color84
10.16.1 Simple Color84
10.16.2 Foreground Color87
11.0 Fonts90
11.1 Standard Bitmap Font Definition90
11.2 Resolution-Specified Bitmap Font Definition91
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 Guide7
Page 8
Table of Contents
11.2.4 Font Type (UBYTE)93
11.2.5 Style MSB (UINT)93
11.2.6 Baseline Position (UINT)94
11.2.7 Cell Width (UINT)94
11.2.8 Cell Height (UINT)94
11.2.9 Orientation (UBYTE)94
11.2.10 Spacing (BOOL)95
11.2.11 Symbol Set (UINT)95
11.2.12 Character Set (UINT16)95
11.2.13 Pitch (UINT)95
11.2.14 Height (UINT)96
11.2.15 xHeight (UINT)96
11.2.16 Width Type (SBYTE)96
11.2.17 Style LSB (UBYTE)96
11.2.18 Stroke Weight (SBYTE)96
11.2.19 Typeface [LSB/MSB] (UBYTE)97
11.2.20 Serif Style (UBYTE)98
11.2.21 Quality98
11.2.22 Placement99
11.2.23 Underline Position (SBYTE)99
11.2.24 Underline Thickness (UBYTE)99
11.2.25 Text Height (UINT)99
11.2.26 Text Width (UINT)99
11.2.27 First Code (UINT)100
11.2.28 Last Code/Number of Chars (UINT)100
11.2.29 Pitch Extended (UBYTE)100
11.2.30 Height Extended (UBYTE)100
11.2.31 Cap Height (UINT)101
11.2.32 Font Number (UINT)101
11.2.33 Font Name (ASC16)101
11.2.34 X Resolution (UINT)101
11.2.35 Y Resolution (UINT)101
11.2.36 Copyright102
11.2.37 Font Scaling Technology102
11.2.38 Segment Size102
11.3 Bitmap Resolution Segment103
11.3.1 X Resolution (UINT16)103
11.3.2 Y Resolution (UINT16)103
11.4 Character Enhancement Segment104
11.4.1 Style (UINT32)104
11.4.2 Stroke Weight (UINT32)104
11.4.3 Sizing (UINT16)105
11.5 Dual-Pitch-Space Char Segment106
11.5.1 Full-Width-Space Character Code106
11.5.2 Half-Width-Space Character Code106
12.0 HP LaserJet Bitmap Character Definition107
12.0.1 Format (UBYTE)107
12.0.2 Continuation (BOOL)108
8HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 9
Table of Contents
12.0.3 Descriptor Size (UBYTE)108
12.0.4 Class (UBYTE)108
12.0.5 Orientation (UBYTE)111
12.0.6 Left Offset (SINT)111
12.0.7 Top Offset (SINT)111
12.0.8 Character Width (UINT)111
12.0.9 Character Height (UINT)111
12.0.10 Delta X (SINT)112
12.0.11 Character Data112
13.0 Banner Printing113
13.0.1 Media Source113
13.0.2 Margins114
13.0.3 Command Sequence114
13.0.4 Moving to a New Logical Page114
13.0.5 Unloading Continuous Media114
13.0.6 Power-On with Continuous Media115
13.0.7 Power-Off with Continuous Media115
13.0.8 Printing Cutsheet with Z-Fold Media115
13.1 Sample HP PCL for a Banner Print Job115
14.0 HP PCL Code Samples116
14.1 Page Formatting Program Example116
14.2 Commands Sent to Printer118
14.3 3-Plane Color Graphics119
14.4 4-Plane Color Graphics120
15.0 Printer Commands122
16.0 Other Resources for Assistance124
16.1 HP Developer Exchange124
16.2 Comments & Feedback124
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide9
Page 10
How This Developer’s Guide Works
4.0How 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.
A
4.0.1Page Length
TABLE 1.Page Length - Esc & ll # P
E
F
#
Value
0
1 .. n
Default
Range
G
DJ600
DJ610C
DJ660C
44444444444444444444444444444444
44444444444444444444444444444444
0 (66 lines per page)
1 to maximum supported paper size - Command is ignored for out of
range values
D
Designates the number of lines on the logical page at the current VMI (Vertical Motion Index)
setting.
I
This command performs the following actions:
B
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
le Ch
44
Prints any unprinted pages.
44
Ejects the current page if printable data has been received (FF-CR).
44
Sets text length, top margin, left margin, and right margin to user defaults.
44
Moves CAP to the left edge of the logical page at the top of form.
Samp
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.
C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
art Only!
H
HP2000C
Page length set to 66 lines
Page length is set, in number of
lines, at the current lpi
EFFECT
4.0.2The Command Description Page
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.3Command Name
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.
10HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
B
A
Page 11
How This Developer’s Guide Works
4.0.4Escape Sequence
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.5Command Summary
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.6Command Usage Table
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.
C
D
E
4.0.7Command Options
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.8Command Option Recognition Grid
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 ("44") 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.9Effect of Command Options
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.
F
H
G
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide11
Page 12
How This Developer’s Guide Works
!
4.0.10Detailed Command Description
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.11Important 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 exclama-tion 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.
I
12HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 13
Introduction to HP PCL
!
5.0Introduction to HP PCL
5.1History 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.1What are Printer Commands?
HP PCL language printer commands provide access to printer features. There are two general types of HP PCL language commands:
44
Control codes
44
HP PCL commands
5.1.2Control 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.3HP 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 Guide13
Page 14
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.2Syntax of Escape Sequences
There are two forms of HP PCL escape sequences: two-character escape sequences and
parameterized escape sequences.
5.2.1Two-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:
Esc E a two-character escape sequence used for resetting the printer.
Esc 9a two-character escape sequence used for resetting the left and right margins.
5.2.2Parameterized 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.
XParameterized Character - A character from the ASCII table within the range 33-47 deci-
mal ("!" through "/") indicating that the escape sequence is parameterized.
yGroup 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 rep-
resented 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.
14HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 15
Introduction to HP PCL
!
ziParameter 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 & l l 1 O
Escape
Character
Termination
Character
Value
Parameterized
Field
Character
Group
Character
44
Some escape sequences shown in this manual contain spaces between characters for
clarity. Do not include these spaces when using escape sequences.
44
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 Guide15
Page 16
Introduction to HP PCL
Esc & ll 1 o 2 A
Escape
Character
Parameterized
Character
Group
Character
Value
Parameter
Character
Termination
Character
Field
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:
44
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".
44
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.
44
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.
16HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 17
The Page
Paper Size
6.0The Page
6.1Logical 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
Top Margin
Left Margin
Text Length
Bottom Margin
Unprintable Region
Page
Page
Text Area
Page
Perf Skip
Zone (1 inch)
Right Margin
Logical Page
Perf Skip
Zone (1 inch)
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide17
Page 18
The Page
6.2Page 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.1Current 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
18HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 19
The Page
point (0,0) may change. The point (0,0) then, does not necessarily equate to the top of the
paper.
CAP Position
(0,0)
X
Y
ABCD...
Logical Page
Portrait
Top Margin
(0,0)
Y
Top Margin
X
ABCD...
Logical Page
Landscape
6.2.2CAP 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 Guide19
Page 20
The Print Environment
!
7.0The 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.
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.
20HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 21
Merged Text and Graphics
!
8.0Merged 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 Guide21
Page 22
Programming Hints
9.0Programming Hints
The following are overall guidelines to keep in mind when programming with HP PCL printer
language commands.
9.0.1Follow 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.2Leverage 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.
44
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.
44
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.
44
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.3Priority 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.
22HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 23
Programming Hints
9.0.4Priority 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:
44
End Raster Graphics
44
Raster Graphics Resolution
44
Raster Graphics Width
44
Raster Graphics Compression Method
44
Start Raster Graphics
44
Transfer Raster Graphics Row(s) with or without Relative Vertical Pixel Movement
44
End Raster Graphics
9.0.5Time Savers
The following list provides some helpful hints to make your program more efficient:
44
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.
44
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.
44
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.
44
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.
44
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.
44
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 Guide23
Page 24
Programming Hints
44
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.
44
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.
44
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
24HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 25
HP PCL Commands
10.0HP PCL Commands
10.1Control Codes and Special Character Codes
The following commands initiate printer control functions:
10.1.1Escape
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.2Testing 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.
10.3Print Modes
10.3.1Transparent Data Mode
TABLE 2.Transparent Data Mode - Esc & p # X
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
1 . . n
Default
Range
44444444444444444444444444444444
n/a
0 to 32767 - command is ignored for out of range values
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.
DJ970C
HP2000C
Prints all data rather than executing it.
EFFECT
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide25
Page 26
HP PCL Commands
10.3.2Display Functions Mode ON
TABLE 3.Display Functions Mode ON - Esc Y
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
1 . . n
Default
44444444444444444444444444444444
off
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:
44
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.
44
All character codes, except CR and Esc Z, either mark the paper or produce a blank
space.
DJ890C
DJ895C
DJ970C
HP2000C
Display Functions turned on
EFFECT
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.
10.3.3Display Functions Mode OFF
TABLE 4.Display Functions Mode OFF - Esc Z
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
1 . . n
Default
44444444444444444444444444444444
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.
DJ890C
DJ895C
DJ970C
HP2000C
Display Functions turned off
EFFECT
26HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 27
HP PCL Commands
!
10.4Text Enhancements
10.4.1Enable Underline
TABLE 5.Enable Underline -Esc & d # D
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
0
1
2
3
4
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444
off
0 to 4 - (default is selected for values >4 or <0)
DJ890C
DJ895C
DJ970C
HP2000C
Default - single underline
Single underline, fixed location
below the baseline
Double underline, fixed location
below the baseline
Single underline, font
dependent (“floating”) location
Double underline, font
dependent (“floating”) location
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 Guide27
Page 28
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.
10.4.2Disable Underline
TABLE 6.Disable Underline -Esc & d @
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
n/a
44444444444444444444444444444444
DJ890C
DJ895C
DJ970C
HP2000C
Underlining is OFF
EFFECT
Disables automatic text underlining.
10.4.3Line Termination
TABLE 7.Line Termination - Esc & k # G
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
0
1
2
3
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
0
0 to 3 - Command is ignored for out of range values
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.
28HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 29
HP PCL Commands
10.4.4End-of-Line Wrap
TABLE 8.End-of-Line Wrap - Esc & s # C
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
0
1
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
1
0 to 1 - Command is ignored for out of range values
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 Guide29
Page 30
10.5Job Control
10.5.1Reset
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.
44
“Floats” CAP.
44
Resets all programmable features to their user default values.
44
Deletes temporary fonts.
44
Does not delete downloaded permanent features.
44
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.
HP PCL Commands
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.
30HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 31
HP PCL Commands
!
10.6Printer Control
10.6.1Gray Balance
TABLE 9.Gray Balance - Esc * b # B
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
0
1
2
Default
Range
44
44
44
Device dependent
0 to 2 - Command is ignored for out of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Set gray balance to device
default (enabled or disabled)
Enable gray balancing
Disable gray balancing
EFFECT
Print Mode
EconoFast
Normal
Best
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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide31
Page 32
HP PCL Commands
!
10.6.2Dry Timer
TABLE 10.Dry Timer - Esc & b # T
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
0
1..1200
Default
Range
44
44
0
0 to 1200 - Command is ignored for out of range values
Sets a minimum dry time between pages to ensure that a previous page dries before the next
page is dropped on top of it.
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Dry Timer is off
Dry timer is on - time set for
specified number of seconds
EFFECT
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 ModeNormal ModeBest Mode
Media Type
Plain Paper0 sec.0 sec.15 sec.15 sec.25 sec.15 sec.
Special Paper0 sec.0 sec.15 sec.15 sec.25 sec.15 sec.
Transparency60 sec.120 sec.180 sec.360 sec.240 sec. 360 sec.
BlackColorBlackColorBlackColor
32HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 33
HP PCL Commands
!
10.6.3Print Quality
TABLE 11.Print Quality - Esc * o # m/M
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
-1
0
1
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
0
-1 to 1 - Command is ignored for out of range values
The Print Quality (PQ) command, in conjunction with the Media Type (Esc & ll # M) com-
mand, provides a high-level print mode specifier and replaces the need for the following commands:
DJ890C
DJ895C
DJ970C
HP2000C
EconoFast mode selected
Normal quality selected
Best quality selected
EFFECT
44
Font Quality (Primary)Esc ( s # Q
44
Font Quality (Secondary)Esc ) s # Q
44
Raster Graphics QualityEsc * r # Q
44
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 equiv-
alent device reset occurs.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide33
Page 34
HP PCL Commands
!
10.6.4Media Type
TABLE 12.Media Type -Esc & ll # M
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
0
1
2
3
4
5
6
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
0
0 to 4 - Command is ignored for out of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Plain paper
Bond paper
Special paper (HP Premium
Inkjet Paper)
Glossy film/Photo media
Transparency film
Quick Dry Glossy
44
Quick Dry Transparency
44
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 cur-
rent 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.
10.6.5Unit of Measure
TABLE 13.Unit of Measure -Esc & u # D
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
300
600
Default
Range
44444444
44444444
Device dependent
300,600 - command is ignored for all other values
DJ890C
DJ895C
DJ970C
HP2000C
300 units per inch
600 units per inch
EFFECT
34HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 35
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.
44
Move CAP Vertical (PCL Units) - Esc * p # Y
44
Move CAP Horizontal (PCL Units) - Esc * p # X
44
Vertical Rectangle Size (PCL Units) - Esc * c # B
44
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:
44
Move CAP Horizontal (Columns) - Esc & a # C
44
Horizontal Tab - <HT>
44
Space - <SP>
44
Backspace - <BS>
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 Guide35
Page 36
HP PCL Commands
10.7Printer Diagnostics
10.7.1Self-Test
Esc z
Initiates printer self-test, which instructs the printer to perform the following actions:
44
Process all data preceding the self-test.
44
Perform Esc E reset (ejecting the page if printable data has been sent). Permanent downloaded fonts are not deleted.
44
Move CAP to the top of form, if not already there.
44
Perform the self-test.
44
After self-test, move to the top of form, if not already there.
44
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.
36HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 37
HP PCL Commands
10.8Page Control
The following commands facilitate the definition of a print job page.
10.8.1Page Length
TABLE 14.Page Length - Esc & ll # P
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
0
1 .. n
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
0 (66 lines per page)
1 to maximum supported paper size - Command is ignored for out of
range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Page length set to 66 lines
Page length is set, in number of
lines, at the current lpi
EFFECT
Designates the number of lines on the logical page at the current VMI (Vertical Motion Index)
setting.
This command performs the following actions:
44
Prints any unprinted pages.
44
Ejects the current page if printable data has been received (FF-CR).
44
Sets text length, top margin, left margin, and right margin to user defaults.
44
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
Letter6688
Legal84112
A47093
Executive6384
6 lpi8 lpi
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide37
Page 38
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.
10.8.2Page Size
TABLE 15.Page Size - Esc & ll # A
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
n
Default
Range
44444444444444444444444444444444
Regionally dependent (US Letter for printers sold in North America)
limited to values specified in tables below - Command is ignored for out
DJ870C
of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Page size set to that indicated
by value index in the following
tables
EFFECT
Designates the size of the media to be used.
This command performs the following actions:
44
Prints any unprinted pages.
44
Ejects the current page if printable data has been received (FF-CR).
44
Sets text length, top margin, left margin, and right margin to user defaults.
44
Moves CAP to the left edge of the logical page at the top margin.
44
Disables the automatic macro overlay.
38HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 39
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
ValuePage DescriptionPage Size
1US Executive7.25” x 10.5”
2US Letter8.5” x 11”
3US Legal8.5” x 14”
25ISO and JIS A5148.5 mm x 210 mm
26ISO and JIS A4210 mm x 297 mm
45JIS B5182 mm x 257 mm
101Custom5.00” x 5.83”” through 8.5” x 14
(127 mm x 148 mm-216mm x 356mm)
TABLE 17.Selectable Card Sizes
ValueCard DescriptionCard Size
71Japanese Hagaki Postcard100 mm x 148 mm
72Japanese Oufuku-Hagaki Postcards148 mm x 200 mm
73ISO and JIS A6 Card105 mm x 148 mm
74US Index Card4” x 6”
75US Index Card5” x 8”
783x5 Index Card3” x 5”
TABLE 18.Selectable Envelope Sizes
ValueEnvelope DescriptionEnvelope Size
-81U.S. Commercial #10 (portrait)41/8” x 91/2”
81U.S. Commercial-10 (landscape)41/8” x 91/2”
90International DL110 mm x 220 mm
92International C6114 mm x 162 mm
109U.S. A24 3/8” x 5 3/4”
112Japanese Envelope #2111.1 mm x 146 mm
(HP 2000C Only)
(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 Guide39
Page 40
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 & ll # P) command.
10.8.3Media Source
TABLE 19.Media Source - Esc & ll # H
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
-1
0
1
3
Default
Range
4444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
0
-1, 0, 1, 3 - Command defaults for out of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Load z-fold media (banners)
Print current page (source is
unchanged)
Load from tray
Envelope feed
EFFECT
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.
40HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 41
HP PCL Commands
10.8.4Orientation
TABLE 20.Orientation - Esc & ll # O
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
0
1
2
3
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
0
0 to 3 - Command is ignored for out of range values
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:
44
Prints all data received before the command.
44
Executes a formfeed and carriage return.
44
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 Guide41
Page 42
HP PCL Commands
10.8.5Horizontal Motion Index
TABLE 21.Horizontal Motion Index (HMI) - Esc & k # H
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
44444444444444444444444444444444
Determined by the pitch or height (x 112%) value in the default font
HP2000C
descriptor
Range
0 to 126.99 - Command is ignored for out of range values
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.
EFFECT
Number of 1/120 inch
increments
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 <SI> and <SO>.
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.
42HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 43
HP PCL Commands
10.8.6Vertical Motion Index
TABLE 22.Vertical Motion Index (VMI) - Esc & ll # C
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
n
Default
Range
44444444444444444444444444444444
8
0 to Current logical page length up to 32767 - Command is ignored for
DJ970C
out of range values
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.
HP2000C
Number of 1/48 inch increments
between rows
EFFECT
This command performs the same functions as Line Spacing (Esc & l# D), except the mea-
surement 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 Guide43
Page 44
HP PCL Commands
!
!
10.8.7Line Spacing
TABLE 23.Line Spacing - Esc & ll # D
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
n
Default
Range
44444444444444444444444444444444
6
0 to Current logical page length up to 32767 - Command is ignored for
DJ880C
out of range values
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:
DJ890C
DJ895C
DJ970C
HP2000C
Sets the number of lines printed
per inch
EFFECT
lpi = 48.0/ VMI
In HP DeskJet printers, a value of 0 sets line spacing to 12 lpi.
10.8.8Clear Horizontal Margins
TABLE 24.Clear Horizontal Margins - Esc 9
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
n/a
44444444444444444444444444444444
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.
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.
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Default left and right margins
EFFECT
44HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 45
HP PCL Commands
!
10.8.9Left Margin
TABLE 25.Left Margin - Esc & a # L
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
n
Default
Range
44444444444444444444444444444444
0
0 to right bound of logical page - Command is ignored for out of range
DJ870C
values
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.
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Sets the left margin to the left
edge of the specified column
EFFECT
Column 0 is the first column on the left edge of the logical page, not the physical page.
10.8.10Right Margin
TABLE 26.Right Margin - Esc & a # M
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
n
Default
Range
44444444444444444444444444444444
Logical page right bound
Current left margin to logical page left bound - Command is ignored for
DJ880C
out of range values
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.
DJ890C
DJ895C
DJ970C
HP2000C
Sets the right margin to the right
edge of the specified column
EFFECT
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 Guide45
Page 46
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.
10.8.11Top Margin
TABLE 27.Top Margin - Esc & ll # E
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
n
Default
Range
44444444444444444444444444444444
0.5 inch
0 to logical page length - Command is ignored for out of range values
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Top margin is set to specified
number of lines at the current
lines-per-inch setting
EFFECT
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.
46HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 47
HP PCL Commands
10.8.12Text Length
TABLE 28.Text Length - Esc & ll # F
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
Range
44444444444444444444444444444444
Logical page length - top margin - 1/2 inch
a
Current left margin to logical page left bound - Command is ignored for
HP2000C
out of range values
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.
EFFECT
Sets length of the text area, in
lines, from the top margin
Text length determines the bottom margin when perforation skip is enabled. Text length is
ignored when perforation skip is disabled.
10.8.13Perforation Skip Mode
TABLE 29.Perforation Skip Mode - Esc & ll # L
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
Value
0
1
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
1
0, 1 - Command is ignored for other values
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 Guide47
Page 48
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.
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.
48HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 49
HP PCL Commands
!
10.9Horizontal Positioning Commands
The following commands provide for cursor movement on the horizontal axis.
10.9.1Backspace
<BS>
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), <BS> 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 <BS> centers the overstriking character with the character
being over-struck. After printing the overstrike character, CAP is at the same position as
before the <BS>. Multiple backspaces each move back the distance of the last printable character or space.
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.
10.9.2Carriage Return
<CR>
Moves CAP to the left margin on the current row.
10.9.3Space
<SP>
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.4Linefeed
<LF>
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide49
Page 50
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.5Formfeed
<FF>
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)
Multiple formfeeds in sequence are not interpreted as a single formfeed.
10.9.6Horizontal Tab
HP PCL Commands
<HT>
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:
44
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.
44
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.
44
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.
50HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 51
HP PCL Commands
!
10.9.7Move CAP Horizontal (Decipoints)
TABLE 30.Move CAP Horizontal (Decipoints) - Esc & a # H
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
Range
44444444444444444444444444444444
n/a
-32767 to +32767 (up to logical page right and left limits, rounded to the
HP2000C
Moves CAP horizontally by the
specified number of decipoints
(1/720 inch)
nearest HP PCL unit or decimal point) - Command is ignored for out of
range values
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.
EFFECT
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 deci-
points 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 Guide51
Page 52
HP PCL Commands
!
10.9.8Move CAP Horizontal (Columns)
TABLE 31.Move CAP Horizontal (Columns) - Esc & a # C
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
Range
44444444444444444444444444444444
n/a
-32767 to +32767 (up to logical page right and left limits, rounded to the
HP2000C
Moves CAP horizontally by the
specified number of columns
nearest HP PCL unit) - Command is ignored for out of range values
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).
EFFECT
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.
10.9.9Move CAP Horizontal (HP PCL Units)
TABLE 32.Move CAP Horizontal (HP PCL Units) - Esc * p # X
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
Range
44444444444444444444444444444444
n/a
-32767 to +32767 (up to logical page right and left limits, rounded to the
HP2000C
Moves CAP horizontally by the
specified number of HP PCL
units
nearest HP PCL unit) - Command is ignored for out of range values
EFFECT
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.
52HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 53
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 Guide53
Page 54
HP PCL Commands
10.10Vertical Positioning Commands
The following commands provide cursor positioning on the vertical axis.
10.10.1Move CAP Vertical (Rows)
TABLE 33.Move CAP Vertical (Rows) - Esc & a # R
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
n
Default
Range
44444444444444444444444444444444
n/a
-32767 to +32767 - Command is ignored for out of range values
DJ970C
HP2000C
Moves CAP to the same
column position on a new line
based on the active line spacing
EFFECT
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:
44
Positive relative positioning allows movement to the next logical page.
44
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.
54HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 55
HP PCL Commands
10.10.2Move CAP Vertical (Decipoints)
TABLE 34.Move CAP Vertical (Decipoints) - Esc & a # V
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
Range
44444444444444444444444444444444
n/a
-32767 to +32767 - Command is ignored for out of range values
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 down-
ward and upward relative to CAP, respectively. The absence of a sign indicates absolute
movement: CAP moves an absolute distance from the top margin.
HP2000C
EFFECT
Moves CAP to a new position
along the vertical axis
Except for the following, the effect of this command is limited to the logical page:
44
Positive relative positioning allows movement to the next logical page.
44
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 deci-
points for dot addressing.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide55
Page 56
HP PCL Commands
10.10.3Move CAP Vertical (HP PCL Units)
TABLE 35.Move CAP Vertical (HP PCL Units) - Esc * p # Y
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
Range
44444444444444444444444444444444
n/a
-32767 to +32767 - Command is ignored for out of range values
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 down-
ward and upward relative to CAP, respectively. The absence of a sign indicates absolute
movement: CAP moves an absolute distance from the top margin.
HP2000C
Moves CAP specified number
of HP PCL units along the Y
axis
EFFECT
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:
44
Positive relative positioning allows movement to the next logical page.
44
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”.
56HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 57
HP PCL Commands
10.11Font Selection
10.11.1Font 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.2Font Symbol Set
TABLE 36.Font Symbol Set (Primary) -Esc ( ID
Font Symbol Set (Secondary) -Esc ) ID
#
Value
ID
Default
Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
44444444444444444444
DJ890C
DJ895C
DJ970C
HP2000C
Symbol set identification value
from the table
EFFECT
10U - (PC-8, Code Page 437)
n/a
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 Guide57
Page 58
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.
IDSymbol Set NameIDSymbol Set Name
0AMath-7 (same as 0M)1GISO 21: German
0BLine Draw-7 (same as 0L)8GGreek-8
0CHP Large Characters (264x)9GWindows 3.1 Latin/Greek
0DISO 60: Danish/Norwegian10GPC-851 Latin/Greek
1DISO 61: Norwegian Version 212GPC-8 Latin/Greek
2DDevanagari0HHebrew-7
0ERoman Extension7HISO 8859/8 Latin/Hebrew
1EIS04: United Kingdom8HHebrew-8
9EWindows 3.1 Latin 215HPC-862 Latin/Hebrew
0FISO 25: French (obsolete)0IISO 15: Italian
1FISO 69: French6JMicrosoft Publishing
0GHP German7JDeskTop
8JDocument36LPi Set #6
9JPC-10040MMath-7
10JPS Text1MTech-7
11JPS ISO Latin 15MPS Math
12JMC Text6MVentura Math
13JVentura International8MMath-8
14JVentura US10MUniversal Greek & Math Pi
16JSwash Characters11MTEX Math Extension
17JSmall Caps and Old Style Figures12MTEXMath Symbol
18JOld Style Figures13MTEX Math Italic
19JFractions 19MSymbol
21JLining Figures 0NISO 8859/1 Latin 1
22JSmall Caps and Lining Figures 2NISO 8859/2 Latin 2
23JAlternate Caps 3NISO 8859/3 Latin 3
0KISO 14: JIS ASCII 4NISO 8859/4 Latin4
lKISO 13: Katakana 5NISO 885919 Latin 5
2KISO 57: Chinese 6NISO8859/10 Latin 6
8KKana-8 10NISO 885915 Latin/Cyrillic
9KKorean-8 0OOCR-A
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide59
Page 60
HP PCL Commands
10.11.3Font Spacing
TABLE 37.Font Spacing (Primary) - Esc ( s # P
Font Spacing (Secondary) - Esc ) s # P
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
Value
0
1
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
0
0, 1 - Command is ignored for other values
Designates inter-character spacing as either proportional or fixed.
DJ895C
DJ970C
HP2000C
Fixed spacing
Proportional spacing
EFFECT
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.4Font Pitch
TABLE 38.Font Pitch (Primary) - Esc ( s # H
Font Pitch (Secondary) - Esc ) s # H
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
n
Default
Range
44444444444444444444444444444444
10 cpi
> 0.0 - valid to 2 decimal places - Command is ignored for out of range
DJ890C
values
DJ895C
DJ970C
HP2000C
Inter character spacing for
current font is set
EFFECT
Designates the horizontal spacing of a fixed-space or dual-fixed space (bitmap or scalable)
font in characters per inch (cpi).
60HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 61
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.5Font Height
TABLE 39.Font Height (Primary) - Esc ( s # V
Font Height (Secondary) - Esc ) s # V
#
Value
n
Default
Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
44444444444444444444444444444444
HP2000C
Height for current font is set
EFFECT
12 points
> 0.0 - valid to 2 decimal places - Command is ignored for out of range
values.
Specifies font height in points (1/72 inch).
If the requested height is unavailable, the closest heights are chosen for the next selection cri-
teria. 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 Guide61
Page 62
HP PCL Commands
10.11.6Font Style
TABLE 40.Font Style (Primary) - Esc ( s # S
Font Style (Secondary) -Esc ) s # S
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
n
Default
Range
44444444444444444444444444444444
0
0 to 32767 - values exceeding range are ignored
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.
DJ890C
DJ895C
DJ970C
HP2000C
Specified characteristics are
applied to font style request
EFFECT
Style Word = Posture + (4 x Width) + (32 x Structure)
15 14 10 9 5 4 2 1 0
Xreservedstructurewidthposture
Value (#) =Posture
0Upright
1Italic
2Alternate Italic
3Reserved
Value (#) =Width
0Normal
1Condensed
2Compressed or extra condensed
3Extra compressed
4Ultra compressed
5Reserved
6Extended or expanded
7Extra extended or extra expanded
62HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 63
HP PCL Commands
Value (#) =Structure (style word partial sum multiplied by 32)
0Solid
1Outline
2In-line
3Contour, Edge effects
4Solid with shadow
5Outline with shadow
6In-line with shadow
7Contour with shadow
8Patterned (complex patterns, subjective to typeface)
12-15Patterned with shadow
16Inverse
17Inverse in open border
18-30Reserved
31Unknown structure
Default = 0
Range = 0 to 32767 (values greater than 32767 are clamped)
MATCHING ALGORITHM
The following procedure matches requested styles with available styles:
44
Printers recognizing only style values 0, l, and 2 discard requests for larger values.
44
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.
44
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 Guide63
Page 64
HP PCL Commands
10.11.7Font Stroke Weight
TABLE 41.Font Stroke Weight (Primary) - Esc ( s # B
Font Stroke Weight (Secondary) - Esc ) s # B
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
-7
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
7
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
0
-7 to 7 (less than -7 maps to -7; greater than 7 maps to 7)
DJ970C
HP2000C
Ultra thin
Extra thin
Thin
Extra light
Light
Demi-light
Semi-light
“Book” or “text” weight
Semi-bold
Demi-bold
Bold
Extra bold
Black
Extra black
Ultra black
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 stan-
dard 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.
64HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 65
HP PCL Commands
!
10.11.8Font Selection by ID
TABLE 42.Font Selection by ID (Primary) - Esc ( # X
Font Selection by ID (Secondary) - Esc ) # X
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
n
Default
Range
44444444444444444444444444444444
n/a
0 to 32767 - values exceeding range are ignored
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.
DJ970C
HP2000C
Font with indicated ID is
selected
EFFECT
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 Guide65
Page 66
HP PCL Commands
!
10.12Downloading 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.
10.12.1Font ID
TABLE 43.Font ID - Esc * c # D
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
Value
n
Default
Range
4444444444444444
0
0 to 32767 - values exceeding range are ignored
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
The subsequently downloaded
font is given the specified ID
number
EFFECT
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.
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.
66HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 67
HP PCL Commands
10.12.2Download Font
TABLE 44.Download Font -Esc ) s # W [font definition]
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
Range
4444444444444444
n/a
0 to 32767 - command is ignored for invalid descriptor or insufficient
HP2000C
Downloads a font definition and
assigns the font the current font
ID
memory and the font descriptor data is discarded
This command must be sent prior to downloading the characters in the font.
EFFECT
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”.
44
Bitmap - Older definition for bitmap fonts. Not recommended for new devices.
44
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 Guide67
Page 68
HP PCL Commands
10.12.3Character Code
TABLE 45.Character Code -Esc * c # E
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
n
Default
Range
4444444444444444
0
0 to 65535 - command is ignored for out of range values
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.
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Establishes a decimal ASCII
code for the next character
downloaded
EFFECT
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.
10.12.4Download Character
TABLE 46.Download Character - Esc ( s # W [Character Definition]
#
Value
n
Default
Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
4444444444444444
n/a
0 to 32767 - command is ignored for out of range values
HP2000C
Downloads a character
definition with the specified (n)
number of bytes
EFFECT
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
68HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 69
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.
10.12.5Font Control
TABLE 47.Font Control - Esc * c # F
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
0
1
2
3
4
5
Default
Range
4444444444444444
4444444444444444
4444444444444444
4444444444444444
4444444444444444
4444444444444444
n/a
0 to 5 - Command is ignored for other values, or if no font has the spec-
DJ870C
ified ID
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Delete all fonts (temp,
permanent, and soft)
Delete all temporary fonts
(temp, permanent, and soft)
Delete font (specified by last
Font ID)
Delete character (last Font ID
and Character Code)
Make font temporary (specified
by last Font ID)
Make font permanent (specified
by last Font 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 Guide69
Page 70
HP PCL Commands
10.13Raster 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.1Raster 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.2Commands 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.
Configure Raster DataEsc * g # W
Simple ColorEsc r # U
Source Raster WidthEsc r # S
Start RasterEsc r # A
10.13.3Commands Allowed in Raster Mode
The following commands may be used in raster mode without implicitly ending raster mode.
Compression MethodEsc b # M
Seed Row SourceEsc b # S
Transfer Raster by Row/BlockEsc * b # W
Transfer Raster by PlaneEsc b # V
Y OffsetEsc b # Y
70HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 71
HP PCL Commands
10.13.4Start Raster
TABLE 48.Start Raster - Esc * r # A
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
0
1
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
0
0 to 1 - Out of range values default to 0
Starts raster mode and specifies the starting position of the raster image.
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Start graphics at logical page
left boundary (current vertical
position)
Start graphics at CAP (current
vertical and horizontal position)
EFFECT
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.
10.13.5End Raster
TABLE 49.End Raster - Esc * r C
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
n/a
Default
Range
44444444444444444444444444444444
n/a
n/a
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:
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Printer returns to text mode
command processing
EFFECT
44
Resets the seed row to zeros.
44
Re-enables commands locked out of raster mode by Esc * r # A.
44
Defaults the compression method to 0.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide71
Page 72
HP PCL Commands
!
!
44
Resets the left graphics margin to 0.
44
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.
44
Resets the plane pointer to 1.
If a value field is received, it is ignored and the command is still executed.
10.13.6Raster Resolution
TABLE 50.Raster Resolution - Esc * t # R
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
75
100
150
300
600
Default
Range
44444444444444444444444444444444
444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
75
75, 100, 150, 300, 600 - Command is ignored for other values
DJ890C
DJ895C
DJ970C
HP2000C
graphics data printed at 75 dpi
graphics data printed at 100 dpi
graphics data printed at 150 dpi
graphics data printed at 300 dpi
graphics data printed at 600 dpi
(applies to black data only)
EFFECT
a
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.
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.
72HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 73
HP PCL Commands
!
10.13.7Source Raster Width
TABLE 51.Source Raster Width - Esc * r # S
#
Value
n
Default
Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
44444444444444444444444444444444
Raster region width is set to
specified number of pixels (at
current resolution)
Logical page width
0 to 32767 - (clamped to right logical page boundary minus left graphics
EFFECT
a
margin)
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:
44
The distance specified by the Source Raster Width (Esc * t # H) command.
44
The right edge of the logical page, if the specified width would extend outside the printable
area.
44
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:
44
CAP (explicit Start Raster).
44
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 Guide73
Page 74
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.
10.13.8Y Offset
TABLE 52.Y Offset - Esc * b # Y
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
DJ870C
44444444444444444444444444444444
Default
Range
n/a
-32767 to 32767 - Command is ignored for out of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Cursor is moved specified
number of raster lines of vertical
movement
EFFECT
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.
Movement by this command is based on the graphics resolution.
74HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 75
HP PCL Commands
10.14Raster 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.
10.14.1Transfer Raster by Plane
TABLE 53.Transfer Raster by Plane - Esc * b # V [data]
#
Value
Default
Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
44444444444444444444444444444444
HP2000C
Specified number of bytes of
graphics data for a single plane
of data is set to the printer. The
row pointer is not incremented.
EFFECT
n/a
0 to 32767 - Command is ignored for out of range values
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 Guide75
Page 76
HP PCL Commands
10.14.2Transfer Raster by Row/Block
TABLE 54.Transfer Raster by Row or Block - Esc * b # W [data]
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
Range
44444444444444444444444444444444
n/a
0 to 32767 - Command is ignored for out of range values
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.
HP2000C
Following specified number of
data bytes sent to the printer as
K data
EFFECT
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).
76HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 77
HP PCL Commands
10.15Raster 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.
10.15.1Compression Method
TABLE 55.Compression Method - Esc * b # M
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
Value
0
1
2
3
9
Default
Range
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
0
0-3, 9 - Out of range values default to 0
DJ895C
DJ970C
HP2000C
Unencoded
Run-length encoding
Tagged Image File Format
(TIFF) revision 4.0 “Packbits”
encoding
Delta row encoding
Compressed replacement delta
row encoding
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 Guide77
Page 78
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 (“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:
78HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 79
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 54 0
Replacement count (1 - 8)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 Guide79
Page 80
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 WRepeat the previous row. The seed row is unchanged
Esc b 1 YMove down one raster row. Zero the seed row.
Esc b 0 YMove 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:
80HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 81
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.
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.
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 BitOffset CountReplacement Count
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide81
Page 82
HP PCL Commands
Control Bit:
Offset Count:The number of bytes the replacement data is offset from the current po-
Replacement
Count:
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.
Determines whether the replacement data is encoded, and also the bit
boundaries of the command byte’s other two fields.
sition in the seed row.
The number of consecutive data bytes to be replaced.
7 6 32 0
Control Bit = 0Offset CountReplacement 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 off-
set 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 replace-
ment bytes may be added.
7 6 54 0
Control Bit = 1Offset CountReplacement Count
82HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 83
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:
44
The Cyan plane would use the Cyan plane from the previous row
as a seed plane.
44
The Magenta plane would use the Magenta plane from the previous
row as a seed plane.
44
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:
44
The Cyan plane would use the Yellow plane from the previous row as
a seed plane.
44
The Magenta plane would use the Cyan plane from the current row
as a seed plane.
44
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 Guide83
Page 84
HP PCL Commands
!
!
10.16Color
10.16.1Simple Color
TABLE 56.Simple Color - Esc * r # U (Also known as Set Planes Per Row)
#
Value
1
-3
3
-4
Default
Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
44444444444444444444444444444444
1
-4, -3, 1, 3 - Command is ignored for out of range values
HP2000C
Single plane K palette
3 planes, device CMY palette
3 planes, device RGB palette
4 planes, device KCMY palette
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 exam-
ple 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.
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
84HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 85
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 RowColorData Pattern
1White (no ink)0
Black1
3-Plane CMY Color Palette (value = -3)
Planes per RowColor
Printed
3White (no
ink)
Yellow001
Magenta010
Red011
Cyan100
Green101
Blue110
Composite
Black
Data Plane Pattern
CMY
000
111
3-Plane RGB Color Palette (Value = 3)
Planes per RowData Plane PatternColor
RGB
3000Composite
001Blue
010Green
011Yellow
100Red
101Magenta
110Cyan
111White (no
Printed
Black
ink)
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide85
Page 86
HP PCL Commands
4 Plane (KCMY) Color Palette (value = -4)
Planes per RowColor PrintedData Plane Pattern
KCMY
4White0000
Yellow0001
Magenta0010
Red0011
Cyan0100
Green0101
Blue0110
Composite
Black
Black1000
Black/Yellow1001
Black/Magenta1010
Black/Red1011
Black/Cyan1100
Black/Blue1101
Black/Green1110
Black1111
0111
86HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 87
HP PCL Commands
!
10.16.2Foreground Color
TABLE 57.Foreground Color - Esc * v # S
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
n
Default
Range
44444444444444444444444444444444
0
0 to the size of the current palette-1
DJ890C
Out of range values are mapped in to a new index via modulo (palette
size)
All HP PCL marking entities utilize foreground color, which is selected by Esc * v # S from the
current palette.
DJ895C
DJ970C
HP2000C
Text will be printed in the color
specified by the given index
EFFECT
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.
44
Text characters
44
Solid or monochrome patterned rectangular area fills (rules) (800, 855, 870, 890 only)
44
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 Guide87
Page 88
HP PCL Commands
TABLE 58.Single Plane (black) Palette
Planes Per RowIndexColor
10White (no ink)
1Black
TABLE 59.Three Plane (CMY) Color Palette
Planes per RowIndexColor
30White (no ink)
1Cyan
2Magenta
3Blue
4Yellow
5Green
6Red
7 Composite Black
TABLE 60.Three Plane (RGB) Color Palette
Planes per RowIndexColor
30Composite Black
1Red
2Green
3Yellow
4Blue
5Magenta
6Cyan
7 White (no ink)
88HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 89
HP PCL Commands
TABLE 61.Four Plane (KCMY) Color Palette
Planes per RowIndexColor Printed
40White (no ink)
1White (no ink)
2Cyan
3Black
4Magenta
5Black
6Blue
7Black
8Yellow
9Black
10Green
11Black
12Red
13Black
14Composite Black
15Composite Black
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide89
Page 90
Fonts
11.0Fonts
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 FirstCode 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.1Standard Bitmap Font Definition
(format 0):
Byte15 (MSB) 87 (LSB) 0Byte
0Font Descriptor Size (64)1
2Descriptor Format (0)Symbol Set Type3
4Style MSBReserved5
6Baseline Position7
90HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 91
Fonts
11.2Resolution-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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide91
Page 92
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.1Font 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.2Descriptor Format (UBYTE)
Identifies the font as one of the following:
ValueFormat
0Standard Bitmap
20 Resolution-Specified Bitmap
Unrecognized values invalidate font creation.
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).
11.2.3Symbol Set Type (UBYTE)
Describes the font’s relationship to symbol sets.
ValueSymbol Set Organization
0Bound font, 7-bit (96 characters) - Character codes 32-127 [decimal] are print-
1Bound, 8-bit (192 characters) - Character codes 32-127 and 160-255 printable.
2Bound font, 8-bit (256 characters) - All codes are printable except 0, 7-15, and
10Unbound font, no symbol set affiliation - Character codes correspond to MSL
11Unbound font, no symbol set affiliation - Character codes correspond to Unicode
a
able
a
27
numbers (for Intellifont unbound scalable fonts)
numbers (for TrueType unbound scalable fonts)
92HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 93
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.4Font Type (UBYTE)
Identifies the font type as one of the following:
ValueSymbol Set Organization
07-bit (32 -1 27 are printable)
18-bit (32 -127 and 160 - 255 are printable)
2PC-8 (0 - 255 are printable except 7 -1 5 and 27)
316-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.5Style 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)
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)
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide93
Page 94
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.6Baseline Position (UINT)
HP DeskJet 600 and 85X Series printers ignore this field.
TrueType - Set to 0.
11.2.7Cell Width (UINT)
HP DeskJet 600 and 85X Series printers ignore this field.
11.2.8Cell Height (UINT)
HP DeskJet 600 and 85X Series printers ignore this field.
11.2.9Orientation (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.
HP DeskJet 600 and 85X Series printers will rotate the fonts to match the paper’s physical
coordinate system for various paper sizes.
94HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 95
Fonts
!
11.2.10Spacing (BOOL)
Specifies the type of font spacing. Fixed spacing is 0; proportional spacing is l; dual-fixed
spacing is 2.
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.
11.2.11Symbol 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.12Character Set (UINT16)
The Character Set field specifies the native mapping of a large font.
11.2.13Pitch (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 Guide95
Page 96
Fonts
!
11.2.14Height (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.15xHeight (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.16Width Type (SBYTE)
HP DeskJet printers ignore this field.
11.2.17Style LSB (UBYTE)
The least significant byte of the style word. Refer to the Style MSB field.
11.2.18Stroke 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.
ValueStroke Weight
-7Ultra thin
-6Extra thin
-5Thin
-4Extra light
-3Light
-2Demi-light
-1Semi-light
0Medium, Book, or Text
1Semi-bold
2Demi-bold
3Bold
4Extra bold
96HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 97
Fonts
ValueStroke Weight
5Black
6Extra black
7Ultra black
Default = 0
Range = -7 to 7 (less than -7 maps to -7; greater than 7 maps to 7)
11.2.19Typeface [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
MSBLSB
1514 1110 98 0
0VendorVersionTypeface Base Value
Typeface Base Value
0Line Printer or Line Draw
3Courier
4Helvetica
5Times Roman
6Letter Gothic
7 Script
8Prestige
. . .
Version (typeface word partial sum multiplied by 512)
01st version
1 2nd version
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide97
Page 98
Fonts
!
2 3rd version
3 4th version
Vendor (typeface word partial sum multiplied by 2048)
0Reserved for generic typeface selection.
1Reserved for HP use only.
2 Agfa Division, Miles Inc.
4Bitstream Inc.
6 Linotype Company
8 The Monotype Corporation plc
10Adobe 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.20Serif Style (UBYTE)
HP DeskJet 600 and 85X Series printers ignore this field.
11.2.21Quality
HP DeskJet 600 and 85X Series printers ignore this field.
98HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 99
Fonts
!
!
11.2.22Placement
HP DeskJet 600/800/900 & HP 2000 Series printers ignore this field.
11.2.23Underline 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 under-
line 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.
HP DeskJet 600 and 85X Series printers use this field for auto-underlining.
11.2.24Underline 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 6-
dot thick under- lines at 600 dpi.
Scalable Font - Should be ignored and set to 0. The Master Underline Height provides this
information.
HP DeskJet 600 and 85X Series printers use this field for auto-underlining.
11.2.25Text 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.26Text 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 Guide99
Page 100
Fonts
!
11.2.27First 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 SetTypeFirst Code/Last Code
0 32/127
1 32/127-160/255
2 0/255
10 Set to 0 (for unbound font)
11 Set to 0 (for unbound font)
11.2.28Last 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.29Pitch 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.
HP DeskJet 500 Series printers ignore this field. The HP DeskJet 600 and 85X Series
printers do not
11.2.30Height 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
100HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.