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

2015-02-09

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

Open the PDF directly: View PDF PDF.
Page Count: 124 [warning: Documents this large are best viewed by clicking the View PDF Link!]

HP DeskJet 600, 700, 800,
900 & HP 2000 Series
PCL Developer’s Guide
Hewlett-Packard Vancouver Site
To aid in HP PCL printer driver development
for HP DeskJet 600/700/800/900 & HP 2000
Series printers
Preface and Printing History
2 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
1.0 Preface and Printing History
The information contained in this document is subject to change without notice.
Hewlett-Packard makes no warranty of any kind with regard to this material, including,
but not limited to, the implied warranties of merchantability and fitness for a particular
purpose.
Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequen-
tial damages in connection with the furnishing, performance, or use of this material.
This document may not be photocopied, reproduced, modified, or translated without prior con-
sent of Hewlett-Packard Company.
Printing History
Edition 1 September 1995
Edition 2 March 1996
Edition 3 May 1996
Edition 4 May 1997
Edition 5 October 1997
Edition 6 December 1999, Edition 6.1 September 2001
© Copyright 1995, 1996, 1997, 1998, 1999, 2001 by Hewlett-Packard Company
18110 S.E. 34th Street, Vancouver, WA 98683, USA
About this Developer’s Guide
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 3
2.0 About this Developer’s Guide
2.1 Which printers are covered by this guide1
Throughout this HP PCL Developer’s Guide you will see printer names referenced. Here is a
list of actual names and the “Series” names used throughout this guide.
2.1.1 HP DeskJet 600 Series: 630C*, 640C*, and 656C*
HP DeskJet 600 - HP DeskJet 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
2.1.3 HP DeskJet 900 Series: 920C*, 940C*, 960C*, 980C*, and 990C*
HP DeskJet 930C, 950C, and 970C - HP DeskJet 930Cxi, 950Cxi, and 970Cxi
2.1.4 HP 2000C Series
HP 2000C - HP 2000C, HP 2000CN, HP 2000Cse, HP 2000Cxi
1. HP DeskJet 710C, 712, HP DeskJet 720C, 722C, and HP DeskJet 820Cse, 820Cxi
printers are “Windows” printers. See Section 2.2.1 “Special Note” regarding these
printers. * Product will appear in December 2001 revision
About this Developer’s Guide
4 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
2.2 Special 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 Desk-
Jet 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 propri-
etary 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.1 Special 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.
Table of Contents
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 5
3.0 Table 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
printers4
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
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
Table of Contents
6 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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
Table of Contents
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 7
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
Table of Contents
8 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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
Table of Contents
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 9
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
How This Developer’s Guide Works
10 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
4.0 How This Developer’s Guide Works
Below is a sample command description chart from this guide. On the following pages you
can find descriptor names for the various parts of the graph.
4.0.1 Page Length
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.
4.0.2 The Command Description Page
Since some commands are not recognized by all HP DeskJet printers, or some family mem-
bers do not recognize all options for a particular command, it is necessary to indicate which
printers do respond to each command, and how each printer treats each command option.
4.0.3 Command Name
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.
TABLE 1. Page Length - Esc & ll # P
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Page length set to 66 lines
1 .. n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Page length is set, in number of
lines, at the current lpi
Default
0 (66 lines per page)
Range
1 to maximum supported paper size - Command is ignored for out of
range values
Sample Chart Only!
B
A
A
B
C
D
EFG
H
I
How This Developer’s Guide Works
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 11
4.0.4 Escape 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.5 Command 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.6 Command 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 deter-
mine if a particular command and a selected command option will be recognized by your tar-
get printer, and what the effect of using that command and command option will be. The
detailed command description can be carefully studied to gain a thorough understanding of
the command once you determine if it is the one you want to use.
4.0.7 Command Options
All command options for a command are listed in the column of the Command Usage Table,
which is labeled "Value". You should note that even though a particular member of the HP
DeskJet printer family is indicated as recognizing a command, that printer may not recognize,
and therefore not respond to, all listed command options.
4.0.8 Command Option Recognition Grid
This section of the table serves to quickly indicate which HP DeskJet printer models will recog-
nize and respond to a particular command option. If a check mark ("
44
") appears under a par-
ticular 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 unpre-
dictable; your printed page may not appear as you expect.
4.0.9 Effect 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 com-
mand description, which follows the Command Usage Table.
C
D
E
F
G
H
How This Developer’s Guide Works
12 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
4.0.10 Detailed 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 envi-
ronments, all the command's options and the effect of each of those options, and any
extended impact the command may have which you should be aware of.
4.0.11 Important Point
Where a blue exclamation point appears, special information that you should keep in mind is
presented. (As a side note, if you print this document on a monochrome printer, the 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 com-
mand. Any information noted in these areas should be read carefully before you use the asso-
ciated command.
!
I
Introduction to HP PCL
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 13
5.0 Introduction to HP PCL
5.1 History of HP PCL Printer Language
Hewlett-Packard created the HP PCL Printer Language to provide an economical and efficient
way for application programs to control a range of printer features across a number of printing
devices. HP has evolved both the definition and implementations of the HP PCL printer lan-
guage to provide the optimal price and performance balance. HP PCL 3 continues to lead with
enhancements to the HP PCL printer language in order to deliver powerful technology
advances.
The HP PCL printer language commands are compact escape sequence codes that are
embedded in the print job data stream. This approach minimized both data transmission and
command decode overhead. HP PCL printer language formatters and fonts are designed to
quickly translate application output into high-quality, device-specific, raster print images.
HP PCL printer language commonality from HP printer to HP printer helps to minimize printer
support problems and protect HP printer customer investment in applications and printer driver
software.
5.1.1 What are Printer Commands?
HP PCL language printer commands provide access to printer features. There are two gen-
eral types of HP PCL language commands:
44
Control codes
44
HP PCL commands
5.1.2 Control Codes
A control code is a character that initiates a printer function, for example Carriage Return
(CR), Line Feed (LF), Form Feed (FF), etc.
5.1.3 HP PCL Commands
HP PCL commands provide access to the printer's HP PCL control structure. The HP PCL
structure controls all of the printer's features.
HP PCL printer commands consist of two or more characters. The first character is always the
ASCII escape character, identified by Esc. Esc is a special control code, which identifies the
subsequent string of characters as a printer command. As the printer monitors incoming data
from a computer, it is "looking" for this character. When this character appears, the printer
reads it and the subsequent string of characters as a command to be performed and not as
data to be printed.
HP PCL printer commands are also referred to as escape sequences. The two terms are
used interchangeably throughout this manual.
!
Introduction to HP PCL
14 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Once an HP PCL command sets a parameter, that parameter will remain set until that HP PCL
command is repeated with a new value, the printer is reset to its user default environment, or
another command makes a change. For example, if you send the printer a command to set
line spacing to 3 lines/inch, each page will print 3 lines/inch until the printer receives a Line
Spacing or VMI command or the printer is reset.
5.2 Syntax of Escape Sequences
There are two forms of HP PCL escape sequences: two-character escape sequences and
parameterized escape sequences.
5.2.1 Two-Character Escape Sequences
Two-character escape sequences have the following form:
Esc X
Where "X" is a character that defines the operation to be performed. (Note, "X" may be any
character from the ASCII table within the range 48-126 decimal ["0" through "~"]).
Following are examples of two- character escape sequences:
Esc E a two-character escape sequence used for resetting the printer.
Esc 9 a two-character escape sequence used for resetting the left and right margins.
5.2.2 Parameterized Escape Sequences
Parameterized escape sequences have the following form:
Esc X y # z1 # z2 # z3 … # Zn[data]
Where y, #, zi (z1, z2, z3… ) and [data] may be optional, depending on the command.
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.
Introduction to HP PCL
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 15
zi Parameter Character - Any character from the ASCII table within the range 96-126 deci-
mal (" " " 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 deci-
mal ("@" 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 parame-
ter character. This escape sequence performs a single function of logical page orientation in
landscape mode.
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:
Esc & l l 1 O
Escape
Character
Parameterized
Character
Group
Character
Value
Field
Termination
Character
!
Introduction to HP PCL
16 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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 lower-
case "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.
Esc & ll 1 o 2 A
Escape
Character
Parameterized
Character
Group
Character
Value
Field
Parameter
Character
Value
Field
Termination
Character
The Page
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 17
6.0 The Page
6.1 Logical Page, Physical Page
The HP PCL printer language distinguishes between the physical page and the logical page.
The physical page is the actual sheet of paper. Its size is determined by the size of the media
installed in the printer. The logical page defines the addressable area in which the cursor can
be positioned.
CAP (Current Active Position) refers to the "cursor" position on the logical page, similar to the
cursor used on most computer terminals. The CAP location on the logical page is the next
position where a character will be placed. CAP cannot be moved outside of the logical page
bounds. The figure below shows the layout of the logical page.
Text Area
Page
Page
Page
Perf Skip
Zone -
(1 inch)
Right Margin
Paper Size
Logical Page
Perf Skip
Zone -
(1 inch)
Top Margin
Left Margin
Text Length
Bottom Margin
Unprintable Region
The Logical Page
The Page
18 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
6.2 Page Layout
Referring to the previous figure, each page passed through the printer has a number of com-
ponents. 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 bot-
tom of each sheet of print media. If printing is attempted outside the printable area at the bot-
tom of the sheet, data may be printed on the following sheet. If printing is attempted in the
unprintable regions, formatting or data may be lost.
The perforation skip zone extends from the bottom of the text area on one page to the top of
the text area on the next page. When the Perforation Skip Mode is turned ON, a Line Feed
that would normally move CAP into the bottom margin of the current page instead moves CAP
to the top of the text area on the next page. If the Perforation Skip Mode is turned OFF, a Line
Feed that would move CAP into the bottom margin is allowed. If text printing is attempted
within the unprintable region at the bottom of the page, a hardware page break occurs, the text
is printed on the next sheet of print media, and then a software page break occurs. The result
is an unplanned, extra page, which contains only that portion of the text which invaded the
unprintable region.
Allow ½ inch at the bottom of the page. This extra ½ inch can mean a loss of 3 lines. For
example, on an 11 inch page, the full-page length is 66 lines (6 lines per inch). However, the
effective page length is 10 ½ inches, or 63 lines.
6.2.1 Current Active Position (CAP)
CAP is the position at which the next character will be printed on the page. This position can
be moved to different points on the logical page using the cursor positioning commands. CAP
cannot be moved outside the bounds of the logical page, except when moving to another logi-
cal 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
The Page
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 19
point (0,0) may change. The point (0,0) then, does not necessarily equate to the top of the
paper.
6.2.2 CAP Reference Point
The first line starts at the (0,0) coordinate. CAP starts at (X,Y), where X= the left margin set-
ting, 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 physi-
cal 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 char-
acter 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.
CAP Position
Portrait
Landscape
Logical Page
Logical Page
ABCD...
ABCD...
X
Y
Y
X
(0,0)
(0,0)
Top Margin
Top Margin
The Print Environment
20 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
7.0 The Print Environment
The group of all the printer's current feature settings is collectively referred to as the print envi-
ronment. 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 spe-
cific 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.
!
Merged Text and Graphics
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 21
8.0 Merged Text and Graphics
The process for merging text and graphics with the HP DeskJet 600/800/900 & HP 2000
Series printers in both portrait and landscape orientation is the same as the landscape orienta-
tion 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 land-
scape 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 com-
mand), 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 graph-
ics 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 remain-
ing 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 reposition-
ing 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.
!
Programming Hints
22 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
9.0 Programming Hints
The following are overall guidelines to keep in mind when programming with HP PCL printer
language commands.
9.0.1 Follow Specifications
Follow the specifications for HP PCL printer language commands as described in this guide.
Do not rely upon undocumented workarounds. For example, the HP DeskJet 500 Series print-
ers do not allow a negative vertical cursor movement of more than 1/3 inch. While it is possi-
ble to create a workaround, the solution may produce undesirable results, as the printer paper-
movement hardware is not designed to provide negative paper motion. Additionally, the
homemade solution that works today may not work with future printer models.
9.0.2 Leverage from Previous Programs
If you have previously used HP PCL commands to create printer programs, you may be able
use most of those same commands for the HP DeskJet 600/800/900 & HP 2000 Series print-
ers. 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 Laser-
Jet 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 graph-
ics 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 any-
where 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.3 Priority of Feature Set Commands
Printer features for the HP DeskJet 600/800/900 & HP 2000 Series printers are controlled by
escape sequences and control codes. Software application commands override default set-
tings. 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.
Programming Hints
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 23
9.0.4 Priority of Commands
There are no finite rules when it comes to structuring your overall program. In general, start by
setting the print environment with the printer control commands, such as Reset, Selecting the
Media Source, and so on.
It is almost always advisable to start and end your program with the reset command (Esc E).
This clears the printer environment and places your program back to the default settings. An
exception to this general rule is when the printer settings are intended to carry across a multi-
component 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.5 Time 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 selec-
tion sequence, simply specify 10, rather than 0010.00.
44
Group printer control commands at the beginning of a print job. If a number of consecu-
tive pages within a job have the same format (such as margins, HMI, VMI, etc.), the asso-
ciated page formatting commands only need to be set once for that group of pages.
44
Combine escape sequences where possible. Shortening commands improves through-
put. 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 enve-
lope 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 depen-
dent upon the current font pitch. Instead, use cursor positioning commands.
Programming Hints
24 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 25
10.0 HP PCL Commands
10.1 Control Codes and Special Character Codes
The following commands initiate printer control functions:
10.1.1 Escape
Provides supplementary control of printer functions. The escape character itself is a prefix for
the string of one or more characters that follow. Once an escape character is received by the
printer, normal text processing is suspended, and the contents of the print data stream are
interpreted as a printer command, until the command has been activated by a command termi-
nation character, or the escape sequence has been determined to be invalid.
10.2 Testing Commands
Transparent Data Mode, and Display Functions modes (both of them) are used for testing pur-
poses, to allow you to print the actual setup strings rather than having HP PCL actually inter-
pret 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.3 Print Modes
10.3.1 Transparent Data Mode
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.
TABLE 2. Transparent Data Mode - Esc & p # X
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
1 . . n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Prints all data rather than execut-
ing it.
Default
n/a
Range
0 to 32767 - command is ignored for out of range values
HP PCL Commands
26 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.3.2 Display Functions Mode ON
This command turns on Display Functions Mode; a character code is then printed in the cur-
rent 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 Func-
tions Mode.
44
All character codes, except CR and Esc Z, either mark the paper or produce a blank
space.
The exact implementation may vary between products. This mode is intended as a program-
mer’s debugging aid, and is not to be used for document preparation.
10.3.3 Display Functions Mode 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.
TABLE 3. Display Functions Mode ON - Esc Y
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
1 . . n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Display Functions turned on
Default
off
TABLE 4. Display Functions Mode OFF - Esc Z
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
1 . . n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Display Functions turned off
Default
off
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 27
10.4 Text Enhancements
10.4.1 Enable Underline
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 under-
line 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 under-
line 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.
TABLE 5. Enable Underline - Esc & d # D
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Default - single underline
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Single underline, fixed location
below the baseline
2
44 44 44 44 44 44 44 44 44 44 44 44 44
Double underline, fixed location
below the baseline
3
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Single underline, font
dependent (“floating”) location
4
44 44 44 44 44 44 44 44 44 44 44 44 44
Double underline, font
dependent (“floating”) location
Default
off
Range
0 to 4 - (default is selected for values >4 or <0)
!
HP PCL Commands
28 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
With HP DeskJet 500 Series printers, if underlining is enabled and changing the left mar-
gin causes a positive horizontal cursor movement, the move is underlined. With HP Desk-
Jet 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.2 Disable Underline
Disables automatic text underlining.
10.4.3 Line Termination
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 exe-
cute a carriage return (CR) and linefeed (LF) for every CR received. A linefeed or formfeed is
sent as is.
TABLE 6. Disable Underline - Esc & d @
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n/a
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Underlining is OFF
TABLE 7. Line Termination - Esc & k # G
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
CR = CR; LF = LF; FF = FF
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
CR = CR, LF; LF = LF; FF = FF
2
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
CR = CR; LF = CR, LF; FF =
CR, FF
3
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
CR = CR, LF; LF = CR, LF; FF
= CR, FF
Default
0
Range
0 to 3 - Command is ignored for out of range values
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 29
10.4.4 End-of-Line Wrap
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.
TABLE 8. End-of-Line Wrap - Esc & s # C
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Enables End-of-Line Wrap
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Disables End-of-Line Wrap
Default
1
Range
0 to 1 - Command is ignored for out of range values
HP PCL Commands
30 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.5 Job Control
10.5.1 Reset
Esc E
Performs a reset on the printer (this is NOT a hardware reset). The reset performs the follow-
ing:
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.
Esc E should be the first command received at the beginning of a job (e.g., before font down-
load) 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 affect-
ing CAP are ASCII data, LF, CAP moves, space, etc.). Commands affecting top and left mar-
gins, 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 com-
mands 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 can-
not 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.
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 31
10.6 Printer Control
10.6.1 Gray Balance
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 result-
ing 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.
TABLE 9. Gray Balance - Esc * b # B
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44
Set gray balance to device
default (enabled or disabled)
1
44
Enable gray balancing
2
44
Disable gray balancing
Default
Device dependent
Range
0 to 2 - Command is ignored for out of range values
Gray Balance Default Modes
Print Mode
HP DeskJet 540 HP DeskJet 600
Plain
Paper Special
Paper Glossy/
Trans. Plain
Paper Special
Paper Glossy/Trans.
EconoFast (disabled) (disabled) (disabled) (disabled) (disabled) (disabled)
Normal (enabled) (enabled) (enabled) (enabled) (enabled) (disabled)
Best (enabled) (enabled) (enabled) (enabled) (enabled) (disabled)
!
HP PCL Commands
32 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.6.2 Dry Timer
Sets a minimum dry time between pages to ensure that a previous page dries before the next
page is dropped on top of it.
The time required for ink to dry depends on media, print modes, and environment (tempera-
ture 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 set-
ting. 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:
TABLE 10. Dry Timer - Esc & b # T
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44
Dry Timer is off
1..1200
44
Dry timer is on - time set for
specified number of seconds
Default
0
Range
0 to 1200 - Command is ignored for out of range values
Dry Timer Defaults
Media Type
EconoFast Mode Normal Mode Best Mode
Black Color Black Color Black Color
Plain Paper 0 sec. 0 sec. 15 sec. 15 sec. 25 sec. 15 sec.
Special Paper 0 sec. 0 sec. 15 sec. 15 sec. 25 sec. 15 sec.
Transparency 60 sec. 120 sec. 180 sec. 360 sec. 240 sec. 360 sec.
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 33
10.6.3 Print Quality
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 com-
mands:
44
Font Quality (Primary) Esc ( s # Q
44
Font Quality (Secondary) Esc ) s # Q
44
Raster Graphics Quality Esc * 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.
TABLE 11. Print Quality - Esc * o # m/M
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
-1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
EconoFast mode selected
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Normal quality selected
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Best quality selected
Default
0
Range
-1 to 1 - Command is ignored for out of range values
!
HP PCL Commands
34 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.6.4 Media Type
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.5 Unit of Measure
TABLE 12. Media Type - Esc & ll # M
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Plain paper
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Bond paper
2
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Special paper (HP Premium
Inkjet Paper)
3
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Glossy film/Photo media
4
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Transparency film
5
44
Quick Dry Glossy
6
44
Quick Dry Transparency
Default
0
Range
0 to 4 - Command is ignored for out of range values
TABLE 13. Unit of Measure - Esc & u # D
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
300
44 44 44 44
300 units per inch
600
44 44 44 44
600 units per inch
Default
Device dependent
Range
300,600 - command is ignored for all other values
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 35
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 com-
mands.
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 char-
acter 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 round-
ing.
Out-of-range values are mapped to the supported value with the minimum relative error.
HP PCL Commands
36 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.7 Printer Diagnostics
10.7.1 Self-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 down-
loaded 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.
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 37
10.8 Page Control
The following commands facilitate the definition of a print job page.
10.8.1 Page Length
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.
TABLE 14. Page Length - Esc & ll # P
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Page length set to 66 lines
1 .. n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Page length is set, in number of
lines, at the current lpi
Default
0 (66 lines per page)
Range
1 to maximum supported paper size - Command is ignored for out of
range values
Page Length Line Values
Paper Size 6 lpi 8 lpi
Letter 66 88
Legal 84 112
A4 70 93
Executive 63 84
HP PCL Commands
38 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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; other-
wise, when the command is sent, the current page is closed and printed.
10.8.2 Page Size
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.
TABLE 15. Page Size - Esc & ll # A
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Page size set to that indicated
by value index in the following
tables
Default
Regionally dependent (US Letter for printers sold in North America)
Range
limited to values specified in tables below - Command is ignored for out
of range values
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 39
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.
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.
TABLE 16. Selectable Sheet Media Sizes for HP DeskJet 600/800/900 & HP 2000 Series printers
Value Page Description Page Size
1US Executive 7.25” x 10.5”
2US Letter 8.5” x 11”
3US Legal 8.5” x 14”
25 ISO and JIS A5 148.5 mm x 210 mm
26 ISO and JIS A4 210 mm x 297 mm
45 JIS B5 182 mm x 257 mm
101 Custom 5.00” x 5.83”” through 8.5” x 14
(127 mm x 148 mm-216mm x 356mm)
TABLE 17. Selectable Card Sizes
Value Card Description Card Size
71 Japanese Hagaki Postcard 100 mm x 148 mm
72 Japanese Oufuku-Hagaki Postcards 148 mm x 200 mm
73 ISO and JIS A6 Card 105 mm x 148 mm
74 US Index Card 4” x 6”
75 US Index Card 5” x 8”
78 3x5 Index Card 3” x 5”
(HP 2000C Only)
TABLE 18. Selectable Envelope Sizes
Value Envelope Description Envelope Size
-81 U.S. Commercial #10 (portrait) 41/8” x 91/2”
81 U.S. Commercial-10 (landscape) 41/8” x 91/2”
90 International DL 110 mm x 220 mm
92 International C6 114 mm x 162 mm
109 U.S. A2 4 3/8” x 5 3/4”
112 Japanese Envelope #2 111.1 mm x 146 mm
(HP 2000C Only)
!
HP PCL Commands
40 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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 por-
trait. 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.3 Media Source
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.
TABLE 19. Media Source - Esc & ll # H
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
-1
44 44 44 44 44 44 44 44
Load z-fold media (banners)
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Print current page (source is
unchanged)
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Load from tray
3
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Envelope feed
Default
0
Range
-1, 0, 1, 3 - Command defaults for out of range values
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 41
10.8.4 Orientation
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 com-
mands that set any desired non-default values.
This command affects only text orientation - not raster graphics orientation. For example, if ori-
entation 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.
TABLE 20. Orientation - Esc & ll # O
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Portrait
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Landscape
2Reverse Portrait
3
44 44 44
Reverse Landscape
Default
0
Range
0 to 3 - Command is ignored for out of range values
HP PCL Commands
42 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.8.5 Horizontal Motion Index
Designates the width of columns used for horizontal movement calculations. In the vertical text
path direction, designates the height of rows used for inter-character movement calculations.
HMI defaults to the invoked font’s space character when any of the font’s characteristics (ori-
entation, character set, pitch, etc.) are changed, when switching between primary and second-
ary 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 fixed-
pitch 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.
TABLE 21. Horizontal Motion Index (HMI) - Esc & k # H
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Number of 1/120 inch
increments
Default
Determined by the pitch or height (x 112%) value in the default font
descriptor
Range
0 to 126.99 - Command is ignored for out of range values
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 43
10.8.6 Vertical Motion Index
Sets the vertical spacing between lines of print (the vertical distance CAP will move for a line-
feed in horizontal text path mode and the horizontal distance the CAP will move for a linefeed
in the vertical text path mode.
This command performs the same functions as Line Spacing (Esc & l # D), except the 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.
TABLE 22. Vertical Motion Index (VMI) - Esc & ll # C
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Number of 1/48 inch increments
between rows
Default
8
Range
0 to Current logical page length up to 32767 - Command is ignored for
out of range values
HP PCL Commands
44 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.8.7 Line Spacing
This command performs the same functions as VMI (Esc & l # C), except it identifies the VMI
in lines per inch (lpi). Both commands set linefeed spacing. To convert VMI to lpi:
lpi = 48.0/ VMI
In HP DeskJet printers, a value of 0 sets line spacing to 12 lpi.
10.8.8 Clear Horizontal Margins
Resets the left and right margins to their default positions. CAP is unchanged.
Left Margin = left bound of the logical page (column 0)
Right Margin = right bound of the logical page.
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 sup-
port the command.
TABLE 23. Line Spacing - Esc & ll # D
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Sets the number of lines printed
per inch
Default
6
Range
0 to Current logical page length up to 32767 - Command is ignored for
out of range values
TABLE 24. Clear Horizontal Margins - Esc 9
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n/a
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Default left and right margins
!
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 45
10.8.9 Left Margin
If CAP is to the left of the new left margin, it moves to the new left margin; otherwise, this com-
mand does not affect CAP. Attempts to set the left margin to the right of the right margin
should be ignored; however, left and right margins can be set at the same location.
Column 0 is the first column on the left edge of the logical page, not the physical page.
10.8.10 Right Margin
This command is ignored for columns to the left of the left margin. Specifying a column beyond
the right logical page limit sets the right margin to the right logical page limit. If CAP is to the
right of the new right margin, CAP is moved to the new right margin; otherwise this command
does not affect CAP.
Characters whose cells overlap with the right margin are not printed unless end-of-line wrap is
enabled: then the character prints at the left margin on the next line. Attempts to set the right
TABLE 25. Left Margin - Esc & a # L
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Sets the left margin to the left
edge of the specified column
Default
0
Range
0 to right bound of logical page - Command is ignored for out of range
values
TABLE 26. Right Margin - Esc & a # M
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Sets the right margin to the right
edge of the specified column
Default
Logical page right bound
Range
Current left margin to logical page left bound - Command is ignored for
out of range values
!
HP PCL Commands
46 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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.11 Top Margin
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 cal-
culated 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.
TABLE 27. Top Margin - Esc & ll # E
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Top margin is set to specified
number of lines at the current
lines-per-inch setting
Default
0.5 inch
Range
0 to logical page length - Command is ignored for out of range values
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 47
10.8.12 Text Length
This command is ignored if current VMI is 0 or a text length greater than [logical page length -
top margin] is requested. A value field of 0 defaults text length.
Text length determines the bottom margin when perforation skip is enabled. Text length is
ignored when perforation skip is disabled.
10.8.13 Perforation Skip Mode
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, indi-
rectly, 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.
TABLE 28. Text Length - Esc & ll # F
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Sets length of the text area, in
lines, from the top margin
Default
Logical page length - top margin - 1/2 inch
a
a. If the calculation is negative, text length defaults to (logical page length - top margin)
Range
Current left margin to logical page left bound - Command is ignored for
out of range values
TABLE 29. Perforation Skip Mode - Esc & ll # L
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Disables perforation skip mode
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Enables perforation skip mode
Default
1
Range
0, 1 - Command is ignored for other values
HP PCL Commands
48 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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 pre-
vent this, perforation skip should be enabled. Changing perforation skip mode defaults top
margin and text length.
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 49
10.9 Horizontal Positioning Commands
The following commands provide for cursor movement on the horizontal axis.
10.9.1 Backspace
<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 char-
acter or space.
HP DeskJet 600/800/900 & HP 2000 Series printers backspace using only the last propor-
tional character width. The resulting cursor relocation is therefore not a fixed constant.
10.9.2 Carriage Return
<CR>
Moves CAP to the left margin on the current row.
10.9.3 Space
<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.4 Linefeed
<LF>
!
HP PCL Commands
50 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Moves CAP to the same horizontal position, one row down. If perforation skip mode is
enabled, a linefeed that would go beyond the text length boundary moves CAP to the same
horizontal position at the top of form on the next page. If perforation skip mode is disabled, text
is printed to the end of the page and onto the next page. Text in the unprintable region may be
lost.
10.9.5 Formfeed
<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.6 Horizontal Tab
<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.
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 51
10.9.7 Move CAP Horizontal (Decipoints)
A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP right or
left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP
moves an absolute distance from the logical page left edge.
This command ignores margins and can move CAP anywhere horizontally within the logical
page. Attempts to go outside the logical page will move CAP to the appropriate logical page
limit.
Devices not having an integral number of decipoints-to-dots should implement fractional 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.
TABLE 30. Move CAP Horizontal (Decipoints) - Esc & a # H
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Moves CAP horizontally by the
specified number of decipoints
(1/720 inch)
Default
n/a
Range
-32767 to +32767 (up to logical page right and left limits, rounded to the
nearest HP PCL unit or decimal point) - Command is ignored for out of
range values
!
HP PCL Commands
52 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.9.8 Move CAP Horizontal (Columns)
A signed value field indicates relative movement: plus (+)or minus (-) signs move CAP right or
left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP
moves an absolute distance from the logical page left edge (column 0).
This command ignores margins and can move CAP horizontally anywhere within the logical
page. Attempts to go outside the logical page will move CAP to the appropriate logical page
limit.
HP DeskJet 600/800/900 & HP 2000 Series printers use 2 fractional digits and truncate to
1/3600-inch units.
10.9.9 Move CAP Horizontal (HP PCL Units)
A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP right or
left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP
moves an absolute distance from the logical page left edge.
TABLE 31. Move CAP Horizontal (Columns) - Esc & a # C
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Moves CAP horizontally by the
specified number of columns
Default
n/a
Range
-32767 to +32767 (up to logical page right and left limits, rounded to the
nearest HP PCL unit) - Command is ignored for out of range values
TABLE 32. Move CAP Horizontal (HP PCL Units) - Esc * p # X
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Moves CAP horizontally by the
specified number of HP PCL
units
Default
n/a
Range
-32767 to +32767 (up to logical page right and left limits, rounded to the
nearest HP PCL unit) - Command is ignored for out of range values
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 53
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 PCL Commands
54 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.10 Vertical Positioning Commands
The following commands provide cursor positioning on the vertical axis.
10.10.1 Move CAP Vertical (Rows)
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 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.
TABLE 33. Move CAP Vertical (Rows) - Esc & a # R
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Moves CAP to the same
column position on a new line
based on the active line spacing
Default
n/a
Range
-32767 to +32767 - Command is ignored for out of range values
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 55
10.10.2 Move CAP Vertical (Decipoints)
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.
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.
TABLE 34. Move CAP Vertical (Decipoints) - Esc & a # V
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Moves CAP to a new position
along the vertical axis
Default
n/a
Range
-32767 to +32767 - Command is ignored for out of range values
HP PCL Commands
56 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.10.3 Move CAP Vertical (HP PCL Units)
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.
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”.
TABLE 35. Move CAP Vertical (HP PCL Units) - Esc * p # Y
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Moves CAP specified number
of HP PCL units along the Y
axis
Default
n/a
Range
-32767 to +32767 - Command is ignored for out of range values
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 57
10.11 Font Selection
10.11.1 Font Selection by Attribute
The user requests a font by designating its attributes with the following commands. For the HP
DeskJet 600 Series printers, successful selection requires the selected font is either one of the
built-in bitmap fonts or a soft font that has been downloaded to the printer. For the HP Desk-
Jet 850, 870, 890 Series printers, successful selection only requires that the typeface speci-
fied is one of those included in the printer’s firmware; any specified point size will be generated
by the printer’s font scaling technology.
10.11.2 Font Symbol Set
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 possi-
ble 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 user-
default may be selected. PC-8 is selected if the specified symbol set does not exist or cannot
be satisfied by any font.
TABLE 36. Font Symbol Set (Primary) - Esc ( ID
Font Symbol Set (Secondary) - Esc ) ID
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
ID
44 44 44 44 44 44 44 44 44 44
Symbol set identification value
from the table
Default
10U - (PC-8, Code Page 437)
Range
n/a
HP PCL Commands
58 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
The following table lists printer-supported symbol sets and symbol set IDs for the HP DeskJet
600/800/900 & HP 2000 Series printers.
ID Symbol Set Name ID Symbol Set Name
0A Math-7 (same as 0M) 1G ISO 21: German
0B Line Draw-7 (same as 0L) 8G Greek-8
0C HP Large Characters (264x) 9G Windows 3.1 Latin/Greek
0D ISO 60: Danish/Norwegian 10G PC-851 Latin/Greek
1D ISO 61: Norwegian Version 2 12G PC-8 Latin/Greek
2D Devanagari 0H Hebrew-7
0E Roman Extension 7H ISO 8859/8 Latin/Hebrew
1E IS04: United Kingdom 8H Hebrew-8
9E Windows 3.1 Latin 2 15H PC-862 Latin/Hebrew
0F ISO 25: French (obsolete) 0I ISO 15: Italian
1F ISO 69: French 6J Microsoft Publishing
0G HP German 7J DeskTop
8J Document 36L Pi Set #6
9J PC-1004 0M Math-7
10J PS Text 1M Tech-7
11J PS ISO Latin 1 5M PS Math
12J MC Text 6M Ventura Math
13J Ventura International 8M Math-8
14J Ventura US 10M Universal Greek & Math Pi
16J Swash Characters 11M TEX Math Extension
17J Small Caps and Old Style Figures 12M TEXMath Symbol
18J Old Style Figures 13M TEX Math Italic
19J Fractions 19M Symbol
21J Lining Figures 0N ISO 8859/1 Latin 1
22J Small Caps and Lining Figures 2N ISO 8859/2 Latin 2
23J Alternate Caps 3N ISO 8859/3 Latin 3
0K ISO 14: JIS ASCII 4N ISO 8859/4 Latin4
lK ISO 13: Katakana 5N ISO 885919 Latin 5
2K ISO 57: Chinese 6N ISO8859/10 Latin 6
8K Kana-8 10N ISO 885915 Latin/Cyrillic
9K Korean-8 0O OCR-A
50K JIS Kanji-l 1O OCR-B
51K JIS Kanji-2 2O OCR-M
0L Line Draw-7 10O MICR
1L HP Block Characters OP Typewriter Paired APL
2L Tax Line Draw 1P Bit Paired APL
8L LineDraw-8 10P Expert
9L Ventura ITC Zapf Dingbats 11P Alternate
10L PS ITC Zapf Dingbats 12P Fraktur
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 59
11L ITC Zapf Dingbats Series 100 0R Cyrillic ASCII (8859/5-1986)
12L ITC Zapf Dingbats Series 200 1R Cyrillic
13L ITC Zapf Dingbats Series 300 3R PC Cyrillic (CP 866)
20L Carta 9R Windows 3.1 Latin/Cyrillic
21L Ornaments 0S ISO 11: Swedish
22L Universal News & Commercial Pi 1S HP Spanish
23L Chess 2S ISO 17: Spanish
24L Astrology 1 3S ISO 10 Swedish
31L Pi Set #l 4S ISO 16: Portuguese
32L Pi Set #2 5S ISO 84: Portuguese
33L Pi Set #3 6S ISO 85: Spanish
34L Pi Set #4 7S HP European Spanish
579L Wingdings 8S HP Latin Spanish
35L Pi Set #5 16S HP-GL Download
17S HP-GL Drafting 16U PC-857 Turkish
18S HP-GL Special Symbols 17U PC-852, Latin 2
20S Sonata 19U Windows 3.1 Latin I
0T Thai-8 20U PC-860 Portugal
5T Windows 3.1 Latin 5 21U PC-861 Iceland
8T Turkish-8 23U PC-863 Canada French
9T PC-8T, Turkish 25U PC-865 Norway
10T Teletex 26U PC-775 Baltic
19T TIS (TAPCI23) 27U PC Latvian/Russian
0U ISO 6: ASCII 28U PC Lithuanian/Russian
1U Legal 29U PC Lithuanian/Russian (CP 772)
2U ISO 2: Int’l Reference Version 10V Code Page 864 Latin/Arabic
5U HPL 8V HP Arabic-8
7U OEM-1 0Y 3 of 9 Barcode
8U Roman-8 1Y Industrial 2 of 5 Barcode
9U Windows 3.0 Latin 1 2Y Matrix 20f5 Barcode
10U PC-8, Code Page 437 4Y Interleaved 2 of 5 Barcode
11U PC-8 D/N, Danish/Norwegian 5Y CODABARBarcode
12U PC-850, Multilingual 6Y MSI/Plessey Barcode
15U Pi Font 7Y Code 11 Barcode
8Y UPC/EAN Barcode
15Y USPS ZIP
ID Symbol Set Name ID Symbol Set Name
HP PCL Commands
60 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.11.3 Font Spacing
Designates inter-character spacing as either proportional or fixed.
If proportional spacing is specified and no proportional font is available in the requested sym-
bol set, a fixed spacing font with the current pitch specification is chosen, if available.
If fixed spacing is requested but no fixed-pitch font is available, a proportional font is chosen, if
available.
For fixed-space bitmap fonts, both pitch and height are used for selection of font character
size. For fixed-space scalable fonts, only pitch is used. For proportional bitmap and scalable
fonts, only height is used.
10.11.4 Font Pitch
Designates the horizontal spacing of a fixed-space or dual-fixed space (bitmap or scalable)
font in characters per inch (cpi).
TABLE 37. Font Spacing (Primary) - Esc ( s # P
Font Spacing (Secondary) - Esc ) s # P
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Fixed spacing
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Proportional spacing
Default
0
Range
0, 1 - Command is ignored for other values
TABLE 38. Font Pitch (Primary) - Esc ( s # H
Font Pitch (Secondary) - Esc ) s # H
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Inter character spacing for
current font is set
Default
10 cpi
Range
> 0.0 - valid to 2 decimal places - Command is ignored for out of range
values
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 61
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 avail-
able 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 dual-
fixed space fonts, only the pitch is used.
For scalable fonts, pitch is converted to a corresponding point size (height), which is scaled by
the printer. Effective pitch ranges are thus limited by height constraints.
10.11.5 Font Height
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.
TABLE 39. Font Height (Primary) - Esc ( s # V
Font Height (Secondary) - Esc ) s # V
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Height for current font is set
Default
12 points
Range
> 0.0 - valid to 2 decimal places - Command is ignored for out of range
values.
HP PCL Commands
62 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.11.6 Font Style
Identifies the posture, width, and structure of the font symbols. The partial sums for posture,
width, and structure are added together to determine the desired value (#). The composition of
the style word is shown below.
Style Word = Posture + (4 x Width) + (32 x Structure)
TABLE 40. Font Style (Primary) - Esc ( s # S
Font Style (Secondary) - Esc ) s # S
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Specified characteristics are
applied to font style request
Default
0
Range
0 to 32767 - values exceeding range are ignored
15 14 10 9 5 4 2 1 0
Xreserved structure width posture
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
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 63
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, expand-
ing, 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
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-15 Patterned with shadow
16 Inverse
17 Inverse in open border
18-30 Reserved
31 Unknown structure
Default = 0
Range = 0 to 32767 (values greater than 32767 are clamped)
HP PCL Commands
64 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.11.7 Font Stroke Weight
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 type-
face treatment designation “medium” may not always take a HP PCL value of 0. This value
may be assigned to “book” or “text” instead.
TABLE 41. Font Stroke Weight (Primary) - Esc ( s # B
Font Stroke Weight (Secondary) - Esc ) s # B
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
-7
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Ultra thin
-6
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Extra thin
-5
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Thin
-4
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Extra light
-3
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Light
-2
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Demi-light
-1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Semi-light
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
“Book” or “text” weight
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Semi-bold
2
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Demi-bold
3
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Bold
4
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Extra bold
5
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Black
6
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Extra black
7
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Ultra black
Default
0
Range
-7 to 7 (less than -7 maps to -7; greater than 7 maps to 7)
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 65
10.11.8 Font Selection by ID
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 des-
ignated font is proportional. No action occurs if the designated font is unavailable. See the
Font Symbol Set Command for Symbol Set ID Numbers.
Pitch and height are unchanged if the designated font is scalable.
If a proportional-space scalable font is selected by ID, the Height command should be
sent prior to the Font Selection ID command to specify point size. Otherwise, the size will
be determined by the height of the former font (as listed in the font select table).
For shared or multi-user environments, HP recommends that soft fonts be selected by
attribute rather than ID.
TABLE 42. Font Selection by ID (Primary) - Esc ( # X
Font Selection by ID (Secondary) - Esc ) # X
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Font with indicated ID is
selected
Default
n/a
Range
0 to 32767 - values exceeding range are ignored
!
HP PCL Commands
66 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.12 Downloading Fonts
Currently, the HP DeskJet 600 Series and 850/855 Series printers are the only printers that
accept downloaded fonts. Note that the HP DeskJet format soft fonts are designed for use
with the HP DeskJet 500 Series printers. The following sections discuss the format for the HP
LaserJet format soft fonts, which is the type used for the DeskJet 600 Series and 850/855
Series printers.
Before sending font data, the font must first be assigned an identification number so the font
can be referenced by subsequent HP PCL commands.
10.12.1 Font ID
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 com-
mands.
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 appro-
priate action is executed for any font currently associated with an ID of 1.
TABLE 43. Font ID - Esc * c # D
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44
The subsequently downloaded
font is given the specified ID
number
Default
0
Range
0 to 32767 - values exceeding range are ignored
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 67
10.12.2 Download Font
This command must be sent prior to downloading the characters in the font.
Note that this command downloads the entire font definition, which includes the font descrip-
tor, 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 com-
mon 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 res-
olution to be specified in dots-per-inch.
TABLE 44. Download Font - Esc ) s # W [font definition]
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44
Downloads a font definition and
assigns the font the current font
ID
Default
n/a
Range
0 to 32767 - command is ignored for invalid descriptor or insufficient
memory and the font descriptor data is discarded
HP PCL Commands
68 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.12.3 Character Code
The character code is a state variable that must be designated prior to the download of a char-
acter descriptor. Any existing characters with the same code are deleted.
EXAMPLE: Esc *c103E sets the character code to 103. If followed by the Character Descriptor
(Esc ( s # W) command with a valid character descriptor and data, a character is defined in the
code location corresponding to the ASCII lowercase “g”.
HP DeskJet 600, 830, 895, 900 & HP 2000 Series printers support a range of 0 - 65535.
After downloading the font definition, each character in the font must be defined.
10.12.4 Download Character
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
TABLE 45. Character Code - Esc * c # E
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44
Establishes a decimal ASCII
code for the next character
downloaded
Default
0
Range
0 to 65535 - command is ignored for out of range values
TABLE 46. Download Character - Esc ( s # W [Character Definition]
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44
Downloads a character
definition with the specified (n)
number of bytes
Default
n/a
Range
0 to 32767 - command is ignored for out of range values
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 69
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.5 Font Control
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.
TABLE 47. Font Control - Esc * c # F
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44
Delete all fonts (temp,
permanent, and soft)
1
44 44 44 44 44 44 44 44
Delete all temporary fonts
(temp, permanent, and soft)
2
44 44 44 44 44 44 44 44
Delete font (specified by last
Font ID)
3
44 44 44 44 44 44 44 44
Delete character (last Font ID
and Character Code)
4
44 44 44 44 44 44 44 44
Make font temporary (specified
by last Font ID)
5
44 44 44 44 44 44 44 44
Make font permanent (specified
by last Font ID)
Default
n/a
Range
0 to 5 - Command is ignored for other values, or if no font has the spec-
ified ID
HP PCL Commands
70 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.13 Raster Graphics
The following HP PCL commands apply to the printing of raster graphic images on HP Desk-
Jet 600/800/900 & HP 2000 Series printers.
10.13.1 Raster Mode
The Start Raster (Esc * r # A) command begins a restricted state called raster mode. Raster
mode locks out commands that would affect rendering of the graphics image. These com-
mands remain locked out until End Raster (Esc * r C).
10.13.2 Commands Locked Out of Raster Mode
The following raster commands are ignored in raster mode. They should be used to define a
graphic image’s parameters before entering graphics mode.
10.13.3 Commands Allowed in Raster Mode
The following commands may be used in raster mode without implicitly ending raster mode.
Configure Raster Data Esc * g # W
Simple Color Esc r # U
Source Raster Width Esc r # S
Start Raster Esc r # A
Compression Method Esc b # M
Seed Row Source Esc b # S
Transfer Raster by Row/Block Esc * b # W
Transfer Raster by Plane Esc b # V
Y Offset Esc b # Y
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 71
10.13.4 Start Raster
Starts raster mode and specifies the starting position of the raster image.
This command sets the left raster margin. A value of 0 starts the upper left corner of the pic-
ture 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.5 End Raster
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:
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.
TABLE 48. Start Raster - Esc * r # A
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Start graphics at logical page
left boundary (current vertical
position)
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Start graphics at CAP (current
vertical and horizontal position)
Default
0
Range
0 to 1 - Out of range values default to 0
TABLE 49. End Raster - Esc * r C
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n/a
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Printer returns to text mode
command processing
Default
n/a
Range
n/a
HP PCL Commands
72 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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.6 Raster Resolution
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.
TABLE 50. Raster Resolution - Esc * t # R
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
75
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
graphics data printed at 75 dpi
100
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
graphics data printed at 100 dpi
150
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
graphics data printed at 150 dpi
300
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
graphics data printed at 300 dpi
600
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
graphics data printed at 600 dpi
(applies to black data only)a
a. Only black raster data can print at 600 dots per inch on HP DeskJet 600/800/900 & HP 2000 Series printers.
Default
75
Range
75, 100, 150, 300, 600 - Command is ignored for other values
!
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 73
10.13.7 Source Raster Width
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.
TABLE 51. Source Raster Width - Esc * r # S
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Raster region width is set to
specified number of pixels (at
current resolution)a
a. HP DeskJet 600, 810, 830, 850, 895, 900 & HP 2000 Series printers round source raster width values that are not
a multiple of 8 to the next higher multiple of eight (i.e., the next byte boundary).
Default
Logical page width
Range
0 to 32767 - (clamped to right logical page boundary minus left graphics
margin)
!
HP PCL Commands
74 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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.8 Y Offset
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.
TABLE 52. Y Offset - Esc * b # Y
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Cursor is moved specified
number of raster lines of vertical
movement
Default
n/a
Range
-32767 to 32767 - Command is ignored for out of range values
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 75
10.14 Raster Data Transfer
The Raster Transfer commands (Esc * b # V, Esc * b # W) define how many bytes will be
interpreted as binary raster data
The Transfer Raster by Plane (Esc * b # V) command is used when the data is encoded by
plane, as specified by the Simple Color (Esc * r # U) command. Transfer Raster by Plane is
used to send each plane in the row except the last; Transfer Raster by Row (Esc * b # W)
must be used to send the last plane and advance the row.
The Transfer Raster by Row (Esc * b # W) command moves CAP to the beginning of the
next pixel row after the graphics data in the command is sent to the printer. The command is
used for single-color devices, for the last plane in a multi-plane row, or for color raster transfer
when the data is encoded by pixel.
10.14.1 Transfer Raster by Plane
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.
TABLE 53. Transfer Raster by Plane - Esc * b # V [data]
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Specified number of bytes of
graphics data for a single plane
of data is set to the printer. The
row pointer is not incremented.
Default
n/a
Range
0 to 32767 - Command is ignored for out of range values
HP PCL Commands
76 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.14.2 Transfer Raster by Row/Block
Transfers the number of bytes specified in the value field to the printer in a row by row or block
format, depending on the current compression method (Esc * b # M), then moves CAP to the
next row.
This command is used in single-color and multi-color printers where data is encoded by row
rather than by pixel. Because this command advances the row, it is also used for single-plane
rows or the last plane in a multi-plane row.
CAP is updated for each row in both row or block formats. For row formats, CAP is reset to the
left graphics margin. For block formats, CAP is reset to the X coordinate of the block; and the
Y coordinate is incremented.
The amount of data sent by this command can vary from row to row. If the picture width allows
more data than is sent, the undefined area is zero-filled. Undefined planes in a multi-plane row
are zero-filled. Black and white devices interpret zeros as white; color devices interpret zero
according to the current palette.
The plane pointer in a multi-plane row is reset to 1 after the data is transferred.
The data field is interpreted according to the current compression method (Esc * b # M).
TABLE 54. Transfer Raster by Row or Block - Esc * b # W [data]
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Following specified number of
data bytes sent to the printer as
K data
Default
n/a
Range
0 to 32767 - Command is ignored for out of range values
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 77
10.15 Raster Compression
Since raster images take a large amount of memory and processing time, raster data should
be reduced as much as possible. White-space data transfer can be reduced by sending empty
rows and planes (Esc * b 0 W, Esc * b 0 V), or by offsetting the left graphic margin (Esc * r 1
A) or the vertical starting point (Esc * b # Y). The Compression Method (Esc * b # M) com-
mand provides several other ways of compressing data.
10.15.1 Compression Method
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 repeti-
tion 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.
TABLE 55. Compression Method - Esc * b # M
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
0
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Unencoded
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Run-length encoding
2
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Tagged Image File Format
(TIFF) revision 4.0 “Packbits”
encoding
3
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Delta row encoding
9
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Compressed replacement delta
row encoding
Default
0
Range
0-3, 9 - Out of range values default to 0
HP PCL Commands
78 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Method 1 requires byte pairs: a Transfer Raster (Esc * b # V or Esc * b # W) command
with an odd value field is ignored and the data discarded.
Method 2 - Tagged Image File Format Encoding (TIFF revision 4)
Method 2 (“packbit” encoding) combines methods 0 and 1, with blocks of repeated bytes and
blocks of literal (unencoded) bytes. A control byte precedes the raster data; it indicates the
number of succeeding bytes, and whether they are repeated or literal.
The control byte is in 2’s complement format. If bit 7 is set (byte = -1 to -127), the following
bytes are repeated. The control byte’s absolute value is the number of repetitions (occur-
rences = repetitions + 1). For example, a control byte of -5 means the subsequent byte is
repeated 5 times (6 occurrences).
If bit 7 of the control byte is zero (byte = 0 to 127), the following bytes are literal. The number
of succeeding data bytes is 1 + the value of the control byte. A control byte of 0 means 1 literal
byte follows; a control byte of 6 means 7 literal bytes follow.
A control byte of -128 is ignored; the next byte is then treated as a control byte.
It is more efficient to code two consecutive identical bytes as a repeated byte, unless these
bytes are preceded and followed by literal bytes. Three-byte repeats should always be
encoded as replicate runs.
The row length indicated by the Transfer Raster commands (Esc * b # V, Esc * b # W)
has precedence if it is met before the literal run count.
EXAMPLES OF METHODS 0 - 2:
The following examples show how methods 0 - 2 can be used to send the raster row below:
Byte Number #1 #2 #3 #4 #5 #6 #7
Bits 01010101. 01010101. 01010101. 01010101. 01000001. 01010100. 01010100
ASCII UUUUATT
Compression method 0 - Unencoded
Esc*r1 A
Esc*b0m7WUUUUATT
Esc*rC
!
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 79
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.
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 off-
set 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.
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 -or-
Esc*b2m6W(-3)U(2)ATT
Esc*rC
7 5 4 0
Replacement count (1 - 8) Left offset from the current byte (O - 30)
!
HP PCL Commands
80 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
The values of the offset have the following definitions:
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 compres-
sion 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:
Seed row width is set to the source raster width at the beginning of raster mode. Source Ras-
ter 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 exam-
ple, 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. There-
fore, Esc * b 1 W does not affect the seed row, but causes the previous row to be repeated.
DELTA ROW EXAMPLE:
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 off-
set would be:
31 + 255 + 175 = 461.
Esc b 0 W Repeat the previous row. The seed row is unchanged
Esc b 1 Y Move down one raster row. Zero the seed row.
Esc b 0 Y Move down zero raster rows. Zero the seed row
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 81
The following data is compressed using method 3. Italicized bytes are those needing replace-
ment, i.e., bytes different from the seed row. Graphics data is binary.
Esc * r 1 A
Start Raster initializes the seed row to all zeros.
Row 1 - Esc * b 3 m 2 W (00000001 )( 11111111 )
3m selects method 3, and 2W indicates that 2 bytes of data will follow. The upper three bits of
the command byte are zero, indicating that one byte will be replaced. The lower five bits con-
tain 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 rela-
tive offset of zero. The replacement byte 00001111 follows.
The first three bits of the second command byte are 001, indicating the replacement of two
bytes; and the lower five bits contain a relative offset of two. The two replacement bytes
(10101010)(10101010) follow the command byte.
Method 9 - Compressed Replacement Delta Row Encoding
Like Method 3, this method replaces only bytes in the current row that differ from the preced-
ing (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.
The command byte itself has three parts:
Byte #: 12345
Row 1 00000000 11111111 00000000 00000000 00000000
Row 2 00000000 11111111 11110000 00000000 00000000
Row 3 00001111 11111111 11110000 10101010 10101010
Command
Byte Optional Offset
Bytes Optional Replacement Count
Bytes Data
Bytes
Control Bit Offset Count Replacement Count
HP PCL Commands
82 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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 begin-
ning 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.
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 replace-
ment 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.
Control Bit: Determines whether the replacement data is encoded, and also the bit
boundaries of the command byte’s other two fields.
Offset Count: The number of bytes the replacement data is offset from the current po-
sition in the seed row.
Replacement
Count: The number of consecutive data bytes to be replaced.
7 6 3 2 0
Control Bit = 0 Offset Count Replacement Count
7 6 5 4 0
Control Bit = 1 Offset Count Replacement Count
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 83
Seed Row Source Esc * b # S
Specifies the plane of the seed row for multi-plane graphics in compression methods 3 and 9.
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.
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.
HP PCL Commands
84 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
10.16 Color
10.16.1 Simple Color
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 pla-
nar.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
TABLE 56. Simple Color - Esc * r # U (Also known as Set Planes Per Row)
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
1
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Single plane K palette
-3
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
3 planes, device CMY palette
3
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
3 planes, device RGB palette
-4
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
4 planes, device KCMY palette
Default
1
Range
-4, -3, 1, 3 - Command is ignored for out of range values
!
!
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 85
Row Pointer. The HP DeskJet 600/800/900 & HP 2000 Series printer firmware will com-
plement 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 corre-
sponding color printed.
Single Plane (black) Palette (value = 1)
Planes Per Row Color Data Pattern
1White (no ink) 0
Black 1
3-Plane CMY Color Palette (value = -3)
Planes per Row Color
Printed Data Plane Pattern
CMY
3White (no
ink) 000
Yellow 001
Magenta 010
Red 011
Cyan 100
Green 101
Blue 110
Composite
Black 111
3-Plane RGB Color Palette (Value = 3)
Planes per Row Data Plane Pattern Color
Printed
RGB
3 0 0 0 Composite
Black
001 Blue
010 Green
011 Yellow
100 Red
101Magenta
110 Cyan
111White (no
ink)
HP PCL Commands
86 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
4 Plane (KCMY) Color Palette (value = -4)
Planes per Row Color Printed Data Plane Pattern
K C MY
4White 0 0 0 0
Yellow 0 0 0 1
Magenta 0 0 1 0
Red 0 0 1 1
Cyan 0 1 0 0
Green 0 1 0 1
Blue 0 1 1 0
Composite
Black 0 1 1 1
Black 1 0 0 0
Black/Yellow 1 0 0 1
Black/Magenta 1 0 1 0
Black/Red 1 0 1 1
Black/Cyan 1 1 0 0
Black/Blue 1 1 0 1
Black/Green 1 1 1 0
Black 1 1 1 1
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 87
10.16.2 Foreground Color
All HP PCL marking entities utilize foreground color, which is selected by Esc * v # S from the
current palette.
Sets the foreground color to the specified index of the current palette.
Out-of-range values are mapped into a new index via modulo (palette size). For example, if
the current palette size is 8, and the selected index for the foreground color command is 10,
the index is mapped into the index of 2 (i.e., 10 modulo 8).
Foreground color affects the following HP PCL page marking primitives in HP DeskJet 600/
800/900 & HP 2000 Series printers.
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 (fore-
ground 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 Desk-
Jet 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 undes-
ired interactions, select a black foreground color when transmitting raster images to the
printer.
TABLE 57. Foreground Color - Esc * v # S
#
Value
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
EFFECT
n
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Text will be printed in the color
specified by the given index
Default
0
Range
0 to the size of the current palette-1
Out of range values are mapped in to a new index via modulo (palette
size)
!
HP PCL Commands
88 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
TABLE 58. Single Plane (black) Palette
Planes Per Row Index Color
1 0 White (no ink)
1Black
TABLE 59. Three Plane (CMY) Color Palette
Planes per Row Index Color
3 0 White (no ink)
1Cyan
2Magenta
3Blue
4Yellow
5Green
6Red
7 Composite Black
TABLE 60. Three Plane (RGB) Color Palette
Planes per Row Index Color
3 0 Composite Black
1Red
2Green
3Yellow
4Blue
5Magenta
6Cyan
7 White (no ink)
HP PCL Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 89
TABLE 61. Four Plane (KCMY) Color Palette
Planes per Row Index Color Printed
4 0 White (no ink)
1White (no ink)
2Cyan
3Black
4Magenta
5Black
6Blue
7Black
8Yellow
9Black
10 Green
11 Black
12 Red
13 Black
14 Composite Black
15 Composite Black
Fonts
90 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
11.0 Fonts
A soft font is composed of a Font Definition (font header) and a series of character definitions.
Both are described below. In order to use the standard bitmap font definition on a HP DeskJet
600 or 85X Series printers, the Font Descriptor Size field must be set to exactly 64. The First
Code and Last Code fields must also contain valid information. HP LaserJet printers do not
enforce these restrictions, and it is therefore common for developers leveraging code and
fonts from previous HP LaserJet development to experience problems.
11.1 Standard Bitmap Font Definition
(format 0):
Byte 15 (MSB) 8 7 (LSB) 0 Byte
0Font Descriptor Size (64) 1
2Descriptor Format (0) Symbol Set Type 3
4Style MSB Reserved 5
6Baseline Position 7
8Cell Width 9
10 Cell Height 11
12 Orientation Spacing 13
14 Symbol Set 15
16 Pitch (Default HMI) 17
18 Height 19
20 x-Height 21
22 Width Type Style LSB 23
24 Stroke Weight Typeface LSB 25
26 Typeface MSB Serif Style 27
28 Quality Placement 29
30 Underline Position Underline Thickness 31
32 Text Height 33
34 Text Width 35
36 First Code 37
38 Last Code 39
40 Pitch Extended Height Extended 41
42 Cap Height 43
44-46 Font Number 45-47
48-63 Font Name 49-63
64 Copyright (optional) 65
Fonts
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 91
11.2 Resolution-Specified Bitmap Font Definition
(Format 20)
The Resolution-Specified Bitmap font definition shown below is the same as the Standard Bit-
map font definition, except that it allows specification of resolution (shaded fields). As with the
Standard Bitmap Definition, the Font Descriptor Size field and the First Code/Last Code fields
must be filled and valid. The Font Descriptor Size field for the Resolution Specified Bitmap
must be at least 68.
Byte 15 (MSB) 8 7 (LSB) 0 Byte
0Font Descriptor Size (68) 1
2Format (20) Symbol Set Type 3
4Style MSB Reserved 5
6Baseline Position 7
8Cell Width 9
10 Cell Height 11
12 Orientation Spacing 13
14 Symbol Set 15
16 Pitch (Default HMI) 17
18 Height 19
20 x-Height 21
22 Width Type Style LSB 23
24 Stroke Weight Typeface LSB 25
26 Typeface MSB Serif Style 27
28 Quality Placement 29
30 Underline Position Underline Thickness 31
32 Text Height 33
34 Text Width 35
36 First Code 37
38 Last Code 39
40 Pitch Extended Height Extended 41
42 Cap Height 43
44-46 Font Number 45-47
48-62 Font Name 49-63
64 X Resolution 65
66 Y Resolution 67
68 Copyright (optional)
69
n... n+l
Fonts
92 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
The following notation is used to define data types in the font definitions:
(BOOL) Boolean (0,1)
(UBYTE) Unsigned Byte (0 . . . 255)
(SBYTE) Signed Byte (-1 28 . . .1 27)
(UINT) Unsigned Integer (0 . . . 65535)
(SINT) Signed Integer (-32768 . . . 32767)
(ULINT) Unsigned Long Integer (0 . . . (232-1 ))
(SLINT) Signed Long Integer (_231. . . (23 (ASCxx)
ASCII String (array (0 . . . (xx-1))) of characters
11.2.1 Font Descriptor Size (UINT)
This field contains the number of bytes in the font descriptor (not the font definition size, which
is given by the escape sequence value field). See the font definition tables for the appropriate
value. The font is invalid if the size is less than the minimum required.
11.2.2 Descriptor Format (UBYTE)
Identifies the font as one of the following:
ValueFormat
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.3 Symbol Set Type (UBYTE)
Describes the font’s relationship to symbol sets.
Value Symbol Set Organization
0Bound font, 7-bit (96 characters) - Character codes 32-127 [decimal] are print-
ablea
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
27a
10 Unbound font, no symbol set affiliation - Character codes correspond to MSL
numbers (for Intellifont unbound scalable fonts)
11 Unbound font, no symbol set affiliation - Character codes correspond to Unicode
numbers (for TrueType unbound scalable fonts)
!
Fonts
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 93
11.2.4 Font Type (UBYTE)
Identifies the font type as one of the following:
Value Symbol 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 map-
ping (for example, Shift-JIS, JIS208, etc.). This native mapping allows the font to be used as a
stand-alone font, or it can be bound to another symbol set and then used.
11.2.5 Style MSB (UINT)
The style MSB (byte 4) is combined with the style LSB (byte 23) to make the style word, which
is calculated from the partial sums for posture, width, and structure. The binary structure of the
style word is shown below.
Style Word = Posture + (4 x Width) + (32 x Structure)
Value(#) =Posture (style word partial sum)
0 - Upright
1 - Italic
2 - Alternate Italic
3 - Reserved
=Width (style word partial sum multiplied by 4)
0 - Normal
1 - Condensed
2 - Compressed or extra condensed
3 - Extra compressed
4 - Ultra compressed
5 - Reserved
6 - Extended or expanded
7 - Extra extended or extra expanded
=Structure (style word partial sum multiplied by 32)
0 - Solid
1 - Outline
2 - In-line
3 - Contour, Edge effects
4 - Solid with shadow
a. Access to those codes that are unprintable, yet have a character defined, requires the
use of the Transparent Print (Esc & P # X) command
15 14 10 9 5 4 2 1 0
Xreserved structure width posture
Fonts
94 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
5 - Outline with shadow
6 - In-line with shadow
7 - Contour with shadow
8-11 -Patterned (complex patterns, subjective to typeface)
12-15 - Patterned with shadow
16 - Inverse
17 - Inverse in open border
18-30 - Reserved
31 - Unknown structure
The reserved bits (10 to 15) should be set to 0.
If a font style of “italic compressed contour” is downloaded, the value(#) would be:
1 +(2x4)+(3x32)=105
11.2.6 Baseline Position (UINT)
HP DeskJet 600 and 85X Series printers ignore this field.
TrueType - Set to 0.
11.2.7 Cell Width (UINT)
HP DeskJet 600 and 85X Series printers ignore this field.
11.2.8 Cell Height (UINT)
HP DeskJet 600 and 85X Series printers ignore this field.
11.2.9 Orientation (UBYTE)
Specifies font orientation. All font characters must have the same orientation as those speci-
fied in the font descriptor; otherwise they are discarded as they are downloaded.
0 = portrait (0 degrees; the orientation of the printer’s raster scan)
1 = landscape (90 degrees counterclockwise)
2 = reverse portrait (180 degrees counterclockwise)
3 = reverse landscape (270 degrees counterclockwise)
HP DeskJet 600 and 85X Series printers will rotate the fonts to match the paper’s physical
coordinate system for various paper sizes.
!
!
!
!
Fonts
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 95
11.2.10 Spacing (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.11 Symbol Set (UINT)
Bound Font - Specifies the symbol set characteristic of the font.
The value for this field is derived from the symbol set identification number (ID) used by Esc(lD
in the font selection process. The number portion (#) and the ASCII value of the letter portion
(L) of the ID are used to obtain the symbol set descriptor field value:
Symbol Set Descriptor Field = (# x 32) + (L - 64)
Assume the symbol set is US ASCII ISO-6. The symbol set table in the section
“Font Selection by Attribute,” identifies US ASCII as “0U”. Since # = 0 and U = 85, the field
value is 21:
Symbol Set Descriptor Field = (0 x 32) + (85 - 64) = 21
Unbound Font - This field should be set to 56 (1X) for unbound fonts.
11.2.12 Character Set (UINT16)
The Character Set field specifies the native mapping of a large font.
11.2.13 Pitch (UINT)
Bitmap Font - Specifies the pitch of the font in quarter-dot units (i.e., four quarter-dot units
equal one dot; also known as radix dots). It combines with Pitch Extended to specify the pitch
of the font in 1/1024 dots. Pitch defines the default HMI for the font.
For example, at 300 dpi (1200 quarter-dots/inch), a 17-ppi font has a pitch field of 70 and a
non-zero pitch extended field.
(1 inch /17char) x (300 dots / inch) x (4 radix dots / dot) = 70.588 radix dots
The remainder 0.588 is converted back to dots and then to 1/1024 dots:
(0.588 radix dots /4 radix dots per dot) x (1024 units / dot) = 150 units/dot
Pitch Extended is set to 1501/1024 units.
For proportional fonts, the width “printed” for a control code space is determined by the pitch
value unless HMI has been changed.
!
Fonts
96 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
11.2.14 Height (UINT)
Bitmap Font - Specifies the font’s height in quarter-dot units. The value, converted to points
(1/72 inch), is used as the height characteristic of the font. Height combines with Height
Extended to specify the design height of the font in 1/1024 dots.
For example, a 10 point font at 300 dpi has a height field of 166 quarter dots (1200 quarter
dots/inch, 1/72 inch/ point).
(10 point) x (1 inch /72 point) x (300 dots/inch) x (4 quarter-dots/dot) = 166.667
11.2.15 xHeight (UINT)
Bitmap Font - Specifies the height of the lower case “x” in quarter dots.
All HP DeskJet 600 and 85X Series printers ignore this field.
11.2.16 Width Type (SBYTE)
HP DeskJet printers ignore this field.
11.2.17 Style LSB (UBYTE)
The least significant byte of the style word. Refer to the Style MSB field.
11.2.18 Stroke Weight (SBYTE)
Specifies the thickness of the font characters. The standard stroke weight is 0 for a medium
font, 3 for a bold font, and -3 for a light font.
Value Stroke Weight
-7 Ultra thin
-6 Extra thin
-5 Thin
-4 Extra light
-3 Light
-2 Demi-light
-1 Semi-light
0Medium, Book, or Text
1Semi-bold
2Demi-bold
3Bold
4Extra bold
!
Fonts
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 97
11.2.19 Typeface [LSB/MSB] (UBYTE)
Specifies the HP typeface number of the font. Three versions of this field are used: the obso-
lete 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
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
5Black
6Extra black
7Ultra black
Default = 0
Range = -7 to 7 (less than -7 maps to -7; greater than 7 maps to 7)
MSB LSB
15 14 11 10 9 8 0
0Vendor Version Typeface Base Value
Value Stroke Weight
Fonts
98 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
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
10 Adobe Systems, Inc.
3, 5, 7, 9,11-15 Reserved
Default = 3
Range = 0 to 65535 (unavailable values are ignored)
Vendor Number (bits 11-14) - This HP-assigned value is between 0 and 15.
Vendor Version (bits 10, 9) - This value is between 0 and 3. It will change when the vendor
changes the width of a font or adds new characters to a font. A vendor code of 0 is reserved
for generic typeface selection so that older one-byte typeface values can still be used in the
generic typeface selection process.
Typeface Base Value (bits 0 to 8) - This value is between 0 and 511. Some of these values
include appearance width and structure information (i.e., Helvetica Compressed and Helvetica
Outline, etc.).
A typeface family value in which both Vendor and Version numbers are 0 is reserved for
generic type- face selection. That is, for typeface family values less than 512, the printer
exactly matches the LSB typeface base value field. For typeface values greater than or
equal to 512, the printer uses the full 16-bit typeface word.
PROCEDURE:
Typeface Family = Typeface Base Value + (Version x 512) + (Vendor x 2048)
The HP typeface number for Agfa’s Dom Casual typeface is 4157 (vendor value=2, version
value=0, and type- face value = 61).
61+(0x512)+(2x2048)=4157
11.2.20 Serif Style (UBYTE)
HP DeskJet 600 and 85X Series printers ignore this field.
11.2.21 Quality
HP DeskJet 600 and 85X Series printers ignore this field.
!
Fonts
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 99
11.2.22 Placement
HP DeskJet 600/800/900 & HP 2000 Series printers ignore this field.
11.2.23 Underline Position (SBYTE)
Bitmap Font - Specifies the distance from the baseline to the top dot row of the underline in
dots. Zero specifies an underline position at the baseline. A positive value specifies an 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.24 Underline Thickness (UBYTE)
Specifies the thickness of the underline in dots for a bitmap font.
Bitmap Font - Specified in dots. A bitmap font prints 3-dot thick underlines at 300 dpi and 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.25 Text Height (UINT)
Specifies the font’s optimum interline spacing for this font. This value is typically 120% of the
height of the font.
Bitmap Font - Specified in quarter-dot units.
Scalable Font - Specified in design window units (defined in the Scale Factor field).
11.2.26 Text Width (UINT)
Specifies the font’s average lowercase character width (it can be a weighted average).
Bitmap Font - Specified in quarter-dots.
Scalable Font - Specified in design window units (defined in the Scale Factor field).
!
!
Fonts
100 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
11.2.27 First Code (UINT)
Specifies the character code of the first printable character in the font. The space character
may be printable, and will print an image if one is defined; otherwise, a space control code is
executed.
For a type 3 font, this field can have any value from 0 through 65535. First Code must be less
than or equal to Last Code.
Symbol SetType First 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.28 Last Code/Number of Chars (UINT)
Specifies the character code of the last printable character in the font. This value may be
greater than the last code of the symbol set as implied by the symbol set type because there
may be components of compound characters that are not part of the symbol set, but must be
downloaded.
For a bound font, this field specifies the last downloadable character code in the font. For an
unbound font (type 10 or 11), it specifies the maximum number of characters that can be
downloaded into the font.
For a type 3 font, this field can be any value from First Code through 65535. Last Code can be
equal to First Code.
11.2.29 Pitch Extended (UBYTE)
Bitmap Font - This is an addition to the Pitch field that extends pitch an extra 8 bits to allow 10
bits of fractional dots. The value of this field is in 1/1024 dot units. For example, a 17-ppi font
for a 300-ppi device would have a Pitch field of 70 (17.5 dots or 17.1429 cpi) and a Pitch
Extended field of 150 (0.1465 dots additional, which adds to 17.6465 dots, or 17.0005 cpi). An
example of calculating the Pitch and Pitch Extended fields is provided in the Pitch field
description.
Scalable Font - This field is set to zero.
HP DeskJet 500 Series printers ignore this field. The HP DeskJet 600 and 85X Series
printers do not
11.2.30 Height Extended (UBYTE)
Bitmap Font - This is an addition to the Height field that extends the height an extra 8 bits to
allow 10 bits of fractional dots. The value of this field is in 1/1024 dot units. For example, a 10
!
Fonts
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 101
point font for a 300-ppi device would have a height of 166 (41.5 dots, or 9.96 points) and a
Height Extended field of 170 (0.1660 dots additional, which adds to 9.9998 points). This field is
similar to the Pitch Extended field (refer to the Pitch field example).
Scalable Font - This field is ignored and should be set to zero.
HP DeskJet 500 Series printers ignore this field. The HP DeskJet 600 and 85X Series
printers do not.
11.2.31 Cap Height (UINT)
Cap height is a percentage of the Em of a font and is used to calculate the distance from the
cap line (top of an unaccented, upper-case letter, e.g., “H”) to the baseline. An Em is a mea-
sure in decipoints of the height of a font; e.g., the em of a 10-point font is 100 decipoints.
Bitmap Font - Fonts containing a 0 in this field are assumed to have a cap height percentage
of 70.87% of em. The Cap Height data is represented as the product of the cap height per-
centage and the maximum unsigned integer:
0.7087 x 65535 = 46445
For nonzero values the Cap Height percentage is calculated as follows:
% = (Cap Height Data /65535) x 100
Scalable Font - Contains the cap height in design window units (as defined in the Scale Fac-
tor field).
11.2.32 Font Number (UINT)
Bitmap Font - Should be ignored and set to 0.
11.2.33 Font Name (ASC16)
This is a 16 byte ASCII character field in which the user may assign a font name.
11.2.34 X Resolution (UINT)
In resolution-specified bitmap fonts, this field specifies the resolution of the font in the X
dimension in dots per inch.
11.2.35 Y Resolution (UINT)
In resolution-specified bitmap fonts, this field specifies the resolution of the font in the Y
dimension in dots per inch.
!
Fonts
102 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
11.2.36 Copyright
This optional field contains ASCII data.
11.2.37 Font Scaling Technology
This field specifies either an Intellifont or TrueType scalable font or, for Format 16, a bitmap
font.
Value Font Scaling Technology
0Intellifont
1TrueType
254 bitmap
Using a value of 254 for bitmap fonts reserves the lower values for other font scaling technolo-
gies as they evolve.
11.2.38 Segment Size
The Segment Size field of a Format 16 font is 32 bits in length.
Fonts
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 103
11.3 Bitmap Resolution Segment
The BR (Bitmap Resolution) segment is used to define the X resolution and Y resolution of the
bitmap.
This segment must be present for bitmap fonts, otherwise the font is invalidated.
If the specified resolution is not supported by the device, the font is invalidated.
The structure for the BR segment is:
11.3.1 X Resolution (UINT16)
In resolution-specified bitmap fonts, this field specifies the resolution of the font in the X
dimension in dots per inch.
11.3.2 Y Resolution (UINT16)
In resolution-specified bitmap fonts, this field specifies the resolution of the font in the Y
dimension in dots per inch.
Byte 15 (MSB) 8 17 (LSB) 0 Byte
xBR x+1
x+2 Segment Size x+3
x+4 x+5
x+6 X Resolution x+7
x+8 Y Resolution x+9
Fonts
104 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
11.4 Character Enhancement Segment
The CE (Character Enhancement) segment is used to indicate if a downloaded font is allowed
to use the printer’s character enhancement algorithms. It allows soft-font vendors and ISVs to
use the printer’s algorithms to enhance their fonts.
The structure of the CE segment is:
11.4.1 Style (UINT32)
This field specifies the style treatments that the printer is allowed to apply to the font charac-
ters.
Style Word = Posture + Structure
Bit Positions (#) =Posture
1italics
0,2,3 reserved
=Structure
12 Outline
13 Shadow
14- 31 reserved
11.4.2 Stroke Weight (UINT32)
This field specifies the stroke weight (thickness of the font character strokes) for the printer to
apply to the font.
Byte 15 (MSB) 8 17 (LSB)
0Byte
xCE x+1
x+2 Segment Size x+3
x+4 x+5
x+6 Style x+7
x+8 x+9
x+10 Stroke Weight x+11
x+12 Sizing x+13
31 12 11 4 3 0
Structure Reserved Posture
15 9 87
0
Bolding Lightening
Fonts
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 105
Bit Positions (#) = StrokeWeight
0 - 6 reserved
7Semi Light
8“Book” or “Text”
9Semi-Bold
10 Demi-Bold
11 Bold
12 Extra Bold
13 Black
14 Extra Black
15 Ultra Black
11.4.3 Sizing (UINT16)
This field specifies the algorithmic size transformations that can be applied to the font. The
operation can apply to either the X or Y dimension of the characters.
Sizing Word = Reduction + Expansion
Bit Positions (#) = Reduction
00.5 X dimension
10.5 Y dimension
2 - 7 reserved
= Expansion
81.5 X dimension
91.5 Y dimension
10 2 X dimension
11 2 Y dimension
12 - 15 reserved
HP DeskJet 600, 700, 800 and HP 2000 Series printers support only 0.5 X/Y, 1.5 X/Y, and 2
X/Y.
15 8 7 0
Expansion Reduction
Fonts
106 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
11.5 Dual-Pitch-Space Char Segment
The DP (Dual-Pitch-Space Character Code) segment is used to specify the space character
code for full-width spacing (two-byte characters) and half-width spacing (one-byte characters).
The structure for the Dual-Pitch-Space Character Code segment is as follows:
11.5.1 Full-Width-Space Character Code
(UINT16)
This field contains the character code for a full-width space character (for two-byte character
sets).
11.5.2 Half-Width-Space Character Code
This field contains the character code for a half-width space character (for one-byte character
sets).
Byte 15 (MSB)
87 (LSB)
0Byte
x DP x+1
x+2 Segment Size x+3
x+4 x+5
x+6 Full-Width-Space Character Code x+7
x+8 Half-Width-Space Character Code x+9
HP LaserJet Bitmap Character Definition
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 107
12.0 HP LaserJet Bitmap Character Definition
The format for the HP LaserJet bitmap character definition and continuation block is shown
below. Format is set to 4, and Descriptor Size is set to 14.
12.0.1 Format (UBYTE)
Specifies the character descriptor format.
Value Format
082906A
182450A
3QuietJet
4LaserJet bitmap
5DeskJet
6PaintJet
7PaintJet XL
8RuggedWriter
9DeskJet PLUS
19 Intellifont
12 DeskJet 500
15 TrueType
The character is discarded if the format is different from that expected by the device.
HP DeskJet 600 and 85X Series printers support only format 4.
Byte 15 (MSB) 8 7 (LSB) 0
0Format (4) Continuation (0)
2Descriptor Size (14) Class (1)
4Orientation Reserved (0)
6Left Offset
8Top Offset
10 Character Width
12 Character Height
14 Delta X
16 Bitmap Character Data: (in bytes)
....
0Format (4) Continuation (non-zero)
2Bitmap Character Data: (in bytes)
....
!
HP LaserJet Bitmap Character Definition
108 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
12.0.2 Continuation (BOOL)
Specifies whether the following data is a character descriptor block (0) or a continuation (non-
zero) of the data associated with the previous character descriptor.
If the byte count in the value field of the Define Character command exceeds 32767, the char-
acter must be sent in 2 or more blocks. The additional bytes are sent in as many continuation
blocks as needed (except compound characters).
Compound characters (e.g., accented characters) cannot be continued.
A character that has not received all the character data is an “incomplete” character. There is
at most one incomplete character at a time. If an incomplete character is deleted, any subse-
quent continuation downloads are ignored.
A continuation block that is downloaded before the first block was received is ignored.
12.0.3 Descriptor Size (UBYTE)
Specifies character descriptor size in bytes. The descriptor follows the character header,
which consists of the first two bytes of the character definition (the Format and Continuation
fields). For bitmap characters, the descriptor size includes Descriptor Size through Delta X.
For Intellifont characters, the descriptor size includes only Descriptor Size and Class. For Tru-
eType characters, the descriptor size includes Descriptor Size and Class, but additional
descriptor information can follow; therefore, the minimum TrueType descriptor size is 2.
Value Device
6 DeskJet (Format 5 or 9 character descriptor)
7 DeskJet (Format 12 character descriptor)
2Intellifont
2+ TrueType (additional descriptor information can be added)
14 LaserJet bitmap
12.0.4 Class (UBYTE)
Specifies the format of the character data.
Value Class
1 Bitmap
2 Compressed bitmap
3Intellifont
4Compound Intellifont
15 TrueType
Class 1: Bitmap Data - Class 1 character data is a string of bytes containing the dot-per-bit
image of the character, with no compression. A “1” bit causes the dot to be printed.
The data is grouped in dot rows describing a one-dot high strip of the character from left to
right in the direction of the printer’s raster scan. The dot rows are organized from top to bottom
HP LaserJet Bitmap Character Definition
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 109
of the character (in portrait orientation): the first dot row of data corresponds to the first dot row
of the character. The end of each row is padded with zero bits so it contains an integral num-
ber of bytes.
The number of bytes of the character data should be exactly the Character Width (in bytes)
times the Character Height. Additional data is discarded. The character will consist only of the
downloaded character data, even if this is insufficient.
Class 2: Compressed Bitmap Character Data - (see the figure below) Class 2 character
data is composed of a string of bytes using a compressed run-length-with-line-repetition for-
mat. The first byte tells how many times the first row is repeated after the initial row. The sec-
ond byte tells how many white dots start the row (if the first dot is black, the second byte is 0).
The third byte tells how many black dots follow, the fourth byte tells how many white dots fol-
low that, etc., until the end of the row.
The character width (dots) field in the character descriptor determines the row width: the dot
count for each row in the character cell must equal the character width. For example, in the fol-
lowing figure, the cell width is 20; thus each row (excluding the repetition count byte) adds up
to 20.
The fully described row is duplicated the number of times indicated by its first byte. After the
duplication, the next byte indicates the repetition count for the next row.
More than 255 dots of the same type in a row is indicated by a byte containing 255, followed
by a byte containing 0 (meaning there are none of the opposite type of dots), followed by a
byte containing the count of the remaining dots of the current type.
HP LaserJet Bitmap Character Definition
110 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Class 2 Compressed Bitmap Character Data
Character
Height
Left
Offset Character Width Padding
for Byte
Alignment*
Line
Repetition
Number
White
Pixels
Number
Black
Pixels
Number
White
Pixels
Number
Black
Pixels
Number
White
Pixels
Number
Black
Pixels
2
0
0
12
1
0
0
0
8
5
20
2
1
4
10
-
6
7
8
5
-
4
4
-
-
-
6
7
-
-
-
2
1
-
-
*Byte alignment is necessary only for raster data (i.e., not for compressed raster data).
Uncompressed - 60 bytes
Compressed - 25 bytes
HP LaserJet Bitmap Character Definition
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 111
12.0.5 Orientation (UBYTE)
Bitmap fonts only. Specifies the orientation of the character. Character orientation must match
the orientation in the font descriptor, as follows:
Value Orientation
0 Portrait
1Landscape
2Reverse-portrait
3Reverse-landscape
The character is discarded if the orientation is not supported or is different from the font orien-
tation.
12.0.6 Left Offset (SINT)
Bitmap fonts only. Specifies the distance in dots from the reference point to the left side of the
character pattern on the physical page coordinate system (i.e. this value is orientation depen-
dent). The left and top offsets locate the character reference point about CAP.
HP DeskJet 600 and 85X Series printers recognize a range of -16384 to 16384.
12.0.7 Top Offset (SINT)
Bitmap fonts only. Specifies the distance in dots from the reference point to the top of the char-
acter pattern on the physical page coordinate system (i.e. this value is orientation dependent).
The left and top offsets locate the character reference point about CAP.
HP DeskJet 600 and 85X Series printers recognize a range of -16384 to 16384.
12.0.8 Character Width (UINT)
Bitmap fonts only. Specifies the width of the character in dots on the physical coordinate sys-
tem (i.e. this value is orientation dependent). Generally, this width is from the farthest left black
dot to the farthest right black dot.
HP DeskJet 600 and 85X Series printers recognize a range of 1 to 16384.
12.0.9 Character Height (UINT)
Bitmap fonts only. Specifies the height of the character in dots on the physical coordinate sys-
tem (i.e. this value is orientation dependent).
HP DeskJet 600 and 85X Series printers recognize a range of 1 to 16384.
HP LaserJet Bitmap Character Definition
112 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
12.0.10 Delta X (SINT)
Bitmap fonts only. Specifies the number of quarter-dot units (radix dots) by which the horizon-
tal position within the HP PCL logical page coordinate system is incremented after printing the
character. If the value field is negative, the value is set to 0. This value is used by the printer
only when the font is proportionally spaced.
12.0.11 Character Data
The character data is in the format specified by the class field.
Banner Printing
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 113
13.0 Banner Printing
The following information concerns the printing of continuous forms (banners, z-fold media) on
the HP DeskJet 680 and 690 Series printers. This is the only information made available by
the VCD R&D lab. There are no new HP PCL commands for banner printing. The only HP
PCL command that has actually been modified in association with printing on continuous
media is the command. Only media sizes (as selected with the Media Size command) US Let-
ter and ISO/JIS A4 can be used for continuous form printing.
13.0.1 Media Source
Esc & l # H
The HP DeskJet 680 and 690 Series printers add support for sources -1 (z-fold) and 1 (Tray 1,
cut sheet).
Default media source is Tray 1.
Note that the value used for the variable parameter in the command (“#”), like the rest of the
command, is an ASCII character string. Therefore, a value of “-1” would actually be sent to
the printer as a hex equivalent of “2E 31”.
The HP DeskJet 680 and 690 Series printers support values -1, 0, and 1. When the media
source is z-fold, a value of ”0” will eject one blank page. If media remains in the mecha-
nism, the printer will enter a paper-unloading state (see Unloading Continuous Media,
below). In this state, the top LED on the face of the printer will flash, and pressing the
RESUME button will advance one page.
The banner source is only supported for media sizes (see Esc & l # A) of US-Letter (11 inches)
and ISO/JIS A4 (11 2/3 inches). All other media sizes will only load from the cut sheet media
source (Tray 1). This is to ensure that only banners of lengths HP has tested will be printed.
If the printer runs out of paper in the middle of a banner, the rest of the banner data (until the
Esc & l 0 L) will be discarded. There will be no front panel indication when this data is dis-
carded.
In the absence of bidirectional communication, if Tray 1 is selected while continuous media is
loaded at the paper sensor, the mechanism will print the cut sheet job on the continuous
media, as if it were a cut sheet job.
!
Banner Printing
114 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
13.0.2 Margins
Margins in banners are handled the same as margins with cutsheet media. Default top and
bottom margins are 1/2 inch. If perforation skip is disabled (Esc * l 0 L), the margins are
adjusted to 0 top and bottom. The initial cursor (CAP) position in each page is calculated by:
top margin + (3/4 * current line feed) {where current line feed = 1/lines per inch}
With perf skip disabled, the default cursor position is:
0 + (3/4 * 1/6 inch) = 1/8 inch
To position raster graphics at position 0, it is necessary to execute a negative cursor move.
For example Esc * p - 38 Y will move backwards 1/8 inch. Esc * p 0 Y also works when perf
skip is disabled
13.0.3 Command Sequence
The media source must be selected for Continuous Forms before the negative cursor move is
performed, as the Media Source command will default the cursor position to the top left corner
of the defined logical page. In most cases, this defaulting action will leave some amount of top
margin, resulting in a gap appearing in the banner image at the media perforation. By setting
the media source first, and following that command with the negative cursor move, banner
images can be printed. Remember that the negative cursor move must be performed at the
beginning of each new page.
13.0.4 Moving to a New Logical Page
Since raster graphics moves are clipped to the current logical page, it is necessary to explicitly
move to a new page once the current page is filled. As shown in the HP PCL example on the
following page, this may be accomplished by sending a form feed (followed by the appropriate
cursor positioning).
Raster graphics advances never move to the next page, any excess rasters (raster data that
would exceed the logical page boundary) will be discarded. If a raster block spans a page
boundary, it must be sent as multiple blocks, along with the appropriate cursor positioning to
align on the physical media.
For text printing on continuous media, line feeds or form feeds may be used to advance to the
next logical page.
13.0.5 Unloading Continuous Media
When the printer has completed a continuous-media print job, it will advance the paper to the
end of the page after the current page. If media remains in the mechanism, the top LED will
flash. Pressing the Resume button will advance one page. Media must be removed and rein-
serted between each banner print job.
Banner Printing
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 115
13.0.6 Power-On with Continuous Media
The firmware will remember what media type is loaded. If powered down with continuous
media loaded, the firmware will power on with the top LED flashing (as described above)
allowing the user to unload the continuous media if cutsheet media is desired for the next print
job.
13.0.7 Power-Off with Continuous Media
If the Power key is pressed while in the middle of a banner page, the media will first be
advanced to the next top of form before turning the printer off. Any unprinted data will be lost.
13.0.8 Printing Cutsheet with Z-Fold Media
Attempting to print cutsheet media while z-fold media is loaded and there exists a bidirectional
I/O connection between the host and printer, will halt the printer in an error state. Power
cycling will clear the error.
Without a bidirectional I/O connection, the printer will format and print the cutsheet job on the
z-fold media.
13.1 Sample HP PCL for a Banner Print Job
Spaces are included in the escape sequences in the preceding example to enhance readability.
Spaces should not be included in the actual escape sequences sent to the printer.
HP PCL Command Escape Sequence Notes
Reset Esc E Set HP PCL to default state
Media Source Esc & l -1 H Continuous Forms
Media Size Esc & l 2 A US Letter
Perf Skip Off Esc & l 0 L Top/Bottom margins set to zero
CAP Position Esc * p -300 Y or
Esc * p 0 y Move to top of logical page (move is
clipped to page)
Transfer Rasters Esc * b # V/W Image data for one page
Form Feed FF Move to next logical page
CAP Position Esc * p -300 Y or
Esc * p 0 y Move to top of logical page (move is
clipped to page)
Transfer Rasters Esc * b # V/W Image data for another page
Form Feed FF Move to next logical page
Eject Banner Esc & l 0 H Advances one more page and allows
user unloading
Reset Esc E Set HP PCL to default state for next
job
HP PCL Code Samples
116 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
14.0 HP PCL Code Samples
The following pages contain PCL code samples that are intended to address some of the most
commonly asked support questions. Key among these questions are coding general page for-
matting, 4-plane color graphics, and using Configure Raster Data (CRD).
14.1 Page Formatting Program Example
The following example is old, but covers the essential page formatting commands. While
there is no one best way to write a page formatting program, you can use this example as a
starting point. When performed in the order given, the set of commands prints the output
shown in the figure at the end of the example.
The example assumes the following formatting objectives:
44
Select US Letter size paper
44
Select portrait page orientation
44
Set 3/4 in. top, left, and right margins
44
Set 11/4 in. bottom margin
44
Establish a header centered approximately in the middle of the top margin
44
Establish a footer 5/8 inch from the bottom of the paper
44
Set line spacing at 8 lpi
44
Use Letter Gothic and CG Times typefaces
No assumption is made as to the status of the configuration switches.
Command Line,
Action Command Comment
Reset Printer Esc E Returns the printer to its default
settings.
* Set Paper Size Esc & l 2 A Selects U.S. Letter size paper 8 1/2
X 11 in.
* Set Portrait
Orientation Esc & l 0 O
Enable Perforation
Skip Mode Esc & l 1 L Default top margin is 1/2 in.
Set Line Spacing Esc & l 8 D 8 lpi is used for page length and
margin calculations.
Specify Page Length Esc & l 88 P 11 in. X 8 lpi = 88 lines
Set Top Margin Esc & l 6 E 3/4 in. margin X 8 lpi = 6 lines
!
HP PCL Code Samples
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 117
Set Text Length Esc & l 72 F 11 in. page length - [3/4 in. margin +
1 1/4 in. bottom margin] = 9 in. 9 in.
X 8 lpi = 72 lines
Specify Fixed 12 cpi Esc (s 0 p 12 H 12 cpi is used to set columns for side
margin calculations.
Set Left Margin Esc & a 6 L 3/4 in. margin = [6 columns X 12 cpi
(selected font pitch)] + 1/4 in.
unprintable region
Set Right Margin Esc & a 90 M Page width is 8 1/2 in. The
unprintable region accounts for 1/4
in. leaving 8 1/4 in. (99 columns at 12
cpi). To set the 3/4 in. margin set the
page width at 7 1/2 in. (90 columns at
12 cpi).
Position CAP for
Header Esc * p - 95y + 475 X Relative movement. 95 decipoints
up 475 decipoints to the right.
Select Character Set Esc (12U Selects PC-850 character set.
Select Header Font Esc (s 6 h 12 v 0 s 3 b 6
TSets font to Letter Gothic 6cpi 12
point bold.
Header Text DeskJet Printer Family
Set VMI to 9/48 in. Esc & l 9 C Provides a desirable line spacing for
12 point font used in main text.
End Header <CR> <LF> Moves CAP out of header and
positions it at top/left margin.
Set Main Text Font Esc (s 1p 12v 0s 0b
4101T Sets font to CG Times 12 point.
Main Text In February 1988 HP
introd.....
Position CAP for Footer Esc * p 2875 y 1800 X Absolute movement
Specify Footer Font Esc (s 0p 24h 6v 0s 0b
6T Sets font to Letter Gothic
Footer Text
Reset Printer Esc E Clears partially composed pages;
returns printer to default settings.
Command Line,
Action Command Comment
HP PCL Code Samples
118 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
14.2 Commands Sent to Printer
The series of escape sequences in the table above sends the following commands to the
printer. The series of dots (...) indicate main text. Spaces in escape sequences are for clarity
only; do not include them in the data stream.
EscE Esc&ll2a0O Esc&k1w5W Esc& ll1ll8d88p6e72F Esc(s0p12H Esc&a6ll90M Esc*p-
95y+475X Esc(12U Esc(s6h12v0s3b6TDeskJet Printer Family Esc(& ll9C
Esc(s1p12v0s0b4101TIn February 1988, HP introduced the original DeskJet printer at a U.S.
List price of $995. The DeskJet's market position was “Laser Quality Output for Under $1,000”
and offered a superior print quality alternative for users intending to upgrade to 24 wire dot
matrix printers.
In April 1989...
...support for MS Windows 3.0. Esc*p2875y1800X Esc(s0p24h6v0s0b6TCopyright 1990
Hewlett-Packard Co. EscE
This example is a guideline to illustrate page formatting. Depending upon the application,
other methods may be used to achieve the desired printed page. For example, if you want a
header and/or footer to be placed on each page, you can turn Perforation Skip Mode OFF,
allowing the header to sit at the top margin. You can then use vertical positioning commands
to move CAP into position for the main text. Likewise, you can set the printer side margins to
0. You can then use horizontal positioning commands to position CAP for the start of each
line.
HP PCL Code Samples
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 119
14.3 3-Plane Color Graphics
The following shows a simple 3 plane color graphics PCL code sample that prints CYAN,
MAGENTA, YELLOW, then blends them together to produce BLACK, RED, GREEN and
BLUE.
PCL Codes HEX Data (Run Length Compression) Description
<esc>E Reset printer
<esc>*r-3U Simple color(3 plane)
<esc>*r0A Start raster
<esc>*b1M Compression method
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data)
<esc>*b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data)
<esc>*b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data)
<esc>*rC End Raster
<esc>E Reset printer
HP PCL Code Samples
120 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
14.4 4-Plane Color Graphics
The following shows a simple 4 plane color graphics PCL code sample that prints BLACK,
CYAN, MAGENTA, YELLOW, then blends them together to produce BLACK, RED, GREEN
and BLUE.
PCL Codes HEX Data (Run Length Compression) Description
<esc>E Reset printer
<esc>*r-4U Simple color(4 plane)
<esc>*r0A Start raster
<esc>*b1M Compression method
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
HP PCL Code Samples
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 121
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data)
<esc>*b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data)
<esc>*b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data)
<esc>*b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data)
<esc>*rC End Raster
<esc>E Reset printer
PCL Codes HEX Data (Run Length Compression) Description
Printer Commands
122 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
15.0 Printer Commands
Escape
Sequence Action - Result Escape
Sequence Action - Result
Esc & a # C Move CAP Horizontal (Columns) aEsc * o # Q Mechanical Print Quality
Esc & a # H Move CAP Horizontal (Deci-
points) Esc * p # X Move CAP Horizontal (HP PCL Units)
Esc & a # L Left Side Margin Column # Esc * p # Y Move CAP Vertical (HP PCL Units)
Esc & a # M Right Side Margin Column # Esc * r # A Start Raster
aEsc & a # R Move CAP Vertical (Rows) Esc * r C End Raster
aEsc & a # V Move CAP Vertical (Decipoints) aEsc * r # Q Raster Graphics Quality
aEsc & b # T Dry Timer ( in seconds) Esc * r # S Source Raster Width
Esc & d # D Enable Underline Esc * r # U Simple Color
Esc & d @ Disable Underline Esc * t # R Raster Resolution
Esc & k # G Line Termination Esc * v # S Foreground Color
Esc & k # H Horizontal Motion Index (HMI) Esc ( # X Font Selection by ID - Primary
Esc & l # A Page Size Esc ) # X Font Selection by ID - Secondary
Esc & l # C Vertical Motion Index (VMI) Esc ( ID Font Symbol Set - Primary
aEsc * b # B Gray Balance Esc ) ID Font Symbol Set - Secondary
Esc & l # D Line Spacing (in lines per inch) Esc ( s # B Font Stroke Weight - Primary
aEsc * b # S Seed Row Source Esc ) s # B Font Stroke Weight - Secondary
Esc & l # E Top Margin (in lines at current lpi) Esc ( s # H Font Pitch - Primary (in CPI)
Esc & l # F Text Length Esc ) s # H Font Pitch - Secondary (in CPI)
Esc & l # H Media Source Esc ( s # P Font Spacing - Primary
Esc & l # L Perforation Skip Mode Esc ) s # P Font Spacing - Secondary
Esc & l # M Media Type Esc ( s # Q Font Quality - Primary
Esc & l # O Orientation Esc ) s # Q Font Quality - Secondary
Esc & l # P Page Length (in lines-current
lines per inch) Esc ( s # S Font Style - Primary
Esc & s # C End-of-Line Wrap Esc ) s # S Font Style - Secondary
Esc * b # M Compression Method Esc ( s # T Font Typeface - Primary
Esc * b # V Transfer Raster by Plane Esc ) s # T Font Typeface - Secondary
Esc * b # W Transfer Raster by Row/Block Esc ( s # V Font Height - Primary (in points)
Esc * b # Y Raster Y Offset Esc ) s # V Font Height - Secondary (in points)
Esc * c # D Font ID Esc ( s # W Download Character
Printer Commands
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 123
Esc * c # E Character Code Esc ) s W Download Font
Esc * c # F Font Control Esc Y Display Functions Mode On
Esc * o # M Print Quality Esc Z Display Functions Mode Off
a. Obsolete commands for 6XX printers and above.
Other Resources for Assistance
124 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
16.0 Other Resources for Assistance
16.1 HP Developer Exchange
Available on the World Wide Web - HP Printing & Imaging Solution Provider Program.
Become a registered HP Developer, and receive other documents like this one on other HP
products.
HP Printing & Imaging Solution Provider Program can be found at:
http://dsportal.eservices.hp.com/dspp/home/home_DSPPJumpPage_IDX/
16.2 Comments & Feedback
Feedback on this guide is welcome - send any errors you may find to:
VAC_DESKJET@HP.COM. Please note - this email address is not for technical support -
and you may not receive a personalized response from this email address.

Navigation menu