HP Deskjet 600 User Manual

Page 1
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Hewlett-Packard Vancouver Site
To aid in HP PCL printer driver development for HP DeskJet 600/700/800/900 & HP 2000 Series printers
Page 2
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
2 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 3
About this Developer’s Guide
2.0 About this Developer’s Guide
2.1 Which printers are covered by this guide
Throughout this HP PCL Developer’s Guide you will see printer names referenced. Here is a list of actual names and the “Series” names used throughout this guide.
2.1.1 HP DeskJet 600 Series: 630C*, 640C*, and 656C*
HP DeskJet 600 - HP DeskJet 600, HP DeskJet 600C HP DeskJet 610C - HP DeskJet 610C, HP DeskJet 610CL, HP DeskJet 612C HP DeskJet 660C - HP DeskJet 660C, HP DeskJet 660Cse HP DeskJet 670C - HP DeskJet 670C, HP DeskJet 670TV, HP DeskJet 672C HP DeskJet 680C - HP DeskJet 680C, HP DeskJet 682C HP DeskJet 690C - HP DeskJet 690C, HP DeskJet 692C, HP DeskJet 693C,
HP DeskJet 694C
HP DeskJet 695C - HP DeskJet 695C, HP DeskJet 695Cci, HP DeskJet 697C
2.1.2 HP DeskJet 800 Series: 840C*
HP DeskJet 810C - HP DeskJet 810C, HP DeskJet 812C, HP DeskJet 815C HP DeskJet 830C - HP DeskJet 830C HP DeskJet 850C - HP DeskJet 850C, HP DeskJet 855C, HP DeskJet 855Cse,
HP DeskJet 855Cxi
HP DeskJet 870C - HP DeskJet 870Cse, HP DeskJet 870Cxi HP DeskJet 880C - HP DeskJet 880C, HP DeskJet 882C HP DeskJet 890C - HP DeskJet 890C, HP DeskJet 890Cse, HP DeskJet 890Cxi,
HP DeskJet 890CM
HP DeskJet 895C - HP DeskJet 895Cse, HP DeskJet 895Cxi
1
2.1.3 HP DeskJet 900 Series: 920C*, 940C*, 960C*, 980C*, and 990C*
HP DeskJet 930C, 950C, and 970C - HP DeskJet 930Cxi, 950Cxi, and 970Cxi
2.1.4 HP 2000C Series
HP 2000C - HP 2000C, HP 2000CN, HP 2000Cse, HP 2000Cxi
1. HP DeskJet 710C, 712, HP DeskJet 720C, 722C, and HP DeskJet 820Cse, 820Cxi printers are “Windows” printers. See Section 2.2.1 “Special Note” regarding these printers. * Product will appear in December 2001 revision
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 3
Page 4
About this 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.
4 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 5
Table of Contents
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
3.0 Table of Contents5
4.0 How This Developer’s Guide Works10
4.0.1 Page Length10
4.0.2 The Command Description Page10
4.0.3 Command Name10
4.0.4 Escape Sequence11
4.0.5 Command Summary11
4.0.6 Command Usage Table11
4.0.7 Command Options11
4.0.8 Command Option Recognition Grid11
4.0.9 Effect of Command Options11
4.0.10 Detailed Command Description12
4.0.11 Important Point12
printers4
5.0 Introduction to HP PCL13
5.1 History of HP PCL Printer Language13
5.1.1 What are Printer Commands?13
5.1.2 Control Codes13
5.1.3 HP PCL Commands13
5.2 Syntax of Escape Sequences14
5.2.1 Two-Character Escape Sequences14
5.2.2 Parameterized Escape Sequences14
6.0 The Page17
6.1 Logical Page, Physical Page17
6.2 Page Layout18
6.2.1 Current Active Position (CAP)18
6.2.2 CAP Reference Point19
7.0 The Print Environment20
8.0 Merged Text and Graphics21
9.0 Programming Hints22
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 5
Page 6
Table of Contents
9.0.1 Follow Specifications22
9.0.2 Leverage from Previous Programs22
9.0.3 Priority of Feature Set Commands22
9.0.4 Priority of Commands23
9.0.5 Time Savers23
10.0 HP PCL Commands25
10.1 Control Codes and Special Character Codes25
10.1.1 Escape25
10.2 Testing Commands25
10.3 Print Modes25
10.3.1 Transparent Data Mode25
10.3.2 Display Functions Mode ON26
10.3.3 Display Functions Mode OFF26
10.4 Text Enhancements27
10.4.1 Enable Underline27
10.4.2 Disable Underline28
10.4.3 Line Termination28
10.4.4 End-of-Line Wrap29
10.5 Job Control30
10.5.1 Reset30
10.6 Printer Control31
10.6.1 Gray Balance31
10.6.2 Dry Timer32
10.6.3 Print Quality33
10.6.4 Media Type34
10.6.5 Unit of Measure34
10.7 Printer Diagnostics36
10.7.1 Self-Test36
10.8 Page Control37
10.8.1 Page Length37
10.8.2 Page Size38
10.8.3 Media Source40
10.8.4 Orientation41
10.8.5 Horizontal Motion Index42
10.8.6 Vertical Motion Index43
10.8.7 Line Spacing44
10.8.8 Clear Horizontal Margins44
10.8.9 Left Margin45
10.8.10 Right Margin45
10.8.11 Top Margin46
10.8.12 Text Length47
10.8.13 Perforation Skip Mode47
10.9 Horizontal Positioning Commands49
10.9.1 Backspace49
10.9.2 Carriage Return49
10.9.3 Space49
10.9.4 Linefeed49
6 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 7
Table of Contents
10.9.5 Formfeed50
10.9.6 Horizontal Tab50
10.9.7 Move CAP Horizontal (Decipoints)51
10.9.8 Move CAP Horizontal (Columns)52
10.9.9 Move CAP Horizontal (HP PCL Units)52
10.10 Vertical Positioning Commands54
10.10.1 Move CAP Vertical (Rows)54
10.10.2 Move CAP Vertical (Decipoints)55
10.10.3 Move CAP Vertical (HP PCL Units)56
10.11 Font Selection57
10.11.1 Font Selection by Attribute57
10.11.2 Font Symbol Set57
10.11.3 Font Spacing60
10.11.4 Font Pitch60
10.11.5 Font Height61
10.11.6 Font Style62
10.11.7 Font Stroke Weight64
10.11.8 Font Selection by ID65
10.12 Downloading Fonts66
10.12.1 Font ID66
10.12.2 Download Font67
10.12.3 Character Code68
10.12.4 Download Character68
10.12.5 Font Control69
10.13 Raster Graphics70
10.13.1 Raster Mode70
10.13.2 Commands Locked Out of Raster Mode70
10.13.3 Commands Allowed in Raster Mode70
10.13.4 Start Raster71
10.13.5 End Raster71
10.13.6 Raster Resolution72
10.13.7 Source Raster Width73
10.13.8 Y Offset74
10.14 Raster Data Transfer75
10.14.1 Transfer Raster by Plane75
10.14.2 Transfer Raster by Row/Block76
10.15 Raster Compression77
10.15.1 Compression Method77
10.16Color84
10.16.1 Simple Color84
10.16.2 Foreground Color87
11.0 Fonts90
11.1 Standard Bitmap Font Definition90
11.2 Resolution-Specified Bitmap Font Definition91
11.2.1 Font Descriptor Size (UINT)92
11.2.2 Descriptor Format (UBYTE)92
11.2.3 Symbol Set Type (UBYTE)92
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 7
Page 8
Table of Contents
11.2.4 Font Type (UBYTE)93
11.2.5 Style MSB (UINT)93
11.2.6 Baseline Position (UINT)94
11.2.7 Cell Width (UINT)94
11.2.8 Cell Height (UINT)94
11.2.9 Orientation (UBYTE)94
11.2.10 Spacing (BOOL)95
11.2.11 Symbol Set (UINT)95
11.2.12 Character Set (UINT16)95
11.2.13 Pitch (UINT)95
11.2.14 Height (UINT)96
11.2.15 xHeight (UINT)96
11.2.16 Width Type (SBYTE)96
11.2.17 Style LSB (UBYTE)96
11.2.18 Stroke Weight (SBYTE)96
11.2.19 Typeface [LSB/MSB] (UBYTE)97
11.2.20 Serif Style (UBYTE)98
11.2.21 Quality98
11.2.22 Placement99
11.2.23 Underline Position (SBYTE)99
11.2.24 Underline Thickness (UBYTE)99
11.2.25 Text Height (UINT)99
11.2.26 Text Width (UINT)99
11.2.27 First Code (UINT)100
11.2.28 Last Code/Number of Chars (UINT)100
11.2.29 Pitch Extended (UBYTE)100
11.2.30 Height Extended (UBYTE)100
11.2.31 Cap Height (UINT)101
11.2.32 Font Number (UINT)101
11.2.33 Font Name (ASC16)101
11.2.34 X Resolution (UINT)101
11.2.35 Y Resolution (UINT)101
11.2.36 Copyright102
11.2.37 Font Scaling Technology102
11.2.38 Segment Size102
11.3 Bitmap Resolution Segment103
11.3.1 X Resolution (UINT16)103
11.3.2 Y Resolution (UINT16)103
11.4 Character Enhancement Segment104
11.4.1 Style (UINT32)104
11.4.2 Stroke Weight (UINT32)104
11.4.3 Sizing (UINT16)105
11.5 Dual-Pitch-Space Char Segment106
11.5.1 Full-Width-Space Character Code106
11.5.2 Half-Width-Space Character Code106
12.0 HP LaserJet Bitmap Character Definition107
12.0.1 Format (UBYTE)107
12.0.2 Continuation (BOOL)108
8 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 9
Table of Contents
12.0.3 Descriptor Size (UBYTE)108
12.0.4 Class (UBYTE)108
12.0.5 Orientation (UBYTE)111
12.0.6 Left Offset (SINT)111
12.0.7 Top Offset (SINT)111
12.0.8 Character Width (UINT)111
12.0.9 Character Height (UINT)111
12.0.10 Delta X (SINT)112
12.0.11 Character Data112
13.0 Banner Printing113
13.0.1 Media Source113
13.0.2 Margins114
13.0.3 Command Sequence114
13.0.4 Moving to a New Logical Page114
13.0.5 Unloading Continuous Media114
13.0.6 Power-On with Continuous Media115
13.0.7 Power-Off with Continuous Media115
13.0.8 Printing Cutsheet with Z-Fold Media115
13.1 Sample HP PCL for a Banner Print Job115
14.0 HP PCL Code Samples116
14.1 Page Formatting Program Example116
14.2 Commands Sent to Printer118
14.3 3-Plane Color Graphics119
14.4 4-Plane Color Graphics120
15.0 Printer Commands122
16.0 Other Resources for Assistance124
16.1 HP Developer Exchange124
16.2 Comments & Feedback124
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 9
Page 10
How This Developer’s Guide Works
4.0 How This Developer’s Guide Works
Below is a sample command description chart from this guide. On the following pages you can find descriptor names for the various parts of the graph.
A
4.0.1 Page Length
TABLE 1. Page Length - Esc & ll # P
E
F
#
Value
0 1 .. n
Default Range
G
DJ600
DJ610C
DJ660C
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 (66 lines per page) 1 to maximum supported paper size - Command is ignored for out of
range values
D
Designates the number of lines on the logical page at the current VMI (Vertical Motion Index) setting.
I
This command performs the following actions:
B
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
le Ch
44
Prints any unprinted pages.
44
Ejects the current page if printable data has been received (FF-CR).
44
Sets text length, top margin, left margin, and right margin to user defaults.
44
Moves CAP to the left edge of the logical page at the top of form.
Samp
The printer may select a different page size for the same line count, since lines are defined by the current VMI. This command is ignored if VMI is 0.
C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
art Only!
H
HP2000C
Page length set to 66 lines Page length is set, in number of
lines, at the current lpi
EFFECT
4.0.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.
10 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
B
A
Page 11
How This Developer’s Guide Works
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.
C
D
E
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.
F
H
G
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 11
Page 12
How This Developer’s Guide Works
!
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
12 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 13
Introduction to HP PCL
!
5.0 Introduction to HP PCL
5.1 History of HP PCL Printer Language
Hewlett-Packard created the HP PCL Printer Language to provide an economical and efficient way for application programs to control a range of printer features across a number of printing devices. HP has evolved both the definition and implementations of the HP PCL printer 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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 13
Page 14
Introduction to HP PCL
Once an HP PCL command sets a parameter, that parameter will remain set until that HP PCL command is repeated with a new value, the printer is reset to its user default environment, or another command makes a change. For example, if you send the printer a command to set line spacing to 3 lines/inch, each page will print 3 lines/inch until the printer receives a Line Spacing or VMI command or the printer is reset.
5.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. X Parameterized Character - A character from the ASCII table within the range 33-47 deci-
mal ("!" through "/") indicating that the escape sequence is parameterized. y Group Character - A character from the ASCII table within the range 96-126 decimal (" ' "
through "~") which specifies the group type of control being performed. # Value Field - A group of characters specifying a numeric value. The numeric value is 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.
14 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 15
Introduction to HP PCL
!
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.
Esc & l l 1 O
Escape
Character
Termination Character
Value
Parameterized
Field
Character
Group
Character
44
Some escape sequences shown in this manual contain spaces between characters for clarity. Do not include these spaces when using escape sequences.
44
Also, in the escape sequence a script "l” is used to indicate a lower case "l" for clarity.
The following is an example of two escape sequences, each of which perform one function: the first sets the logical page orientation to Portrait Mode, and the second sets the page size to 8 ½ x 11 inches.
Esc & l 0 O and Esc & l 2 A These two escape sequences can be combined into one escape sequence as follows:
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 15
Page 16
Introduction to HP PCL
Esc & ll 1 o 2 A
Escape
Character
Parameterized
Character
Group
Character
Value
Parameter Character
Termination Character
Field
Value
Field
Notice that the "Esc" and the "&l" are dropped from the second printer command when they are combined. Also, the upper-case "O" that terminated the first command becomes a 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.
16 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 17
The Page
Paper Size
6.0 The Page
6.1 Logical Page, Physical Page
The HP PCL printer language distinguishes between the physical page and the logical page. The physical page is the actual sheet of paper. Its size is determined by the size of the media installed in the printer. The logical page defines the addressable area in which the cursor can be positioned.
CAP (Current Active Position) refers to the "cursor" position on the logical page, similar to the cursor used on most computer terminals. The CAP location on the logical page is the next position where a character will be placed. CAP cannot be moved outside of the logical page bounds. The figure below shows the layout of the logical page.
The Logical Page
Top Margin
Left Margin
Text Length
Bottom Margin
Unprintable Region
Page
Page
Text Area
Page
Perf Skip Zone ­(1 inch)
Right Margin
Logical Page
Perf Skip Zone ­(1 inch)
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 17
Page 18
The Page
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
18 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 19
The Page
point (0,0) may change. The point (0,0) then, does not necessarily equate to the top of the paper.
CAP Position
(0,0)
X
Y
ABCD...
Logical Page
Portrait
Top Margin
(0,0)
Y
Top Margin
X
ABCD...
Logical Page
Landscape
6.2.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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 19
Page 20
The Print Environment
!
7.0 The Print Environment
The group of all the printer's current feature settings is collectively referred to as the print 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.
20 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 21
Merged Text and Graphics
!
8.0 Merged Text and Graphics
The process for merging text and graphics with the HP DeskJet 600/800/900 & HP 2000 Series printers in both portrait and landscape orientation is the same as the landscape 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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 21
Page 22
Programming Hints
9.0 Programming Hints
The following are overall guidelines to keep in mind when programming with HP PCL printer language commands.
9.0.1 Follow Specifications
Follow the specifications for HP PCL printer language commands as described in this guide. Do not rely upon undocumented workarounds. For example, the HP DeskJet 500 Series 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.
22 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 23
Programming Hints
9.0.4 Priority of Commands
There are no finite rules when it comes to structuring your overall program. In general, start by setting the print environment with the printer control commands, such as Reset, Selecting the Media Source, and so on.
It is almost always advisable to start and end your program with the reset command (Esc E). This clears the printer environment and places your program back to the default settings. An exception to this general rule is when the printer settings are intended to carry across a 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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 23
Page 24
Programming Hints
44
Avoid using a Start Raster Graphics and End Raster Graphics command on every line. Use these commands at the beginning and end of the graphics image.
44
When setting the raster graphics width, calculate the widest point of the raster image. Use this value to set the width once for the entire raster graphics image.
44
Avoid setting top margin or text length to values outside of the printable area. This may cause data loss.
When using both the top margin and text length commands, the top margin command should be sent before the text length command
24 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 25
HP PCL Commands
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
TABLE 2. Transparent Data Mode - Esc & p # X
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
1 . . n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a 0 to 32767 - command is ignored for out of range values
Prints the graphic symbols associated with hidden control code characters. All subsequent character codes, for the specified number of bytes, are printed with the current
font attributes. The parser ignores all control codes, including the Esc character. Instead, the code’s graphic symbol in the current symbol set is printed. For example, in the PC-8 symbol set, Esc is printed as a left arrow.
DJ970C
HP2000C
Prints all data rather than execut­ing it.
EFFECT
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 25
Page 26
HP PCL Commands
10.3.2 Display Functions Mode ON
TABLE 3. Display Functions Mode ON - Esc Y
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
1 . . n Default
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
off
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.
DJ890C
DJ895C
DJ970C
HP2000C
Display Functions turned on
EFFECT
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
TABLE 4. Display Functions Mode OFF - Esc Z
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
1 . . n Default
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
off
This command turns Display Functions Mode OFF. If Display Function Mode is ON when Esc Z is received, the characters for the next sequence are printed, and Display Function Mode is disabled. If Display Function Mode is OFF when Esc Z is received, no operation is performed.
DJ890C
DJ895C
DJ970C
HP2000C
Display Functions turned off
EFFECT
26 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 27
HP PCL Commands
!
10.4 Text Enhancements
10.4.1 Enable Underline
TABLE 5. Enable Underline - Esc & d # D
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
0 1
2
3
4
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44
off 0 to 4 - (default is selected for values >4 or <0)
DJ890C
DJ895C
DJ970C
HP2000C
Default - single underline Single underline, fixed location
below the baseline Double underline, fixed location
below the baseline Single underline, font
dependent (“floating”) location Double underline, font
dependent (“floating”) location
EFFECT
Enables the automatic underline enhancement.
This command must use a capital “D” as a terminator.
Except when changing the left margin causes positive horizontal CAP movement, when underlining is enabled, each printed character or any positive horizontal motion (e.g., spaces, CAP moves) is automatically underlined.
Once enabled, underline remains enabled until explicitly disabled. The default state is 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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 27
Page 28
HP PCL Commands
!
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
TABLE 6. Disable Underline - Esc & d @
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
n/a
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
DJ890C
DJ895C
DJ970C
HP2000C
Underlining is OFF
EFFECT
Disables automatic text underlining.
10.4.3 Line Termination
TABLE 7. Line Termination - Esc & k # G
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
0 1 2
3
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 0 to 3 - Command is ignored for out of range values
This command controls how the printer interprets CR (Carriage Return), LF (Line Feed), and FF (Form Feed) control characters. For example, a value field of 1 causes the printer to exe­cute a carriage return (CR) and linefeed (LF) for every CR received. A linefeed or formfeed is sent as is.
DJ890C
DJ895C
DJ970C
HP2000C
CR = CR; LF = LF; FF = FF CR = CR, LF; LF = LF; FF = FF CR = CR; LF = CR, LF; FF =
CR, FF CR = CR, LF; LF = CR, LF; FF
= CR, FF
EFFECT
28 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 29
HP PCL Commands
10.4.4 End-of-Line Wrap
TABLE 8. End-of-Line Wrap - Esc & s # C
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
0 1 Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
1 0 to 1 - Command is ignored for out of range values
Defines the action that occurs when a line of text reaches the right margin. When end-of-line wrap is enabled, a character or space that would move the CAP to the right
of the right margin causes a CR-LF to be executed (prior to the printing of the character or space).
DJ890C
DJ895C
DJ970C
HP2000C
Enables End-of-Line Wrap Disables End-of-Line Wrap
EFFECT
When end-of-line wrap is disabled, a character or space that would move CAP to the right of the right margin is not printed, and CAP is set to the right margin.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 29
Page 30
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.
HP PCL Commands
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.
30 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 31
HP PCL Commands
!
10.6 Printer Control
10.6.1 Gray Balance
TABLE 9. Gray Balance - Esc * b # B
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
0
1 2 Default Range
44
44
44
Device dependent 0 to 2 - Command is ignored for out of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Set gray balance to device default (enabled or disabled)
Enable gray balancing Disable gray balancing
EFFECT
Print Mode
EconoFast Normal Best
Determines whether black optimization is performed to make process black (composite black—composed of color inks) appear more black.
When composite black is constructed by setting all the bits in the CMY color planes, the 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.
Gray Balance Default Modes
HP DeskJet 540 HP DeskJet 600
Plain
Paper
(disabled) (disabled) (disabled) (disabled) (disabled) (disabled)
(enabled) (enabled) (enabled) (enabled) (enabled) (disabled) (enabled) (enabled) (enabled) (enabled) (enabled) (disabled)
Special
Paper
Glossy/
Trans.
Plain
Paper
Special
Paper
Glossy/Trans.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 31
Page 32
HP PCL Commands
!
10.6.2 Dry Timer
TABLE 10. Dry Timer - Esc & b # T
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
0
1..1200
Default Range
44
44
0 0 to 1200 - Command is ignored for out of range values
Sets a minimum dry time between pages to ensure that a previous page dries before the next page is dropped on top of it.
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Dry Timer is off Dry timer is on - time set for
specified number of seconds
EFFECT
The time required for ink to dry depends on media, print modes, and environment (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:
Dry Timer Defaults
EconoFast Mode Normal Mode Best Mode
Media Type
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.
Black Color Black Color Black Color
32 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 33
HP PCL Commands
!
10.6.3 Print Quality
TABLE 11. Print Quality - Esc * o # m/M
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
-1 0 1 Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0
-1 to 1 - Command is ignored for out of range values
The Print Quality (PQ) command, in conjunction with the Media Type (Esc & ll # M) com- mand, provides a high-level print mode specifier and replaces the need for the following com­mands:
DJ890C
DJ895C
DJ970C
HP2000C
EconoFast mode selected Normal quality selected Best quality selected
EFFECT
44
Font Quality (Primary) Esc ( s # Q
44
Font Quality (Secondary) Esc ) s # Q
44
Raster Graphics 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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 33
Page 34
HP PCL Commands
!
10.6.4 Media Type
TABLE 12. Media Type - Esc & ll # M
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
0 1 2
3 4 5 6 Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 0 to 4 - Command is ignored for out of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Plain paper Bond paper Special paper (HP Premium
Inkjet Paper) Glossy film/Photo media Transparency film Quick Dry Glossy
44
Quick Dry Transparency
44
EFFECT
Sets the print mode required for printing on various media types. If no printable data has been sent, CAP moves to the top of form at the left margin of the cur-
rent page. If printable data has been sent, the page is printed and CAP moves to the top of form at the left margin of the next physical page.
For HP DeskJet 600/800/900 & HP 2000 Series printers, the specified media type will affect output resolution, depletion, shingling, gray balancing, and dry time.
10.6.5 Unit of Measure
TABLE 13. Unit of Measure - Esc & u # D
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
300 600 Default Range
44 44 44 44
44 44 44 44
Device dependent 300,600 - command is ignored for all other values
DJ890C
DJ895C
DJ970C
HP2000C
300 units per inch 600 units per inch
EFFECT
34 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 35
HP PCL Commands
The value field establishes the number of units per inch used in the following commands. These commands formerly used a device’s dot-per-inch resolution as the unit of measure. Printers that do not support this command still use dots as their unit of measure for these 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 DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 35
Page 36
HP PCL Commands
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.
36 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 37
HP PCL Commands
10.8 Page Control
The following commands facilitate the definition of a print job page.
10.8.1 Page Length
TABLE 14. Page Length - Esc & ll # P
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
0 1 .. n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 (66 lines per page) 1 to maximum supported paper size - Command is ignored for out of
range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Page length set to 66 lines Page length is set, in number of
lines, at the current lpi
EFFECT
Designates the number of lines on the logical page at the current VMI (Vertical Motion Index) setting.
This command performs the following actions:
44
Prints any unprinted pages.
44
Ejects the current page if printable data has been received (FF-CR).
44
Sets text length, top margin, left margin, and right margin to user defaults.
44
Moves CAP to the left edge of the logical page at the top of form.
The printer may select a different page size for the same line count, since lines are defined by the current VMI. This command is ignored if VMI is 0.
For comparison purposes, the following table lists the page length line values associated with some standard paper sizes. To calculate the number of lines per page, multiply lines per inch (lpi) times the length of the physical page. For example, US Letter size paper is 11 inches; therefore, 6 x 11 = 66.
Page Length Line Values
Paper Size
Letter 66 88 Legal 84 112 A4 70 93 Executive 63 84
6 lpi 8 lpi
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 37
Page 38
HP PCL Commands
!
HP DeskJet maximum page length is 14 inches for the HP DeskJet 600/800/900 & HP 2000 Series printers.
This command must be sent at the beginning of a page prior to any printable data; other­wise, when the command is sent, the current page is closed and printed.
10.8.2 Page Size
TABLE 15. Page Size - Esc & ll # A
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Regionally dependent (US Letter for printers sold in North America) limited to values specified in tables below - Command is ignored for out
DJ870C
of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Page size set to that indicated by value index in the following tables
EFFECT
Designates the size of the media to be used. This command performs the following actions:
44
Prints any unprinted pages.
44
Ejects the current page if printable data has been received (FF-CR).
44
Sets text length, top margin, left margin, and right margin to user defaults.
44
Moves CAP to the left edge of the logical page at the top margin.
44
Disables the automatic macro overlay.
38 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 39
HP PCL Commands
!
Since the logical page is defined to extend from the top and bottom edges of the physical page, this command also sets logical page length.
TABLE 16. Selectable Sheet Media Sizes for HP DeskJet 600/800/900 & HP 2000 Series printers
Value Page Description Page Size
1 US Executive 7.25” x 10.5” 2 US Letter 8.5” x 11”
3 US Legal 8.5” x 14” 25 ISO and JIS A5 148.5 mm x 210 mm 26 ISO and JIS A4 210 mm x 297 mm 45 JIS B5 182 mm x 257 mm
101 Custom 5.00” x 5.83”” through 8.5” x 14
(127 mm x 148 mm-216mm x 356mm)
TABLE 17. Selectable Card Sizes
Value Card Description Card Size
71 Japanese Hagaki Postcard 100 mm x 148 mm 72 Japanese Oufuku-Hagaki Postcards 148 mm x 200 mm 73 ISO and JIS A6 Card 105 mm x 148 mm 74 US Index Card 4” x 6” 75 US Index Card 5” x 8” 78 3x5 Index Card 3” x 5”
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 2000C Only)
Unsigned or positive values specify that the short paper axis is aligned with printer’s paper axis; negative values specify that the long paper axis is aligned with the printer’s paper axis.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 39
Page 40
HP PCL Commands
With HP DeskJet 600/800/900 & HP 2000 Series printers, all envelopes load in landscape (short edge first). Before the HP DeskJet 550C Series printer, envelopes loaded in 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
TABLE 19. Media Source - Esc & ll # H
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
-1 0
1 3 Default Range
44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0
-1, 0, 1, 3 - Command defaults for out of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Load z-fold media (banners) Print current page (source is
unchanged) Load from tray Envelope feed
EFFECT
Selects the media source. This command prints the current page and moves CAP to top of form at the left margin on the
next physical page. The command remains effective until another tray is selected.
40 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 41
HP PCL Commands
10.8.4 Orientation
TABLE 20. Orientation - Esc & ll # O
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
0 1 2 3 Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 0 to 3 - Command is ignored for out of range values
Defines the position of the logical page and the default direction of text printing with respect to the physical page.
DJ870C
44 44 44
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Portrait Landscape Reverse Portrait Reverse Landscape
EFFECT
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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 41
Page 42
HP PCL Commands
10.8.5 Horizontal Motion Index
TABLE 21. Horizontal Motion Index (HMI) - Esc & k # H
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Determined by the pitch or height (x 112%) value in the default font
HP2000C
descriptor
Range
0 to 126.99 - Command is ignored for out of range values
Designates the width of columns used for horizontal movement calculations. In the vertical text path direction, designates the height of rows used for inter-character movement calculations.
EFFECT
Number of 1/120 inch increments
HMI defaults to the invoked font’s space character when any of the font’s characteristics (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.
42 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 43
HP PCL Commands
10.8.6 Vertical Motion Index
TABLE 22. Vertical Motion Index (VMI) - Esc & ll # C
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
8 0 to Current logical page length up to 32767 - Command is ignored for
DJ970C
out of range values
Sets the vertical spacing between lines of print (the vertical distance CAP will move for a line­feed in horizontal text path mode and the horizontal distance the CAP will move for a linefeed in the vertical text path mode.
HP2000C
Number of 1/48 inch increments between rows
EFFECT
This command performs the same functions as Line Spacing (Esc & l # D), except the mea-
surement interval is in 1/48-inch increments instead of lines per inch (lpi). Both commands set linefeed spacing. To convert lpi to VMI:
VMI = 48.0/ lpi
If the Page Length (Esc & l # P) command follows an VMI change, physical page size is
recalculated. Depending on the VMI modification, the printer may request a different page size.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 43
Page 44
HP PCL Commands
!
!
10.8.7 Line Spacing
TABLE 23. Line Spacing - Esc & ll # D
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
6 0 to Current logical page length up to 32767 - Command is ignored for
DJ880C
out of range values
This command performs the same functions as VMI (Esc & l # C), except it identifies the VMI
in lines per inch (lpi). Both commands set linefeed spacing. To convert VMI to lpi:
DJ890C
DJ895C
DJ970C
HP2000C
Sets the number of lines printed per inch
EFFECT
lpi = 48.0/ VMI
In HP DeskJet printers, a value of 0 sets line spacing to 12 lpi.
10.8.8 Clear Horizontal Margins
TABLE 24. Clear Horizontal Margins - Esc 9
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
n/a
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
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.
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Default left and right margins
EFFECT
44 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 45
HP PCL Commands
!
10.8.9 Left Margin
TABLE 25. Left Margin - Esc & a # L
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 0 to right bound of logical page - Command is ignored for out of range
DJ870C
values
If CAP is to the left of the new left margin, it moves to the new left margin; otherwise, this 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.
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Sets the left margin to the left edge of the specified column
EFFECT
Column 0 is the first column on the left edge of the logical page, not the physical page.
10.8.10 Right Margin
TABLE 26. Right Margin - Esc & a # M
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Logical page right bound Current left margin to logical page left bound - Command is ignored for
DJ880C
out of range values
This command is ignored for columns to the left of the left margin. Specifying a column beyond the right logical page limit sets the right margin to the right logical page limit. If CAP is to the right of the new right margin, CAP is moved to the new right margin; otherwise this command does not affect CAP.
DJ890C
DJ895C
DJ970C
HP2000C
Sets the right margin to the right edge of the specified column
EFFECT
Characters whose cells overlap with the right margin are not printed unless end-of-line wrap is enabled: then the character prints at the left margin on the next line. Attempts to set the right
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 45
Page 46
HP PCL Commands
!
margin to the left of the left margin should be ignored; however, left and right margins can be set to the same location.
10.8.11 Top Margin
TABLE 27. Top Margin - Esc & ll # E
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0.5 inch 0 to logical page length - Command is ignored for out of range values
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Top margin is set to specified number of lines at the current lines-per-inch setting
EFFECT
Specifies the distance between the top of the logical page and the top of the text area. The top margin is specified in lines whose spacing is determined by the current line spacing.
This command is ignored if the current line spacing is 0, or if a value beyond the current logical page length is received.
CAP is not moved if it is below the new top margin. If CAP is above the new top margin, CAP is placed at the baseline of the first row of characters. This position, called top of form, is 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.
46 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 47
HP PCL Commands
10.8.12 Text Length
TABLE 28. Text Length - Esc & ll # F
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Logical page length - top margin - 1/2 inch
a
Current left margin to logical page left bound - Command is ignored for
HP2000C
out of range values
a. If the calculation is negative, text length defaults to (logical page length - top margin)
This command is ignored if current VMI is 0 or a text length greater than [logical page length ­top margin] is requested. A value field of 0 defaults text length.
EFFECT
Sets length of the text area, in lines, from the top margin
Text length determines the bottom margin when perforation skip is enabled. Text length is ignored when perforation skip is disabled.
10.8.13 Perforation Skip Mode
TABLE 29. Perforation Skip Mode - Esc & ll # L
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
Value
0 1 Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
1 0, 1 - Command is ignored for other values
Controls perforation skip mode. The perforation region extends from the bottom of the text area to the top margin of the next
page. Text Length (Esc & l # F) determines the size of the perforation skip region (and, indi­rectly, the bottom margin).
DJ895C
DJ970C
HP2000C
Disables perforation skip mode Enables perforation skip mode
EFFECT
If perforation skip is enabled, text length sets the bottom margin. Printing ends at the specified text length, and then starts again at the top margin of the next page.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 47
Page 48
HP PCL Commands
!
If perforation skip is disabled, text is printed to the end of the page and onto the next page. Text length and top margin are ignored. Text in the unprintable region may be lost.
Disabling perforation skip may cause text outside of the printable area to be lost. To pre­vent this, perforation skip should be enabled. Changing perforation skip mode defaults top margin and text length.
48 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 49
HP PCL Commands
!
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 DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 49
Page 50
Moves CAP to the same horizontal position, one row down. If perforation skip mode is
!
enabled, a linefeed that would go beyond the text length boundary moves CAP to the same horizontal position at the top of form on the next page. If perforation skip mode is disabled, text is printed to the end of the page and onto the next page. Text in the unprintable region may be lost.
10.9.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
HP PCL Commands
<HT>
Horizontal Tab moves CAP to the next tab stop on the current line. The first tab stop is at the left margin; additional tab stops are fixed at every 8 columns to the
right margin. Tabs represent a logical position and, thus, refer to different physical positions for different settings of HMI.
The following are some boundary cases:
44
If the requested tab stop is outside the right margin and CAP is at or to the left of the right margin, HT moves CAP to the right margin.
44
If the requested tab stop is outside the printable area and CAP is to the right of the right margin, HT moves CAP to the edge of the printable area.
44
If CAP is to the left of the left margin, HT moves CAP to the left margin. Tabs do not cause lines to be wrapped if end-of-line-wrap mode is enabled. HMI determines current column width. If HMI is changed, the physical location of each tab
stop moves. HT has no effect if the HMI is 0.
50 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 51
HP PCL Commands
!
10.9.7 Move CAP Horizontal (Decipoints)
TABLE 30. Move CAP Horizontal (Decipoints) - Esc & a # H
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a
-32767 to +32767 (up to logical page right and left limits, rounded to the
HP2000C
Moves CAP horizontally by the specified number of decipoints (1/720 inch)
nearest HP PCL unit or decimal point) - Command is ignored for out of range values
A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP right or
left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP
moves an absolute distance from the logical page left edge.
EFFECT
This command ignores margins and can move CAP anywhere horizontally within the logical
page. Attempts to go outside the logical page will move CAP to the appropriate logical page
limit.
Devices not having an integral number of decipoints-to-dots should implement fractional deci-
points for dot addressing.
HP DeskJet 600/800/900 & HP 2000 Series printers use 2 fractional digits and truncate to 1/3600-inch units.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 51
Page 52
HP PCL Commands
!
10.9.8 Move CAP Horizontal (Columns)
TABLE 31. Move CAP Horizontal (Columns) - Esc & a # C
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a
-32767 to +32767 (up to logical page right and left limits, rounded to the
HP2000C
Moves CAP horizontally by the specified number of columns
nearest HP PCL unit) - Command is ignored for out of range values
A signed value field indicates relative movement: plus (+)or minus (-) signs move CAP right or left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP moves an absolute distance from the logical page left edge (column 0).
EFFECT
This command ignores margins and can move CAP horizontally anywhere within the logical page. Attempts to go outside the logical page will move CAP to the appropriate logical page limit.
HP DeskJet 600/800/900 & HP 2000 Series printers use 2 fractional digits and truncate to
1/3600-inch units.
10.9.9 Move CAP Horizontal (HP PCL Units)
TABLE 32. Move CAP Horizontal (HP PCL Units) - Esc * p # X
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a
-32767 to +32767 (up to logical page right and left limits, rounded to the
HP2000C
Moves CAP horizontally by the specified number of HP PCL units
nearest HP PCL unit) - Command is ignored for out of range values
EFFECT
A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP right or left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP moves an absolute distance from the logical page left edge.
52 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 53
HP PCL Commands
This command ignores margins and can move CAP horizontally anywhere within the logical
page. Attempts to go outside the logical page will move CAP to the appropriate logical page
limit.
HP DeskJet printers prior to the HP DeskJet 600 Series printers use 1/300”.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 53
Page 54
HP PCL Commands
10.10 Vertical Positioning Commands
The following commands provide cursor positioning on the vertical axis.
10.10.1 Move CAP Vertical (Rows)
TABLE 33. Move CAP Vertical (Rows) - Esc & a # R
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a
-32767 to +32767 - Command is ignored for out of range values
DJ970C
HP2000C
Moves CAP to the same column position on a new line based on the active line spacing
EFFECT
A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP 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.
54 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 55
HP PCL Commands
10.10.2 Move CAP Vertical (Decipoints)
TABLE 34. Move CAP Vertical (Decipoints) - Esc & a # V
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a
-32767 to +32767 - Command is ignored for out of range values
If no such position exists, moves CAP to the logical page limit.
A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP down-
ward and upward relative to CAP, respectively. The absence of a sign indicates absolute
movement: CAP moves an absolute distance from the top margin.
HP2000C
EFFECT
Moves CAP to a new position along the vertical axis
Except for the following, the effect of this command is limited to the logical page:
44
Positive relative positioning allows movement to the next logical page.
44
Negative relative positioning allows movement above the top of form, up to the limit of the
logical page or the top of the physical page. After power on or reset, CAP moves to the top of form, if not already there. Devices not having an integral number of decipoints-to-dots should implement fractional deci-
points for dot addressing.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 55
Page 56
HP PCL Commands
10.10.3 Move CAP Vertical (HP PCL Units)
TABLE 35. Move CAP Vertical (HP PCL Units) - Esc * p # Y
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a
-32767 to +32767 - Command is ignored for out of range values
If no such position exists, the printer moves to the logical page limit. A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP down-
ward and upward relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP moves an absolute distance from the top margin.
HP2000C
Moves CAP specified number of HP PCL units along the Y axis
EFFECT
The current size, in units-per-inch, of a HP PCL Unit is specified by the Units of Measure (Esc & u # D) command. Otherwise, the unit-per-inch for HP PCL movement defaults to 1/300 inch.
Except for the following, the effect of this command is limited to the logical page:
44
Positive relative positioning allows movement to the next logical page.
44
Negative relative positioning allows movement above the top of form, up to the limit of the logical page or the top of the physical page.
After power on or reset, CAP moves to the top of form, if not already there. HP DeskJet 600/800/900 & HP 2000 Series printers use 1/300”.
56 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 57
HP PCL Commands
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
TABLE 36. Font Symbol Set (Primary) - Esc ( ID
Font Symbol Set (Secondary) - Esc ) ID
#
Value
ID
Default Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
44 44 44 44 44 44 44 44 44 44
DJ890C
DJ895C
DJ970C
HP2000C
Symbol set identification value from the table
EFFECT
10U - (PC-8, Code Page 437) n/a
Identifies the set of symbols in a font, consists of a decimal value and a letter value. The ID (identification number) consists of a number portion and a letter portion. For example,
to specify ASCII (0U) as the symbol set for the primary font, send Esc(0U. Some of the 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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 57
Page 58
HP PCL Commands
The following table lists printer-supported symbol sets and symbol set IDs for the HP DeskJet 600/800/900 & HP 2000 Series printers.
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
58 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 59
HP PCL Commands
ID Symbol Set Name ID Symbol Set Name
11L ITC Zapf Dingbats Series 100 0R Cyrillic ASCII (8859/5-1986) 12L ITC Zapf Dingbats Series 200 1R Cyrillic 13L ITC Zapf Dingbats Series 300 3R PC Cyrillic (CP 866) 20L Carta 9R Windows 3.1 Latin/Cyrillic 21L Ornaments 0S ISO 11: Swedish 22L Universal News & Commercial Pi 1S HP Spanish 23L Chess 2S ISO 17: Spanish 24L Astrology 1 3S ISO 10 Swedish 31L Pi Set #l 4S ISO 16: Portuguese 32L Pi Set #2 5S ISO 84: Portuguese 33L Pi Set #3 6S ISO 85: Spanish 34L Pi Set #4 7S HP European Spanish
579L Wingdings 8S HP Latin Spanish
35L Pi Set #5 16S HP-GL Download 17S HP-GL Drafting 16U PC-857 Turkish 18S HP-GL Special Symbols 17U PC-852, Latin 2 20S Sonata 19U Windows 3.1 Latin I
0T Thai-8 20U PC-860 Portugal 5T Windows 3.1 Latin 5 21U PC-861 Iceland 8T Turkish-8 23U PC-863 Canada French
9T PC-8T, Turkish 25U PC-865 Norway 10T Teletex 26U PC-775 Baltic 19T TIS (TAPCI23) 27U PC Latvian/Russian
0U ISO 6: ASCII 28U PC Lithuanian/Russian 1U Legal 29U PC Lithuanian/Russian (CP 772) 2U ISO 2: Int’l Reference Version 10V Code Page 864 Latin/Arabic 5U HPL 8V HP Arabic-8 7U OEM-1 0Y 3 of 9 Barcode 8U Roman-8 1Y Industrial 2 of 5 Barcode
9U Windows 3.0 Latin 1 2Y Matrix 20f5 Barcode 10U PC-8, Code Page 437 4Y Interleaved 2 of 5 Barcode 11U PC-8 D/N, Danish/Norwegian 5Y CODABARBarcode 12U PC-850, Multilingual 6Y MSI/Plessey Barcode 15U Pi Font 7Y Code 11 Barcode
8Y UPC/EAN Barcode
15Y USPS ZIP
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 59
Page 60
HP PCL Commands
10.11.3 Font Spacing
TABLE 37. Font Spacing (Primary) - Esc ( s # P
Font Spacing (Secondary) - Esc ) s # P
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
Value
0 1 Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 0, 1 - Command is ignored for other values
Designates inter-character spacing as either proportional or fixed.
DJ895C
DJ970C
HP2000C
Fixed spacing Proportional spacing
EFFECT
If proportional spacing is specified and no proportional font is available in the requested 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
TABLE 38. Font Pitch (Primary) - Esc ( s # H
Font Pitch (Secondary) - Esc ) s # H
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
10 cpi > 0.0 - valid to 2 decimal places - Command is ignored for out of range
DJ890C
values
DJ895C
DJ970C
HP2000C
Inter character spacing for current font is set
EFFECT
Designates the horizontal spacing of a fixed-space or dual-fixed space (bitmap or scalable) font in characters per inch (cpi).
60 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 61
HP PCL Commands
If the exact pitch is unavailable, the next larger pitch is selected. If a larger pitch is unavailable, the closest smaller pitch is selected.
Pitch is ignored when selecting proportional fonts, but saved in the font select table and 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
TABLE 39. Font Height (Primary) - Esc ( s # V
Font Height (Secondary) - Esc ) s # V
#
Value
n Default Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
HP2000C
Height for current font is set
EFFECT
12 points > 0.0 - valid to 2 decimal places - Command is ignored for out of range
values.
Specifies font height in points (1/72 inch). If the requested height is unavailable, the closest heights are chosen for the next selection cri-
teria. The closest value is in terms of absolute difference: e.g., if 6, 8, and 12 point fonts are available and 10 is requested, both 8 and 12 point fonts are considered.
Fractional values may be specified when requesting height. All bitmap fonts within 0.25 points of the requested height are considered. If a 12 point font is requested, fonts between 11.75 and 12.25 are considered. Or, to put it another way, if 6, 8, and 11.75 point fonts are available and 10 is requested, both the 8 and 11.75 fonts are considered.
Height is ignored when selecting a fixed space scalable font; but the value is saved in the font select table and available when a proportional font is selected.
If no font within .25 points is available, HP DeskJet selects the next smaller height. If no smaller height is available, the next larger height is selected.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 61
Page 62
HP PCL Commands
10.11.6 Font Style
TABLE 40. Font Style (Primary) - Esc ( s # S
Font Style (Secondary) - Esc ) s # S
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 0 to 32767 - values exceeding range are ignored
Identifies the posture, width, and structure of the font symbols. The partial sums for posture, width, and structure are added together to determine the desired value (#). The composition of the style word is shown below.
DJ890C
DJ895C
DJ970C
HP2000C
Specified characteristics are applied to font style request
EFFECT
Style Word = Posture + (4 x Width) + (32 x Structure)
15 14 10 9 5 4 2 1 0
X reserved structure width posture
Value (#) = Posture
0 Upright 1 Italic 2 Alternate Italic 3 Reserved
Value (#) = Width
0 Normal 1 Condensed 2 Compressed or extra condensed 3 Extra compressed 4 Ultra compressed 5 Reserved 6 Extended or expanded 7 Extra extended or extra expanded
62 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 63
HP PCL Commands
Value (#) = Structure (style word partial sum multiplied by 32)
0 Solid 1 Outline 2 In-line 3 Contour, Edge effects 4 Solid with shadow 5 Outline with shadow 6 In-line with shadow 7 Contour with shadow 8 Patterned (complex patterns, subjective to typeface)
12-15 Patterned with shadow
16 Inverse 17 Inverse in open border
18-30 Reserved
31 Unknown structure Default = 0 Range = 0 to 32767 (values greater than 32767 are clamped)
MATCHING ALGORITHM
The following procedure matches requested styles with available styles:
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
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 63
Page 64
HP PCL Commands
10.11.7 Font Stroke Weight
TABLE 41. Font Stroke Weight (Primary) - Esc ( s # B
Font Stroke Weight (Secondary) - Esc ) s # B
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
-7
-6
-5
-4
-3
-2
-1 0 1 2 3 4 5 6 7 Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0
-7 to 7 (less than -7 maps to -7; greater than 7 maps to 7)
DJ970C
HP2000C
Ultra thin Extra thin Thin Extra light Light Demi-light Semi-light “Book” or “text” weight Semi-bold Demi-bold Bold Extra bold Black Extra black Ultra black
EFFECT
Designates the thickness of the strokes that compose the characters of a font. If the designated stroke weight is unavailable and 0 or greater, the closest thicker weight is
selected. If a thicker weight is unavailable, the closest thinner weight is selected. If the designated stroke weight is unavailable and less than 0, the closest thinner weight is
selected. If a thinner weight is unavailable, the closest thicker weight is selected. Many typefaces were designed for advertising, and a “medium” was used to describe the stan-
dard treatment. Later, additional treatments were designed for text use. Therefore, the 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.
64 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 65
HP PCL Commands
!
10.11.8 Font Selection by ID
TABLE 42. Font Selection by ID (Primary) - Esc ( # X
Font Selection by ID (Secondary) - Esc ) # X
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a 0 to 32767 - values exceeding range are ignored
Designates a font by ID as primary or secondary. The designated font, if present, is selected as the primary/secondary font, and all the attributes in the primary/ secondary font select table are changed to match those of the designated font. Pitch, however, is not changed if the 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.
DJ970C
HP2000C
Font with indicated ID is selected
EFFECT
Pitch and height are unchanged if the designated font is scalable. If a proportional-space scalable font is selected by ID, the Height command should be
sent prior to the Font Selection ID command to specify point size. Otherwise, the size will be determined by the height of the former font (as listed in the font select table).
For shared or multi-user environments, HP recommends that soft fonts be selected by attribute rather than ID.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 65
Page 66
HP PCL Commands
!
10.12 Downloading Fonts
Currently, the HP DeskJet 600 Series and 850/855 Series printers are the only printers that accept downloaded fonts. Note that the HP DeskJet format soft fonts are designed for use with the HP DeskJet 500 Series printers. The following sections discuss the format for the HP LaserJet format soft fonts, which is the type used for the DeskJet 600 Series and 850/855 Series printers.
Before sending font data, the font must first be assigned an identification number so the font can be referenced by subsequent HP PCL commands.
10.12.1 Font ID
TABLE 43. Font ID - Esc * c # D
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
Value
n
Default Range
44 44 44 44 44 44 44 44
0 0 to 32767 - values exceeding range are ignored
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
The subsequently downloaded font is given the specified ID number
EFFECT
A font already having this ID number is deleted when the font definition is received, even if the new font is rejected because of memory constraints or invalid data fields.
This ID is used as the value field of the Esc ( # X and the Esc ) # X soft font selection 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.
66 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 67
HP PCL Commands
10.12.2 Download Font
TABLE 44. Download Font - Esc ) s # W [font definition]
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default Range
44 44 44 44 44 44 44 44
n/a 0 to 32767 - command is ignored for invalid descriptor or insufficient
HP2000C
Downloads a font definition and assigns the font the current font ID
memory and the font descriptor data is discarded
This command must be sent prior to downloading the characters in the font.
EFFECT
Note that this command downloads the entire font definition, which includes the font 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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 67
Page 68
HP PCL Commands
10.12.3 Character Code
TABLE 45. Character Code - Esc * c # E
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
Value
n
Default Range
44 44 44 44 44 44 44 44
0 0 to 65535 - command is ignored for out of range values
The character code is a state variable that must be designated prior to the download of a char­acter descriptor. Any existing characters with the same code are deleted.
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Establishes a decimal ASCII code for the next character downloaded
EFFECT
EXAMPLE: Esc *c103E sets the character code to 103. If followed by the Character Descriptor (Esc ( s # W) command with a valid character descriptor and data, a character is defined in the code location corresponding to the ASCII lowercase “g”.
HP DeskJet 600, 830, 895, 900 & HP 2000 Series printers support a range of 0 - 65535. After downloading the font definition, each character in the font must be defined.
10.12.4 Download Character
TABLE 46. Download Character - Esc ( s # W [Character Definition]
#
Value
n
Default Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
44 44 44 44 44 44 44 44
n/a 0 to 32767 - command is ignored for out of range values
HP2000C
Downloads a character definition with the specified (n) number of bytes
EFFECT
Downloads a character definition with the character code assigned by Esc * c # E. The value field (#) contains the number of bytes to be downloaded up to a maximum of 32767.
If more bytes are needed, this command is used again as many times as necessary. The
68 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 69
HP PCL Commands
group of bytes sent by one command is called a block. A character definition consists of a first block and zero or more continuation blocks.
An unsupported or invalid character definition is ignored and discarded. An out-of-memory condition during character download deletes the entire font. Reserved fields should be set to
0.
10.12.5 Font Control
TABLE 47. Font Control - Esc * c # F
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
0
1
2
3
4
5
Default Range
44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44
n/a 0 to 5 - Command is ignored for other values, or if no font has the spec-
DJ870C
ified ID
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Delete all fonts (temp, permanent, and soft)
Delete all temporary fonts (temp, permanent, and soft)
Delete font (specified by last Font ID)
Delete character (last Font ID and Character Code)
Make font temporary (specified by last Font ID)
Make font permanent (specified by last Font ID)
EFFECT
Manipulates fonts and characters designated by Font ID and Character Code. If the primary or secondary font is deleted, a new primary or secondary font is automatically
selected from the remaining fonts.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 69
Page 70
HP PCL Commands
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.
Configure Raster Data Esc * g # W
Simple Color Esc r # U
Source Raster Width Esc r # S
Start Raster Esc r # A
10.13.3 Commands Allowed in Raster Mode
The following commands may be used in raster mode without implicitly ending raster mode.
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
70 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 71
HP PCL Commands
10.13.4 Start Raster
TABLE 48. Start Raster - Esc * r # A
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
0
1
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 0 to 1 - Out of range values default to 0
Starts raster mode and specifies the starting position of the raster image.
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Start graphics at logical page left boundary (current vertical position)
Start graphics at CAP (current vertical and horizontal position)
EFFECT
This command sets the left raster margin. A value of 0 starts the upper left corner of the 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
TABLE 49. End Raster - Esc * r C
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
n/a
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a n/a
This command ends Raster Mode. It signifies the end of the transfer of a raster graphics image and ends the current raster row. It performs the following functions:
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Printer returns to text mode command processing
EFFECT
44
Resets the seed row to zeros.
44
Re-enables commands locked out of raster mode by Esc * r # A.
44
Defaults the compression method to 0.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 71
Page 72
HP PCL Commands
!
!
44
Resets the left graphics margin to 0.
44
Moves CAP to the row immediately following the end of the raster area and zero-fills empty rows if source raster height was specified; otherwise to the next row.
44
Resets the plane pointer to 1.
If a value field is received, it is ignored and the command is still executed.
10.13.6 Raster Resolution
TABLE 50. Raster Resolution - Esc * t # R
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
75 100 150 300 600
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
75 75, 100, 150, 300, 600 - Command is ignored for other values
DJ890C
DJ895C
DJ970C
HP2000C
graphics data printed at 75 dpi graphics data printed at 100 dpi graphics data printed at 150 dpi graphics data printed at 300 dpi graphics data printed at 600 dpi
(applies to black data only)
EFFECT
a
a. Only black raster data can print at 600 dots per inch on HP DeskJet 600/800/900 & HP 2000 Series printers.
Defines the resolution at which graphics data is to be printed To assure that the graphic is printed without data loss, an unsupported resolution is mapped to
the next higher supported resolution. For example, a request for 125 dpi on a HP DeskJet 600/ 810/830/895/900 or HP 2000 Series printer would result in 150 dpi being selected as the graphics print resolution.
During raster mode this command is locked out.
HP DeskJet 600/800/900 & HP 2000 Series printers support 75, 100, 150, and 300 dpi for color and black printing. They also support 600 dpi for black data only. The default will be
75.
72 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 73
HP PCL Commands
!
10.13.7 Source Raster Width
TABLE 51. Source Raster Width - Esc * r # S
#
Value
n
Default Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
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)
Logical page width 0 to 32767 - (clamped to right logical page boundary minus left graphics
EFFECT
a
margin)
a. HP DeskJet 600, 810, 830, 850, 895, 900 & HP 2000 Series printers round source raster width values that are not
a multiple of 8 to the next higher multiple of eight (i.e., the next byte boundary).
Specifies the width in pixels of the raster area. Raster width extends from the left graphics margin to one of the following:
44
The distance specified by the Source Raster Width (Esc * t # H) command.
44
The right edge of the logical page, if the specified width would extend outside the printable area.
44
The right edge of the printable area, if width is not specified. HP DeskJet printers always clip at the right edge of the printable area. The left graphics margin is set to one of the following:
44
CAP (explicit Start Raster).
44
Left edge of the logical page (explicit or implicit Start Raster).
The printer clips data that would extend outside the specified width. If width is not specified, the printer clips at the right edge of the printable area. If a width greater than the printable area is specified, the printer clips at the right edge of the logical page.
The printer zero-fills rows not specified for the full width. These zero-filled portions of a row map to either white or transparent, depending on the media type currently selected (Esc * v # N).
On color devices, a zero-fill is not necessarily white. For example RGB data set to zero
prints as black on a HP DeskJet printer. Undefined graphics space would therefore print
as black.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 73
Page 74
HP PCL Commands
!
Since width is in the direction that the raster rows are laid down, source raster width is relative to the current raster resolution or print quality setting.
10.13.8 Y Offset
TABLE 52. Y Offset - Esc * b # Y
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
Value
DJ870C
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
Default Range
n/a
-32767 to 32767 - Command is ignored for out of range values
DJ880C
DJ890C
DJ895C
DJ970C
HP2000C
Cursor is moved specified number of raster lines of vertical movement
EFFECT
Moves CAP vertically (relative to CAP) by the specified number of raster lines. This command is recognized only in raster mode and only within the raster area. This command zero-fills the offset area. For Delta Row compression (methods 3 and 9), this command zeros the seed row.
Movement by this command is based on the graphics resolution.
74 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 75
HP PCL Commands
10.14 Raster Data Transfer
The Raster Transfer commands (Esc * b # V, Esc * b # W) define how many bytes will be interpreted as binary raster data
The Transfer Raster by Plane (Esc * b # V) command is used when the data is encoded by plane, as specified by the Simple Color (Esc * r # U) command. Transfer Raster by Plane is used to send each plane in the row except the last; Transfer Raster by Row (Esc * b # W) must be used to send the last plane and advance the row.
The Transfer Raster by Row (Esc * b # W) command moves CAP to the beginning of the next pixel row after the graphics data in the command is sent to the printer. The command is used for single-color devices, for the last plane in a multi-plane row, or for color raster transfer when the data is encoded by pixel.
10.14.1 Transfer Raster by Plane
TABLE 53. Transfer Raster by Plane - Esc * b # V [data]
#
Value
Default Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
HP2000C
Specified number of bytes of graphics data for a single plane of data is set to the printer. The row pointer is not incremented.
EFFECT
n/a 0 to 32767 - Command is ignored for out of range values
Sends a plane of data to the printer and advances to the next plane, but not to the next row. The number of planes per row is specified by the Simple Color (Esc * r # U) command (also
known as Set Planes per Row). The first plane sent represents the least significant bit in the pixel.
Since Transfer Raster by Plane (Esc * b # V) does not advance the row, it cannot be used for the last plane or for single-plane rows. Only Transfer Raster by Row (Esc * b # W) can advance the row.
The amount of data sent varies from plane to plane and is independent of raster width. Planes whose data specifies a row shorter than the raster width are zero-filled. Empty planes can be sent by Esc * b 0 V.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 75
Page 76
HP PCL Commands
10.14.2 Transfer Raster by Row/Block
TABLE 54. Transfer Raster by Row or Block - Esc * b # W [data]
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
n/a 0 to 32767 - Command is ignored for out of range values
Transfers the number of bytes specified in the value field to the printer in a row by row or block format, depending on the current compression method (Esc * b # M), then moves CAP to the next row.
HP2000C
Following specified number of data bytes sent to the printer as K data
EFFECT
This command is used in single-color and multi-color printers where data is encoded by row rather than by pixel. Because this command advances the row, it is also used for single-plane rows or the last plane in a multi-plane row.
CAP is updated for each row in both row or block formats. For row formats, CAP is reset to the left graphics margin. For block formats, CAP is reset to the X coordinate of the block; and the Y coordinate is incremented.
The amount of data sent by this command can vary from row to row. If the picture width allows more data than is sent, the undefined area is zero-filled. Undefined planes in a multi-plane row are zero-filled. Black and white devices interpret zeros as white; color devices interpret zero according to the current palette.
The plane pointer in a multi-plane row is reset to 1 after the data is transferred. The data field is interpreted according to the current compression method (Esc * b # M).
76 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 77
HP PCL Commands
10.15 Raster Compression
Since raster images take a large amount of memory and processing time, raster data should be reduced as much as possible. White-space data transfer can be reduced by sending empty rows and planes (Esc * b 0 W, Esc * b 0 V), or by offsetting the left graphic margin (Esc * r 1 A) or the vertical starting point (Esc * b # Y). The Compression Method (Esc * b # M) com­mand provides several other ways of compressing data.
10.15.1 Compression Method
TABLE 55. Compression Method - Esc * b # M
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
Value
0 1 2
3 9
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 0-3, 9 - Out of range values default to 0
DJ895C
DJ970C
HP2000C
Unencoded Run-length encoding Tagged Image File Format
(TIFF) revision 4.0 “Packbits” encoding
Delta row encoding Compressed replacement delta
row encoding
EFFECT
Determines how raster data is interpreted in the Transfer Raster by Row or Transfer Raster by Plane commands. The compression method stays in effect until explicitly changed to another method or reset by Reset (Esc E) or End raster (Esc * r C).
Method 0- Unencoded
This is a simple binary transfer: no compression.
Method 1- Run-Length Encoding
Method 1 interprets raster data as byte pairs. The first byte tells how many times the second byte is repeated, i.e., a repetition count. The second byte is the data to be printed. The 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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 77
Page 78
HP PCL Commands
!
!
Method 1 requires byte pairs: a Transfer Raster (Esc * b # V or Esc * b # W) command with an odd value field is ignored and the data discarded.
Method 2 - 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 U U U U A T T
Compression method 0 - Unencoded
Esc*r1 A Esc*b0m7WUUUUATT Esc*rC
78 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 79
HP PCL Commands
!
Compression method 1 - Run-length encoding
Esc*r1 A Esc*b1 m6W(3)U(0)A(1)T Esc*rC
Compression method 2 - TIFF encoding
Esc*r1 A Esc*b2m6W(-3)U(0)A(-1)T -or­Esc*b2m6W(-3)U(2)ATT Esc*rC
Parentheses in the above escape sequences are for readability only.
Method 3 - Delta Row Encoding
This method replaces only bytes in the current row that are different from the preceding row (seed row). Unreplaced bytes are replicated from the seed row. The current row then becomes the seed row.
A delta compression string consists of a command byte and the replacement (delta) bytes: [(Command byte)(1 to 8 replacement bytes)] The command byte has two parts: the number of consecutive replacement bytes that follow,
and the left offset from the current byte position.
7 5 4 0
Replacement count (1 - 8) Left offset from the current byte (O - 30)
Three bits of the command byte contain the replacement count: the number of consecutive replacement bytes that follow (000 = 1, 111 = 8).
Five bits contain the offset from the current byte to the next replacement byte. The current byte follows the last replacement byte or, at the beginning of a row, the left graphics margin. An 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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 79
Page 80
HP PCL Commands
The values of the offset have the following definitions:
0 to 30: The offset is 0 to 30. 31: The offset is 31 or greater. If the offset is 31, an additional offset byte follows
the command byte. The offset in the command byte is added to the offset byte. If the off- set byte is 0, the offset is 31; if the offset byte is 255, additional offset bytes follow. The last offset byte will have a value less than 255. All the offset bytes are added to the offset in the command byte to get the offset value. For example, if there are 2 offset bytes, and the last byte contains 175, the total off­set would be: 31 + 255 + 175 = 461.
If more than eight delta bytes are needed, additional command byte/delta bytes are added: [(Command Byte)(1-8 Delta Bytes)][(Command Byte)(1-8 Delta Bytes)] . . . The seed row is zeroed when raster mode is entered. Every raster transfer affects the seed
row, regardless of the compression method. For example, an Esc * b 0 W while in 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:
Esc b 0 W Repeat the previous row. The seed row is unchanged Esc b 1 Y Move down one raster row. Zero the seed row. Esc b 0 Y Move down zero raster rows. Zero the seed row
Seed row width is set to the source raster width at the beginning of raster mode. Source 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:
80 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 81
HP PCL Commands
The following data is compressed using method 3. Italicized bytes are those needing replace­ment, i.e., bytes different from the seed row. Graphics data is binary.
Byte #: 1 2 3 4 5
Row 1 00000000 11111111 00000000 00000000 00000000 Row 2 00000000 11111111 11110000 00000000 00000000 Row 3 00001111 11111111 11110000 10101010 10101010
Esc * r 1 A
Start Raster initializes the seed row to all zeros.
Row 1 - Esc * b 3 m 2 W (00000001 )( 11111111 ) 3m selects method 3, and 2W indicates that 2 bytes of data will follow. The upper three bits of
the command byte are zero, indicating that one byte will be replaced. The lower five bits 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.
Command
Byte
Optional Offset
Bytes
Optional Replacement Count
Bytes
Data
Bytes
The command byte itself has three parts:
Control Bit Offset Count Replacement Count
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 81
Page 82
HP PCL Commands
Control Bit:
Offset Count: The number of bytes the replacement data is offset from the current po-
Replacement
Count: Control Bit = 0 If the control bit is 0, the replacement data is uncompressed. Bits 0-2 contain the replacement
count; bits 3-6 contain the offset count. The replacement count is the number of bytes to be replaced by the bytes following the command byte. The offset count is the location these replacement bytes will occupy relative to the current position in the seed row.
Like compression method 3, the current byte follows the last replacement byte or, at the 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.
Determines whether the replacement data is encoded, and also the bit boundaries of the command byte’s other two fields.
sition in the seed row. The number of consecutive data bytes to be replaced.
7 6 3 2 0
Control Bit = 0 Offset Count Replacement Count
If the offset count is 15, an offset count byte follows the command byte and is added to the command byte’s offset count. If the offset count byte is 0, the offset count is 15. If the offset count byte is 255, another offset count byte follows. The last offset count byte will be less than
255. One more byte than that indicated by the replacement count will be replaced. That is, 000 = 1
and 111 = 8. For example, if the replacement count is 5, then 6 bytes are replaced. If the replacement count is 7, a replacement count byte follows the command byte and any 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.
7 6 5 4 0
Control Bit = 1 Offset Count Replacement Count
82 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 83
HP PCL Commands
Seed Row Source Esc * b # S Specifies the plane of the seed row for multi-plane graphics in compression methods 3 and 9.
Value (#) = 0 - Use the corresponding plane of the previous row.
= > 0 - Number of previous seed planes before the current plane Default = 0 Range = 0 to number of currently active planes.
For example, if the printer is in 3-plane mode and Esc * b 0 S was sent, then:
44
The Cyan plane would use the Cyan plane from the previous row as a seed plane.
44
The Magenta plane would use the Magenta plane from the previous row as a seed plane.
44
The Yellow plane would use the Yellow plane from the previous row as a seed plane.
If the printer is in 3-plane CMY mode and Esc * b 1 S is sent, then:
44
The Cyan plane would use the Yellow plane from the previous row as a seed plane.
44
The Magenta plane would use the Cyan plane from the current row as a seed plane.
44
The Yellow plane would use the Magenta plane from the current row as a seed plane.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 83
Page 84
HP PCL Commands
!
!
10.16 Color
10.16.1 Simple Color
TABLE 56. Simple Color - Esc * r # U (Also known as Set Planes Per Row)
#
Value
1
-3 3
-4 Default Range
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
DJ890C
DJ895C
DJ970C
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
1
-4, -3, 1, 3 - Command is ignored for out of range values
HP2000C
Single plane K palette 3 planes, device CMY palette 3 planes, device RGB palette 4 planes, device KCMY palette
EFFECT
The Simple Color (Esc * r # U) command, sometimes referred to as Set Planes Per Row, allows color selection from a fixed palette. CMY or RGB raster data must be transferred by plane (Esc * b # V) as well as by row (Esc * b # W). The pixel encoding mode is indexed 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
84 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 85
HP PCL Commands
Row Pointer. The HP DeskJet 600/800/900 & HP 2000 Series printer firmware will 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
1 White (no ink) 0
Black 1
3-Plane CMY Color Palette (value = -3)
Planes per Row Color
Printed
3 White (no
ink)
Yellow 0 0 1
Magenta 0 1 0
Red 0 1 1
Cyan 1 0 0
Green 1 0 1
Blue 1 1 0
Composite
Black
Data Plane Pattern
C M Y
0 0 0
1 1 1
3-Plane RGB Color Palette (Value = 3)
Planes per Row Data Plane Pattern Color
R G B
3 0 0 0 Composite
0 0 1 Blue 0 1 0 Green 0 1 1 Yellow 1 0 0 Red 1 0 1 Magenta 1 1 0 Cyan 1 1 1 White (no
Printed
Black
ink)
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 85
Page 86
HP PCL Commands
4 Plane (KCMY) Color Palette (value = -4)
Planes per Row Color Printed Data Plane Pattern
K C M Y
4 White 0 0 0 0
Yellow 0 0 0 1
Magenta 0 0 1 0
Red 0 0 1 1
Cyan 0 1 0 0
Green 0 1 0 1
Blue 0 1 1 0
Composite
Black 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
0 1 1 1
86 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 87
HP PCL Commands
!
10.16.2 Foreground Color
TABLE 57. Foreground Color - Esc * v # S
#
DJ600
DJ610C
DJ660C
DJ670C
DJ680C
DJ690C
DJ695C
DJ810C
DJ830C
DJ850C
DJ870C
DJ880C
Value
n
Default Range
44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44
0 0 to the size of the current palette-1
DJ890C
Out of range values are mapped in to a new index via modulo (palette size)
All HP PCL marking entities utilize foreground color, which is selected by Esc * v # S from the current palette.
DJ895C
DJ970C
HP2000C
Text will be printed in the color specified by the given index
EFFECT
Sets the foreground color to the specified index of the current palette. Out-of-range values are mapped into a new index via modulo (palette size). For example, if
the current palette size is 8, and the selected index for the foreground color command is 10, the index is mapped into the index of 2 (i.e., 10 modulo 8).
Foreground color affects the following HP PCL page marking primitives in HP DeskJet 600/ 800/900 & HP 2000 Series printers.
44
Text characters
44
Solid or monochrome patterned rectangular area fills (rules) (800, 855, 870, 890 only)
44
Raster images (see note below)
The HP DeskJet 600 printer will ignore this command if the black pen is installed (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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 87
Page 88
HP PCL Commands
TABLE 58. Single Plane (black) Palette
Planes Per Row Index Color
1 0 White (no ink)
1 Black
TABLE 59. Three Plane (CMY) Color Palette
Planes per Row Index Color
3 0 White (no ink)
1 Cyan 2 Magenta 3 Blue 4 Yellow 5 Green 6 Red 7 Composite Black
TABLE 60. Three Plane (RGB) Color Palette
Planes per Row Index Color
3 0 Composite Black
1 Red 2 Green 3 Yellow 4 Blue 5 Magenta 6 Cyan 7 White (no ink)
88 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 89
HP PCL Commands
TABLE 61. Four Plane (KCMY) Color Palette
Planes per Row Index Color Printed
4 0 White (no ink)
1 White (no ink) 2 Cyan 3 Black 4 Magenta 5 Black 6 Blue 7 Black 8 Yellow
9 Black 10 Green 11 Black 12 Red 13 Black 14 Composite Black 15 Composite Black
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 89
Page 90
Fonts
11.0 Fonts
A soft font is composed of a Font Definition (font header) and a series of character definitions. Both are described below. In order to use the standard bitmap font definition on a HP DeskJet 600 or 85X Series printers, the Font Descriptor Size field must be set to exactly 64. The First Code and Last Code fields must also contain valid information. HP LaserJet printers do not enforce these restrictions, and it is therefore common for developers leveraging code and fonts from previous HP LaserJet development to experience problems.
11.1 Standard Bitmap Font Definition
(format 0):
Byte 15 (MSB) 8 7 (LSB) 0 Byte
0 Font Descriptor Size (64) 1 2 Descriptor Format (0) Symbol Set Type 3 4 Style MSB Reserved 5 6 Baseline Position 7
8 Cell Width 9 10 Cell Height 11 12 Orientation 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
90 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 91
Fonts
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
0 Font Descriptor Size (68) 1 2 Format (20) Symbol Set Type 3 4 Style MSB Reserved 5 6 Baseline Position 7
8 Cell Width 9 10 Cell Height 11 12 Orientation 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)
n ... n+l
69
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 91
Page 92
Fonts
!
The following notation is used to define data types in the font definitions: (BOOL) Boolean (0,1) (UBYTE) Unsigned Byte (0 . . . 255) (SBYTE) Signed Byte (-1 28 . . .1 27) (UINT) Unsigned Integer (0 . . . 65535) (SINT) Signed Integer (-32768 . . . 32767) (ULINT) Unsigned Long Integer (0 . . . (232-1 )) (SLINT) Signed Long Integer (_231. . . (23 (ASCxx) ASCII String (array (0 . . . (xx-1))) of characters
11.2.1 Font Descriptor Size (UINT)
This field contains the number of bytes in the font descriptor (not the font definition size, which is given by the escape sequence value field). See the font definition tables for the appropriate value. The font is invalid if the size is less than the minimum required.
11.2.2 Descriptor Format (UBYTE)
Identifies the font as one of the following: ValueFormat 0 Standard Bitmap 20 Resolution-Specified Bitmap
Unrecognized values invalidate font creation.
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
0 Bound font, 7-bit (96 characters) - Character codes 32-127 [decimal] are print-
1 Bound, 8-bit (192 characters) - Character codes 32-127 and 160-255 printable. 2 Bound font, 8-bit (256 characters) - All codes are printable except 0, 7-15, and
10 Unbound font, no symbol set affiliation - Character codes correspond to MSL
11 Unbound font, no symbol set affiliation - Character codes correspond to Unicode
a
able
a
27
numbers (for Intellifont unbound scalable fonts)
numbers (for TrueType unbound scalable fonts)
92 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 93
Fonts
a. Access to those codes that are unprintable, yet have a character defined, requires the
use of the Transparent Print (Esc & P # X) command
11.2.4 Font Type (UBYTE)
Identifies the font type as one of the following:
Value Symbol Set Organization
0 7-bit (32 -1 27 are printable) 1 8-bit (32 -127 and 160 - 255 are printable) 2 PC-8 (0 - 255 are printable except 7 -1 5 and 27) 3 16-bit (all are printable except 0, 7 -1 5, 27, 65279, 65534, and 65535)
A type 3 font is a 16-bit font with character codes downloaded according to some native 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)
15 14 10 9 5 4 2 1 0
X reserved structure width posture
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
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 93
Page 94
Fonts
!!!
!
5 - Outline with shadow 6 - In-line with shadow 7 - Contour with shadow 8-11 -Patterned (complex patterns, subjective to typeface) 12-15 - Patterned with shadow 16 - Inverse 17 - Inverse in open border 18-30 - Reserved 31 - Unknown structure
The reserved bits (10 to 15) should be set to 0. If a font style of “italic compressed contour” is downloaded, the value(#) would be:
1 +(2x4)+(3x32)=105
11.2.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.
94 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 95
Fonts
!
11.2.10 Spacing (BOOL)
Specifies the type of font spacing. Fixed spacing is 0; proportional spacing is l; dual-fixed spacing is 2.
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.
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 95
Page 96
Fonts
!
11.2.14 Height (UINT)
Bitmap Font - Specifies the font’s height in quarter-dot units. The value, converted to points
(1/72 inch), is used as the height characteristic of the font. Height combines with Height Extended to specify the design height of the font in 1/1024 dots.
For example, a 10 point font at 300 dpi has a height field of 166 quarter dots (1200 quarter dots/inch, 1/72 inch/ point).
(10 point) x (1 inch /72 point) x (300 dots/inch) x (4 quarter-dots/dot) = 166.667
11.2.15 xHeight (UINT)
Bitmap Font - Specifies the height of the lower case “x” in quarter dots.
All HP DeskJet 600 and 85X Series printers ignore this field.
11.2.16 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 0 Medium, Book, or Text 1 Semi-bold 2 Demi-bold 3 Bold 4 Extra bold
96 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 97
Fonts
Value Stroke Weight
5 Black 6 Extra black
7 Ultra black Default = 0 Range = -7 to 7 (less than -7 maps to -7; greater than 7 maps to 7)
11.2.19 Typeface [LSB/MSB] (UBYTE)
Specifies the HP typeface number of the font. Three versions of this field are used: the 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
MSB LSB
15 14 11 10 9 8 0
0 Vendor Version Typeface Base Value
Typeface Base Value
0 Line Printer or Line Draw 3 Courier 4 Helvetica 5 Times Roman 6 Letter Gothic 7 Script 8 Prestige . . .
Version (typeface word partial sum multiplied by 512)
0 1st version 1 2nd version
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 97
Page 98
Fonts
!
2 3rd version 3 4th version
Vendor (typeface word partial sum multiplied by 2048)
0 Reserved for generic typeface selection. 1 Reserved for HP use only. 2 Agfa Division, Miles Inc. 4 Bitstream Inc. 6 Linotype Company 8 The Monotype Corporation plc
10 Adobe Systems, Inc. 3, 5, 7, 9,11-15 Reserved Default = 3 Range = 0 to 65535 (unavailable values are ignored)
Vendor Number (bits 11-14) - This HP-assigned value is between 0 and 15. Vendor Version (bits 10, 9) - This value is between 0 and 3. It will change when the vendor
changes the width of a font or adds new characters to a font. A vendor code of 0 is reserved for generic typeface selection so that older one-byte typeface values can still be used in the generic typeface selection process.
Typeface Base Value (bits 0 to 8) - This value is between 0 and 511. Some of these values include appearance width and structure information (i.e., Helvetica Compressed and Helvetica Outline, etc.).
A typeface family value in which both Vendor and Version numbers are 0 is reserved for
generic type- face selection. That is, for typeface family values less than 512, the printer
exactly matches the LSB typeface base value field. For typeface values greater than or
equal to 512, the printer uses the full 16-bit typeface word.
PROCEDURE: Typeface Family = Typeface Base Value + (Version x 512) + (Vendor x 2048)
The HP typeface number for Agfa’s Dom Casual typeface is 4157 (vendor value=2, version value=0, and type- face value = 61).
61+(0x512)+(2x2048)=4157
11.2.20 Serif Style (UBYTE)
HP DeskJet 600 and 85X Series printers ignore this field.
11.2.21 Quality
HP DeskJet 600 and 85X Series printers ignore this field.
98 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Page 99
Fonts
!
!
11.2.22 Placement
HP DeskJet 600/800/900 & HP 2000 Series printers ignore this field.
11.2.23 Underline Position (SBYTE)
Bitmap Font - Specifies the distance from the baseline to the top dot row of the underline in
dots. Zero specifies an underline position at the baseline. A positive value specifies an 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).
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 99
Page 100
Fonts
!
11.2.27 First Code (UINT)
Specifies the character code of the first printable character in the font. The space character may be printable, and will print an image if one is defined; otherwise, a space control code is executed.
For a type 3 font, this field can have any value from 0 through 65535. First Code must be less than or equal to Last Code.
Symbol SetType 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
100 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide
Loading...