Hp Deskjet 600 Users Manual PCL Developer's Guide, Rev6.0
2015-02-09
: Hp Hp-Deskjet-600-Users-Manual-548792 hp-deskjet-600-users-manual-548792 hp pdf
Open the PDF directly: View PDF .
Page Count: 124
Download | |
Open PDF In Browser | View PDF |
HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Hewlett-Packard Vancouver Site To aid in HP PCL printer driver development for HP DeskJet 600/700/800/900 & HP 2000 Series printers Preface and Printing History 1.0 Preface and Printing History The information contained in this document is subject to change without notice. Hewlett-Packard makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Hewlett-Packard shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this material. This document may not be photocopied, reproduced, modified, or translated without prior consent of Hewlett-Packard Company. Printing History Edition 1 September 1995 Edition 2 March 1996 Edition 3 May 1996 Edition 4 May 1997 Edition 5 October 1997 Edition 6 December 1999, Edition 6.1 September 2001 © Copyright 1995, 1996, 1997, 1998, 1999, 2001 by Hewlett-Packard Company 18110 S.E. 34th Street, Vancouver, WA 98683, USA 2 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide About this Developer’s Guide 2.0 About this Developer’s Guide 2.1 Which printers are covered by this guide1 Throughout this HP PCL Developer’s Guide you will see printer names referenced. Here is a list of actual names and the “Series” names used throughout this guide. 2.1.1 HP DeskJet 600 Series: 630C*, 640C*, and 656C* HP DeskJet 600 HP DeskJet 610C HP DeskJet 660C HP DeskJet 670C HP DeskJet 680C HP DeskJet 690C HP DeskJet 600, HP DeskJet 600C - HP DeskJet 610C, HP DeskJet 610CL, HP DeskJet 612C - HP DeskJet 660C, HP DeskJet 660Cse - HP DeskJet 670C, HP DeskJet 670TV, HP DeskJet 672C - HP DeskJet 680C, HP DeskJet 682C - HP DeskJet 690C, HP DeskJet 692C, HP DeskJet 693C, HP DeskJet 694C HP DeskJet 695C - HP DeskJet 695C, HP DeskJet 695Cci, HP DeskJet 697C 2.1.2 HP DeskJet 800 Series: 840C* HP DeskJet 810C - HP DeskJet 810C, HP DeskJet 812C, HP DeskJet 815C HP DeskJet 830C - HP DeskJet 830C HP DeskJet 850C - HP DeskJet 850C, HP DeskJet 855C, HP DeskJet 855Cse, HP DeskJet 855Cxi HP DeskJet 870C - HP DeskJet 870Cse, HP DeskJet 870Cxi HP DeskJet 880C - HP DeskJet 880C, HP DeskJet 882C HP DeskJet 890C - HP DeskJet 890C, HP DeskJet 890Cse, HP DeskJet 890Cxi, HP DeskJet 890CM HP DeskJet 895C - HP DeskJet 895Cse, HP DeskJet 895Cxi 2.1.3 HP DeskJet 900 Series: 920C*, 940C*, 960C*, 980C*, and 990C* HP DeskJet 930C, 950C, and 970C - HP DeskJet 930Cxi, 950Cxi, and 970Cxi 2.1.4 HP 2000C Series HP 2000C - HP 2000C, HP 2000CN, HP 2000Cse, HP 2000Cxi 1. HP DeskJet 710C, 712, HP DeskJet 720C, 722C, and HP DeskJet 820Cse, 820Cxi printers are “Windows” printers. See Section 2.2.1 “Special Note” regarding these printers. * Product will appear in December 2001 revision HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 3 About this Developer’s Guide 2.2 Special Notes 4 HP DeskJets were designed in series - the printer’s internal firmware will usually report the series name, rather than the specific product name. All printers in a series will behave as the base model. For example, the HP DeskJet 810C Series printers were sold under the name of the HP DeskJet 810C, HP DeskJet 812C, and the HP DeskJet 815C. All three printer models have the same internal firmware, reporting the printer as a HP DeskJet 810C. Note that the HP DeskJet 895Cse and HP DeskJet 895Cxi are both part of the HP DeskJet 895C Series family and are NOT derived from the HP DeskJet 890C Series. 4 If a command is not covered in this guide, it is either obsolete or Hewlett-Packard proprietary information. No further information on these unsupported or proprietary commands is available. 4 In the HP PCL escape sequences within this manual, the letter “ell” (l) is represented by a script character (l ) to differentiate between the “ell” and the character 1 (one). Where spaces have been added to commands for readability, those spaces must not be included in your code. 4 Specifications on the ink cartridges (including the HP Photo Cartridge) are not available this is Hewlett-Packard proprietary information and will not be provided. 2.2.1 Special Note - HP DeskJet 710C, 720C and 820C Series printers 4 The HP DeskJet 710C, 720C, and 820C Series printers are “Windows” printers. These printers will not function from a DOS-only environment. However, they will work when accessed from a DOS box within Windows 3.1x, 95, 98. For clarity, these printers are not included in the printer tables in this guide. If you wish to send PCL commands to these printers, use the HP DeskJet 660C Series printers as your guide in the tables. 4 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Table of Contents 3.0 Table of Contents 1.0 Preface and Printing History 2 2.0 About this Developer’s Guide 3 2.1 Which printers are covered by this guide 2.1.1 2.1.2 2.1.3 2.1.4 HP DeskJet 600 Series HP DeskJet 800 Series HP DeskJet 900 Series HP 2000C Series 3 2.2 Special Notes 3 3 3 3 4 2.2.1 Special Note - HP DeskJet 710C, 720C and 820C Series printers 4 3.0 Table of Contents 5 4.0 How This Developer’s Guide Works 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.0.10 4.0.11 10 Page Length 10 The Command Description Page 10 Command Name 10 Escape Sequence 11 Command Summary 11 Command Usage Table 11 Command Options 11 Command Option Recognition Grid 11 Effect of Command Options 11 Detailed Command Description 12 Important Point 12 5.0 Introduction to HP PCL 13 5.1 History of HP PCL Printer Language 5.1.1 What are Printer Commands? 5.1.2 Control Codes 13 5.1.3 HP PCL Commands 13 5.2 Syntax of Escape Sequences 13 13 14 5.2.1 Two-Character Escape Sequences 14 5.2.2 Parameterized Escape Sequences 14 6.0 The Page 17 6.1 Logical Page, Physical Page 17 6.2 Page Layout 18 6.2.1 Current Active Position (CAP) 6.2.2 CAP Reference Point 19 7.0 The Print Environment 20 8.0 Merged Text and Graphics 9.0 Programming Hints 18 21 22 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 5 Table of Contents 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 Follow Specifications 22 Leverage from Previous Programs 22 Priority of Feature Set Commands 22 Priority of Commands 23 Time Savers 23 10.0 HP PCL Commands 25 10.1Control Codes and Special Character Codes 10.1.1 Escape 25 25 10.2 Testing Commands 10.3 Print Modes 25 25 10.3.1 Transparent Data Mode 25 10.3.2 Display Functions Mode ON 26 10.3.3 Display Functions Mode OFF 26 10.4 Text Enhancements 10.4.1 10.4.2 10.4.3 10.4.4 27 Enable Underline 27 Disable Underline 28 Line Termination 28 End-of-Line Wrap 29 10.5 Job Control 30 10.5.1 Reset 30 10.6 Printer Control 10.6.1 10.6.2 10.6.3 10.6.4 10.6.5 31 Gray Balance 31 Dry Timer 32 Print Quality 33 Media Type 34 Unit of Measure 34 10.7 Printer Diagnostics 10.7.1 Self-Test 36 36 10.8 Page Control 37 10.8.1 10.8.2 10.8.3 10.8.4 10.8.5 10.8.6 10.8.7 10.8.8 10.8.9 10.8.10 10.8.11 10.8.12 10.8.13 Page Length 37 Page Size 38 Media Source 40 Orientation 41 Horizontal Motion Index 42 Vertical Motion Index 43 Line Spacing 44 Clear Horizontal Margins 44 Left Margin 45 Right Margin 45 Top Margin 46 Text Length 47 Perforation Skip Mode 47 10.9 Horizontal Positioning Commands 10.9.1 10.9.2 10.9.3 10.9.4 6 Backspace 49 Carriage Return Space 49 Linefeed 49 49 49 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Table of Contents 10.9.5 Formfeed 50 10.9.6 Horizontal Tab 50 10.9.7 Move CAP Horizontal (Decipoints) 51 10.9.8 Move CAP Horizontal (Columns) 52 10.9.9 Move CAP Horizontal (HP PCL Units) 52 10.10 Vertical Positioning Commands 54 10.10.1 Move CAP Vertical (Rows) 54 10.10.2 Move CAP Vertical (Decipoints) 55 10.10.3 Move CAP Vertical (HP PCL Units) 56 10.11 Font Selection 10.11.1 10.11.2 10.11.3 10.11.4 10.11.5 10.11.6 10.11.7 10.11.8 57 Font Selection by Attribute Font Symbol Set 57 Font Spacing 60 Font Pitch 60 Font Height 61 Font Style 62 Font Stroke Weight 64 Font Selection by ID 65 10.12Downloading Fonts 57 66 10.12.1Font ID 66 10.12.2 Download Font 67 10.12.3 Character Code 68 10.12.4 Download Character 68 10.12.5 Font Control 69 10.13Raster Graphics 10.13.1 10.13.2 10.13.3 10.13.4 10.13.5 10.13.6 10.13.7 10.13.8 70 Raster Mode 70 Commands Locked Out of Raster Mode 70 Commands Allowed in Raster Mode 70 Start Raster 71 End Raster 71 Raster Resolution 72 Source Raster Width 73 Y Offset 74 10.14Raster Data Transfer 75 10.14.1 Transfer Raster by Plane 75 10.14.2 Transfer Raster by Row/Block 10.15 Raster Compression 10.15.1 Compression Method 10.16Color 77 84 10.16.1 Simple Color 84 10.16.2 Foreground Color 11.0 Fonts 76 77 87 90 11.1 Standard Bitmap Font Definition 90 11.2 Resolution-Specified Bitmap Font Definition 91 11.2.1 Font Descriptor Size (UINT) 92 11.2.2 Descriptor Format (UBYTE) 92 11.2.3 Symbol Set Type (UBYTE) 92 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 7 Table of Contents 11.2.4 11.2.5 11.2.6 11.2.7 11.2.8 11.2.9 11.2.10 11.2.11 11.2.12 11.2.13 11.2.14 11.2.15 11.2.16 11.2.17 11.2.18 11.2.19 11.2.20 11.2.21 11.2.22 11.2.23 11.2.24 11.2.25 11.2.26 11.2.27 11.2.28 11.2.29 11.2.30 11.2.31 11.2.32 11.2.33 11.2.34 11.2.35 11.2.36 11.2.37 11.2.38 Font Type (UBYTE) 93 Style MSB (UINT) 93 Baseline Position (UINT) 94 Cell Width (UINT) 94 Cell Height (UINT) 94 Orientation (UBYTE) 94 Spacing (BOOL) 95 Symbol Set (UINT) 95 Character Set (UINT16) 95 Pitch (UINT) 95 Height (UINT) 96 xHeight (UINT) 96 Width Type (SBYTE) 96 Style LSB (UBYTE) 96 Stroke Weight (SBYTE) 96 Typeface [LSB/MSB] (UBYTE) 97 Serif Style (UBYTE) 98 Quality 98 Placement 99 Underline Position (SBYTE) 99 Underline Thickness (UBYTE) 99 Text Height (UINT) 99 Text Width (UINT) 99 First Code (UINT) 100 Last Code/Number of Chars (UINT) Pitch Extended (UBYTE) 100 Height Extended (UBYTE) 100 Cap Height (UINT) 101 Font Number (UINT) 101 Font Name (ASC16) 101 X Resolution (UINT) 101 Y Resolution (UINT) 101 Copyright 102 Font Scaling Technology 102 Segment Size 102 11.3 Bitmap Resolution Segment 11.3.1 X Resolution (UINT16) 11.3.2 Y Resolution (UINT16) 103 103 103 11.4 Character Enhancement Segment 11.4.1 Style (UINT32) 104 11.4.2 Stroke Weight (UINT32) 11.4.3 Sizing (UINT16) 105 100 104 104 11.5 Dual-Pitch-Space Char Segment 106 11.5.1 Full-Width-Space Character Code 106 11.5.2 Half-Width-Space Character Code 106 12.0 HP LaserJet Bitmap Character Definition 107 12.0.1 Format (UBYTE) 107 12.0.2 Continuation (BOOL) 108 8 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Table of Contents 12.0.3 12.0.4 12.0.5 12.0.6 12.0.7 12.0.8 12.0.9 12.0.10 12.0.11 Descriptor Size (UBYTE) 108 Class (UBYTE) 108 Orientation (UBYTE) 111 Left Offset (SINT) 111 Top Offset (SINT) 111 Character Width (UINT) 111 Character Height (UINT) 111 Delta X (SINT) 112 Character Data 112 13.0 Banner Printing 113 13.0.1 13.0.2 13.0.3 13.0.4 13.0.5 13.0.6 13.0.7 13.0.8 Media Source 113 Margins 114 Command Sequence 114 Moving to a New Logical Page 114 Unloading Continuous Media 114 Power-On with Continuous Media 115 Power-Off with Continuous Media 115 Printing Cutsheet with Z-Fold Media 115 13.1 Sample HP PCL for a Banner Print Job 14.0 HP PCL Code Samples 116 14.1 Page Formatting Program Example 14.2 Commands Sent to Printer 118 14.3 3-Plane Color Graphics 119 14.4 4-Plane Color Graphics 120 15.0 Printer Commands 115 116 122 16.0 Other Resources for Assistance 124 16.1 HP Developer Exchange 124 16.2 Comments & Feedback 124 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 9 How This Developer’s Guide Works 4.0 How This Developer’s Guide Works Below is a sample command description chart from this guide. On the following pages you can find descriptor names for the various parts of the graph. HP2000C DJ970C DJ895C C DJ890C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C &l#P # Value DJ600 DJ610C G F DJ690C Page Length - Esc TABLE 1. E B DJ880C Page Length DJ870C A 4.0.1 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Page length set to 66 lines 1 .. n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Page length is set, in number of lines, at the current lpi Default 0 (66 lines per page) Range 1 to maximum supported paper size - Command is ignored for out of range values H ha rt O nl y! EFFECT C D Designates the number of lines on the logical page at the current VMI (Vertical Motion Index) This command performs the following actions: 4 4 4 4 Prints any unprinted pages. Sa m I pl e setting. Ejects the current page if printable data has been received (FF-CR). Sets text length, top margin, left margin, and right margin to user defaults. Moves CAP to the left edge of the logical page at the top of form. The printer may select a different page size for the same line count, since lines are defined by the current VMI. This command is ignored if VMI is 0. 4.0.2 The Command Description Page A Since some commands are not recognized by all HP DeskJet printers, or some family members do not recognize all options for a particular command, it is necessary to indicate which printers do respond to each command, and how each printer treats each command option. 4.0.3 Command Name B The Command Name is the name by which each command is referred to within the text of this guide, and by which the command is referenced in the index. 10 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide How This Developer’s Guide Works 4.0.4 Escape Sequence C This is the ASCII text version of the binary string, which causes the command to be invoked. The pound sign ("#") is used to represent where one of the command options, which are listed following the Command Summary, would be inserted. 4.0.5 Command Summary D A brief description of the purpose of a command is given. The Command Summary can be used to determine quickly if a particular command will perform the overall task you desire. 4.0.6 Command Usage Table E The Command Usage Table provides a quick key for the application of the available command options for each printer command. The column labeled "#Value" lists all options (also referred to as command parameters) for the command being discussed. The group of columns labeled with the model numbers of the HP DeskJet printers indicates which printers recognize each command option. The column labeled "Effect" briefly describes what result the use of each command option will have. The Command Usage Table is designed to let you quickly determine if a particular command and a selected command option will be recognized by your target printer, and what the effect of using that command and command option will be. The detailed command description can be carefully studied to gain a thorough understanding of the command once you determine if it is the one you want to use. 4.0.7 Command Options F All command options for a command are listed in the column of the Command Usage Table, which is labeled "Value". You should note that even though a particular member of the HP DeskJet printer family is indicated as recognizing a command, that printer may not recognize, and therefore not respond to, all listed command options. 4.0.8 Command Option Recognition Grid G This section of the table serves to quickly indicate which HP DeskJet printer models will recognize and respond to a particular command option. If a check mark ("4") appears under a particular printer model in the row for a command option, that printer will recognize the option. If there is no check mark for a command option under a particular printer model number, that printer will not recognize or respond to that command option. If a command is used with an option the printer does not recognize, the results you obtain on your print media will be unpredictable; your printed page may not appear as you expect. 4.0.9 Effect of Command Options H The result of using the command with a given command option is briefly described. A detailed description of the impact of the command and its options are provided in the detailed command description, which follows the Command Usage Table. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 11 How This Developer’s Guide Works 4.0.10 Detailed Command Description I This is where all aspects of the command are explained. All details of the command and its usage are covered, including the effect of the command on the printer and the printing environments, all the command's options and the effect of each of those options, and any extended impact the command may have which you should be aware of. 4.0.11 ! 12 Important Point Where a blue exclamation point appears, special information that you should keep in mind is presented. (As a side note, if you print this document on a monochrome printer, the exclamation point will appear a dark gray.) This information may be of a cautionary nature, or it may be included in this emphasized format to point out special cases, which may apply for a command. Any information noted in these areas should be read carefully before you use the associated command. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Introduction to HP PCL 5.0 Introduction to HP PCL 5.1 History of HP PCL Printer Language Hewlett-Packard created the HP PCL Printer Language to provide an economical and efficient way for application programs to control a range of printer features across a number of printing devices. HP has evolved both the definition and implementations of the HP PCL printer language to provide the optimal price and performance balance. HP PCL 3 continues to lead with enhancements to the HP PCL printer language in order to deliver powerful technology advances. The HP PCL printer language commands are compact escape sequence codes that are embedded in the print job data stream. This approach minimized both data transmission and command decode overhead. HP PCL printer language formatters and fonts are designed to quickly translate application output into high-quality, device-specific, raster print images. HP PCL printer language commonality from HP printer to HP printer helps to minimize printer support problems and protect HP printer customer investment in applications and printer driver software. 5.1.1 What are Printer Commands? HP PCL language printer commands provide access to printer features. There are two general types of HP PCL language commands: 4 Control codes 4 HP PCL commands 5.1.2 Control Codes A control code is a character that initiates a printer function, for example Carriage Return (CR), Line Feed (LF), Form Feed (FF), etc. 5.1.3 HP PCL Commands HP PCL commands provide access to the printer's HP PCL control structure. The HP PCL structure controls all of the printer's features. HP PCL printer commands consist of two or more characters. The first character is always the ASCII escape character, identified by Esc. Esc is a special control code, which identifies the subsequent string of characters as a printer command. As the printer monitors incoming data from a computer, it is "looking" for this character. When this character appears, the printer reads it and the subsequent string of characters as a command to be performed and not as data to be printed. ! HP PCL printer commands are also referred to as escape sequences. The two terms are used interchangeably throughout this manual. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 13 Introduction to HP PCL Once an HP PCL command sets a parameter, that parameter will remain set until that HP PCL command is repeated with a new value, the printer is reset to its user default environment, or another command makes a change. For example, if you send the printer a command to set line spacing to 3 lines/inch, each page will print 3 lines/inch until the printer receives a Line Spacing or VMI command or the printer is reset. 5.2 Syntax of Escape Sequences There are two forms of HP PCL escape sequences: two-character escape sequences and parameterized escape sequences. 5.2.1 Two-Character Escape Sequences Two-character escape sequences have the following form: Esc X Where "X" is a character that defines the operation to be performed. (Note, "X" may be any character from the ASCII table within the range 48-126 decimal ["0" through "~"]). Following are examples of two- character escape sequences: 5.2.2 Esc E a two-character escape sequence used for resetting the printer. Esc 9 a two-character escape sequence used for resetting the left and right margins. Parameterized Escape Sequences Parameterized escape sequences have the following form: Esc X y # z1 # z2 # z3 … # Zn[data] Where y, #, zi (z1, z2, z3… ) and [data] may be optional, depending on the command. X Parameterized Character - A character from the ASCII table within the range 33-47 decimal ("!" through "/") indicating that the escape sequence is parameterized. y Group Character - A character from the ASCII table within the range 96-126 decimal (" ' " through "~") which specifies the group type of control being performed. # Value Field - A group of characters specifying a numeric value. The numeric value is represented as an ASCII string of characters within the range 48-57 decimal ("0" through "9") that may be preceded by a + or - sign and may contain a fractional portion indicated by the digits after a decimal point (.). Numeric value fields are within the range -32767 to 32767. If an escape sequence requires a value field and a value is not specified, a value of zero is assumed. 14 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Introduction to HP PCL zi Parameter Character - Any character from the ASCII table within the range 96-126 decimal (" " " through "~"). This character specifies the parameter to which the previous value field applies. This character is used when combining escape sequences. Zn Termination Character - Any character from the ASCII table within the range 64-96 decimal ("@" through "~”). This character specifies the parameter to which the previous value field applies. This character terminates the escape sequence and is always in the form of a capital letter, such as A, M, T, etc. [Data] Binary Data is eight-bit data (for example, graphics data, downloaded fonts, etc.). The number of bytes of binary data is specified by the value field of the escape sequence. Binary data immediately follows the terminating character of the escape sequence. Following is an example of an escape sequence with a termination character and no parameter character. This escape sequence performs a single function of logical page orientation in landscape mode. Esc & Escape Character l 1 O Termination Character Value Field Parameterized Character Group Character ! 4 Some escape sequences shown in this manual contain spaces between characters for clarity. Do not include these spaces when using escape sequences. 4 Also, in the escape sequence a script "l” is used to indicate a lower case "l" for clarity. The following is an example of two escape sequences, each of which perform one function: the first sets the logical page orientation to Portrait Mode, and the second sets the page size to 8 ½ x 11 inches. Esc & l 0 O and Esc & l 2 A These two escape sequences can be combined into one escape sequence as follows: HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 15 Introduction to HP PCL Esc & l 1 o Escape Character 2 A Termination Character Parameterized Character Group Character Value Field Parameter Character Value Field Notice that the "Esc" and the "&l" are dropped from the second printer command when they are combined. Also, the upper-case "O" that terminated the first command becomes a lowercase "o" parameter character when these commands are combined. Use these three rules to combine and shorten printer commands: 4 The first two characters after "Esc" (the parameterized and group character) must be the same in all of the commands that will be combined. In the example above, these are "&" and "l". 4 All alphabetical characters within the combined printer command will be lower-case, except the final letter, which is always upper-case. In the combined example above, "O" becomes "o". The final character in the printer command must always be upper-case to let the printer know that the command is complete. 4 The printer commands are performed in the order that they are combined (from left to right). Be sure to combine commands in the order that they are to be performed. 16 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide The Page 6.0 The Page 6.1 Logical Page, Physical Page The HP PCL printer language distinguishes between the physical page and the logical page. The physical page is the actual sheet of paper. Its size is determined by the size of the media installed in the printer. The logical page defines the addressable area in which the cursor can be positioned. CAP (Current Active Position) refers to the "cursor" position on the logical page, similar to the cursor used on most computer terminals. The CAP location on the logical page is the next position where a character will be placed. CAP cannot be moved outside of the logical page bounds. The figure below shows the layout of the logical page. The Logical Page Page Top Margin Perf Skip Zone (1 inch) Page Left Margin Right Margin Text Area Text Length Paper Size Logical Page Bottom Margin Unprintable Region Page Perf Skip Zone (1 inch) HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 17 The Page 6.2 Page Layout Referring to the previous figure, each page passed through the printer has a number of components. Text printing is normally limited to a specific printable area within the logical page known as the text area. The text area is entirely contained by the logical page, but may be smaller because of margins. There are unprintable regions along the outside edges and bottom of each sheet of print media. If printing is attempted outside the printable area at the bottom of the sheet, data may be printed on the following sheet. If printing is attempted in the unprintable regions, formatting or data may be lost. The perforation skip zone extends from the bottom of the text area on one page to the top of the text area on the next page. When the Perforation Skip Mode is turned ON, a Line Feed that would normally move CAP into the bottom margin of the current page instead moves CAP to the top of the text area on the next page. If the Perforation Skip Mode is turned OFF, a Line Feed that would move CAP into the bottom margin is allowed. If text printing is attempted within the unprintable region at the bottom of the page, a hardware page break occurs, the text is printed on the next sheet of print media, and then a software page break occurs. The result is an unplanned, extra page, which contains only that portion of the text which invaded the unprintable region. Allow ½ inch at the bottom of the page. This extra ½ inch can mean a loss of 3 lines. For example, on an 11 inch page, the full-page length is 66 lines (6 lines per inch). However, the effective page length is 10 ½ inches, or 63 lines. 6.2.1 Current Active Position (CAP) CAP is the position at which the next character will be printed on the page. This position can be moved to different points on the logical page using the cursor positioning commands. CAP cannot be moved outside the bounds of the logical page, except when moving to another logical page. CAP position (0,0) is at the left edge of the logical page at the current top margin position. Since the top margin can be changed using a printer command, the physical location of the 18 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide The Page point (0,0) may change. The point (0,0) then, does not necessarily equate to the top of the paper. CAP Position Top Margin (0,0) X Y Top Margin (0,0) ABCD... X Y ABCD... Logical Page Logical Page Landscape Portrait 6.2.2 CAP Reference Point The first line starts at the (0,0) coordinate. CAP starts at (X,Y), where X= the left margin setting, and Y= the top margin setting. CAP is moved the distance of the Horizontal Motion Index to the right after printing a character and one dot row down after printing graphics. The physical location of the (X,Y) coordinate can change due to the size of the first printed character. Characters are placed with their reference points at CAP. The reference point is on the character baseline, a horizontal line just under the bottom of the non-descending characters. This means that if the top margin is at the top of the logical page, text cannot be printed at (0,0) because most of the character would be above the top edge of the page. Graphics, however, can be printed at (0,0) because they do not move above CAP. Graphics begin at the vertical level specified by CAP and then move downward on the page from that point. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 19 The Print Environment 7.0 The Print Environment The group of all the printer's current feature settings is collectively referred to as the print environment. Default settings refer to the settings the printer uses unless printer commands are used to select other settings. Default settings are settings that are programmed into the printer at the factory. Each time a job is printed, some of the printer's feature settings may be changed from their default values to produce a desired output for that job. After the job has printed, the job specific feature settings are no longer needed, since the next job will likely have different output requirements. The next job should clear all previous job settings by performing a reset. This allows a job to start with the default settings as a base and vary only those settings that are needed. Returning to the default environment at the beginning of each print job eliminates the need for setting every feature each time a job is run. ! 20 Starting your print job with the Reset command (Esc E) is the recommended procedure, since the escape sequence resets all programmable features to their default values. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Merged Text and Graphics 8.0 Merged Text and Graphics The process for merging text and graphics with the HP DeskJet 600/800/900 & HP 2000 Series printers in both portrait and landscape orientation is the same as the landscape orientation method for the HP DeskJet 520, 540, 550C, and 560C Series printers, described in the HP DeskJet 500 Series Technical Reference Guide. The HP DeskJet 600/800/900 & HP 2000 Series printers are capable of buffering an entire page of text in either portrait or landscape orientation. This capability dramatically simplifies the procedure for merging text and graphics. As with the landscape orientation method for the HP DeskJet 520, 540, 550C, and 560C Series printers, when merging text and graphics for the HP DeskJet 600/800/900 & HP 2000 Series printers, the text for the entire page is first sent to the printer (without a Form Feed command), where it is stored in the printer’s formatting buffer. Following the transmission of the text, the CAP is moved to the graphics starting position with cursor positioning commands. The graphics data for the page is then sent to the printer, and the page is printed as the graphics data is processed by the printer firmware. It is important to note that once graphics data has been received for any particular raster row on the page, no text can be printed at that or any earlier position. You should not attempt to alter this procedure, for instance by sending a partial page of text, a partial page of graphics, then resuming with text transmission. Even if you do not violate the rule of sending text for a line (or preceding a line) where graphics data has been received, attempting to intermix the transmission of text and graphics data for a given page will render unpredictable results. Send all text for an entire page, then send all graphics data. Follow the last of the graphics data with a Form Feed command, which will cause any remaining text data for the page to be printed, then proceed to the next page. ! If you are modifying an existing DeskJet 500 Series printer driver, which has correctly implemented the merging of text and graphics in the past, to include other features for the HP DeskJet 600/800/900 & HP 2000 Series printers, you need not re-write your old driver. Add support for the new features to existing code, being careful to consider the impact of old, obsolete commands. However, if you are just beginning development, or you intend to add merged text and graphics capabilities for the HP DeskJet 600/800/900 & HP 2000 Series printers, you should begin with the algorithm provided above. Be aware that highly complex pages, those with numerous font changes or cursor repositioning accompanying dense and complex graphics, may cause overflow condition with the printer buffer. If you encounter this problem, you may be able to remove some of the font or position changes in order to reduce the complexity of the page description. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 21 Programming Hints 9.0 Programming Hints The following are overall guidelines to keep in mind when programming with HP PCL printer language commands. 9.0.1 Follow Specifications Follow the specifications for HP PCL printer language commands as described in this guide. Do not rely upon undocumented workarounds. For example, the HP DeskJet 500 Series printers do not allow a negative vertical cursor movement of more than 1/3 inch. While it is possible to create a workaround, the solution may produce undesirable results, as the printer papermovement hardware is not designed to provide negative paper motion. Additionally, the homemade solution that works today may not work with future printer models. 9.0.2 Leverage from Previous Programs If you have previously used HP PCL commands to create printer programs, you may be able use most of those same commands for the HP DeskJet 600/800/900 & HP 2000 Series printers. This is especially true if you have programmed for other HP DeskJet printers. Reusing previously developed code can save you a significant amount of time since you do not have to start a development effort from scratch. When leveraging from previous programs, keep in mind that the HP DeskJet 600/800/900 & HP 2000 Series printers have a number of important differences from the HP LaserJet family printer. 4 HP DeskJet 600/800/900 & HP 2000 Series printers are line oriented, whereas HP LaserJet printers are page oriented. The HP LaserJet printers format the entire page in internal memory and then the entire page is printed, whereas the HP DeskJet 600/800/900 & HP 2000 Series printers format and print consecutive horizontal lines of text or rows of graphics of the page content, one after another, until the entire page has been printed. 4 HP LaserJet printers have full-page printing capability and can position the cursor anywhere on the page. HP DeskJet 600/800/900 & HP 2000 Series printers format from the top of the page to the bottom. 4 Generally, HP DeskJet 600/800/900 & HP 2000 Series printer commands sent to the HP LaserJet printer will provide the expected printing results, but may not work as efficiently. Not all HP DeskJet 600/800/900 & HP 2000 Series commands will work with HP LaserJet printers. 9.0.3 Priority of Feature Set Commands Printer features for the HP DeskJet 600/800/900 & HP 2000 Series printers are controlled by escape sequences and control codes. Software application commands override default settings. However, when the printer is reset, either by turning the printer off and then on again or by sending the Reset escape sequence (Esc E), the printer returns to the default settings. 22 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Programming Hints 9.0.4 Priority of Commands There are no finite rules when it comes to structuring your overall program. In general, start by setting the print environment with the printer control commands, such as Reset, Selecting the Media Source, and so on. It is almost always advisable to start and end your program with the reset command (Esc E). This clears the printer environment and places your program back to the default settings. An exception to this general rule is when the printer settings are intended to carry across a multicomponent print job. Where specified in this manual, pay close attention to the order of commands. For example, raster graphics commands should be sent to the printer in the following order: 4 4 4 4 4 4 4 9.0.5 End Raster Graphics Raster Graphics Resolution Raster Graphics Width Raster Graphics Compression Method Start Raster Graphics Transfer Raster Graphics Row(s) with or without Relative Vertical Pixel Movement End Raster Graphics Time Savers The following list provides some helpful hints to make your program more efficient: 4 You do not need to specify leading and trailing zeroes. The HP DeskJet 600/800/900 & HP 2000 Series printers will compensate if you do not include zeros that occur at the end of an escape sequence. For example, if you want to specify 10 pitch during a font selection sequence, simply specify 10, rather than 0010.00. 4 Group printer control commands at the beginning of a print job. If a number of consecutive pages within a job have the same format (such as margins, HMI, VMI, etc.), the associated page formatting commands only need to be set once for that group of pages. 4 Combine escape sequences where possible. Shortening commands improves throughput. For example, instead of sending the Page Length command (Esc & l # P) and the Top Margin command (Esc & l # E) separately, send them as one parameterized escape sequence (Esc & l # p # E). Follow the guidelines for parameterized escape sequences, which are described earlier in this chapter. 4 Minimize escape sequences where possible. For example, if you wish to move the cursor two inches down the page, use one cursor movement command, rather than move the cursor by decipoints or dots a number of times. 4 You do not need to send a request to load paper. However, you do need to specify envelope size and send a Media Source command to load envelopes. 4 Avoid using tabs to move the cursor across the page. Using tabs may make you dependent upon the current font pitch. Instead, use cursor positioning commands. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 23 Programming Hints 4 Avoid using a Start Raster Graphics and End Raster Graphics command on every line. Use these commands at the beginning and end of the graphics image. 4 When setting the raster graphics width, calculate the widest point of the raster image. Use this value to set the width once for the entire raster graphics image. 4 Avoid setting top margin or text length to values outside of the printable area. This may cause data loss. When using both the top margin and text length commands, the top margin command should be sent before the text length command 24 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands 10.0 10.1 HP PCL Commands Control Codes and Special Character Codes The following commands initiate printer control functions: 10.1.1 Escape Provides supplementary control of printer functions. The escape character itself is a prefix for the string of one or more characters that follow. Once an escape character is received by the printer, normal text processing is suspended, and the contents of the print data stream are interpreted as a printer command, until the command has been activated by a command termination character, or the escape sequence has been determined to be invalid. 10.2 Testing Commands Transparent Data Mode, and Display Functions modes (both of them) are used for testing purposes, to allow you to print the actual setup strings rather than having HP PCL actually interpret and execute them. You can use either Print Modes -or- the Display Functions Mode On and Off commands whichever is more intuitive in your programming environment. Transparent Data Mode HP2000C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &p#X # Value DJ600 DJ690C Transparent Data Mode - Esc TABLE 2. DJ970C 10.3.1 Print Modes DJ895C 10.3 1..n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range 0 to 32767 - command is ignored for out of range values EFFECT Prints all data rather than executing it. Prints the graphic symbols associated with hidden control code characters. All subsequent character codes, for the specified number of bytes, are printed with the current font attributes. The parser ignores all control codes, including the Esc character. Instead, the code’s graphic symbol in the current symbol set is printed. For example, in the PC-8 symbol set, Esc is printed as a left arrow. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 25 HP PCL Commands Display Functions Mode ON HP2000C DJ970C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C Y # Value DJ600 DJ690C Display Functions Mode ON - Esc TABLE 3. DJ895C 10.3.2 1..n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default off EFFECT Display Functions turned on This command turns on Display Functions Mode; a character code is then printed in the current active font. Turning Display Functions mode ON has the following effects: 4 All control code and escape sequence functions except CR and Esc Z are disabled. CR marks the paper and executes CR-LF. Esc Z marks the paper and disables Display Functions Mode. 4 All character codes, except CR and Esc Z, either mark the paper or produce a blank space. The exact implementation may vary between products. This mode is intended as a programmer’s debugging aid, and is not to be used for document preparation. Display Functions Mode OFF HP2000C DJ970C DJ895C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C Esc Z # Value DJ600 DJ660C Display Functions Mode OFF - DJ610C TABLE 4. DJ890C 10.3.3 1..n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default off EFFECT Display Functions turned off This command turns Display Functions Mode OFF. If Display Function Mode is ON when Esc Z is received, the characters for the next sequence are printed, and Display Function Mode is disabled. If Display Function Mode is OFF when Esc Z is received, no operation is performed. 26 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Enable Underline HP2000C DJ970C DJ895C DJ890C DJ880C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C Esc & d # D # Value DJ600 DJ660C Enable Underline - DJ610C TABLE 5. DJ870C 10.4.1 Text Enhancements DJ850C 10.4 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default - single underline 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Single underline, fixed location below the baseline 2 4 4 4 4 4 4 4 4 4 Double underline, fixed location below the baseline 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Single underline, font dependent (“floating”) location 4 4 4 4 4 4 4 4 4 4 Double underline, font dependent (“floating”) location Default off Range 0 to 4 - (default is selected for values >4 or <0) 4 4 4 4 4 4 4 4 EFFECT Enables the automatic underline enhancement. ! This command must use a capital “D” as a terminator. Except when changing the left margin causes positive horizontal CAP movement, when underlining is enabled, each printed character or any positive horizontal motion (e.g., spaces, CAP moves) is automatically underlined. Once enabled, underline remains enabled until explicitly disabled. The default state is underline disabled. A single underline is produced if double underline is invoked but unavailable, as in the case of the DeskJet 850/870/890 Series printers. When fixed location underlining is enabled, the underline is drawn a fixed, device-dependent distance below the baseline. When floating location underlining is enabled, the greatest underline distance specified in all of the fonts printed on the current line determines where the underline is positioned. The underline distance and height is defined in the font descriptor. In the HP DeskJet implementation of “floating” underline, each font defines the thickness of the underline character and its position relative to the baseline. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 27 HP PCL Commands With HP DeskJet 500 Series printers, if underlining is enabled and changing the left margin causes a positive horizontal cursor movement, the move is underlined. With HP DeskJet 600/800/900 & HP 2000 Series printers, the move is not underlined. ! HP DeskJet 500 Series printers use a value (#) of 255 to disable underlining. HP DeskJet 600/800/900 & HP 2000 Series printers select Default for values over 4 or below 0. Disable Underline HP2000C DJ970C DJ895C DJ890C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &d@ # Value DJ600 DJ690C Disable Underline - Esc TABLE 6. DJ880C 10.4.2 n/a 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 EFFECT Underlining is OFF Disables automatic text underlining. Line Termination HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C Esc & k # G # Value DJ600 DJ660C Line Termination - DJ610C TABLE 7. DJ850C 10.4.3 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 CR = CR; LF = LF; FF = FF 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 CR = CR, LF; LF = LF; FF = FF 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 CR = CR; LF = CR, LF; FF = CR, FF 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 CR = CR, LF; LF = CR, LF; FF = CR, FF Default 0 Range 0 to 3 - Command is ignored for out of range values EFFECT This command controls how the printer interprets CR (Carriage Return), LF (Line Feed), and FF (Form Feed) control characters. For example, a value field of 1 causes the printer to execute a carriage return (CR) and linefeed (LF) for every CR received. A linefeed or formfeed is sent as is. 28 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands End-of-Line Wrap HP2000C DJ970C DJ895C DJ890C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &s#C # Value DJ600 DJ690C End-of-Line Wrap - Esc TABLE 8. DJ880C 10.4.4 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Enables End-of-Line Wrap 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Disables End-of-Line Wrap Default 1 Range 0 to 1 - Command is ignored for out of range values EFFECT Defines the action that occurs when a line of text reaches the right margin. When end-of-line wrap is enabled, a character or space that would move the CAP to the right of the right margin causes a CR-LF to be executed (prior to the printing of the character or space). When end-of-line wrap is disabled, a character or space that would move CAP to the right of the right margin is not printed, and CAP is set to the right margin. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 29 HP PCL Commands 10.5 10.5.1 Job Control Reset Esc E Performs a reset on the printer (this is NOT a hardware reset). The reset performs the following: Prints all data received before the reset. 4 4 4 4 4 “Floats” CAP. Resets all programmable features to their user default values. Deletes temporary fonts. Does not delete downloaded permanent features. Resets the color palette to black and white. Esc E has no effect on I/O and causes no disruption in host-to-peripheral communication. The printer remains on-line and no data is lost. Esc E should be the first command received at the beginning of a job (e.g., before font download) to establish default conditions; and it should be the last command at the end of a job to leave the machine in the user default state and clear any partially composed pages. Esc E “floats” CAP on the current page if no printable data has been received; otherwise it ejects the current page and “floats” CAP on the next page. CAP is floating prior to printable characters, or commands affecting CAP. (Commands affecting CAP are ASCII data, LF, CAP moves, space, etc.). Commands affecting top and left margins, line spacing, page length, and orientation can change CAP while it is floating. CAP is fixed following printable characters or commands affecting CAP. CAP is fixed to the left margin and top margin plus 3/4 VMI upon receipt of printable characters or raster graphics commands that explicitly move CAP fix it at the specified location. Commands changing the top and left margins or line spacing cannot affect a fixed CAP; page length or orientation commands eject the page, moving CAP to the top-of-form on the subsequent page. If no printable data is received, page length and orientation commands eject the page only if the device cannot move the paper back to the top of form. The intent is to not eject unnecessary blank pages. Since control panel settings can override the factory defaults, Esc E uses the control panel settings as the default values. The SPACE character is not considered a printable character with respect to CAP. 30 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Gray Balance HP2000C DJ970C DJ895C DJ890C DJ880C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C Esc * b # B # Value DJ600 DJ660C Gray Balance - DJ610C TABLE 9. DJ870C 10.6.1 Printer Control DJ850C 10.6 0 4 Set gray balance to device default (enabled or disabled) 1 4 Enable gray balancing 2 4 Disable gray balancing Default Device dependent Range 0 to 2 - Command is ignored for out of range values EFFECT Determines whether black optimization is performed to make process black (composite black—composed of color inks) appear more black. When composite black is constructed by setting all the bits in the CMY color planes, the resulting color may not be isotonic. Gray balancing removes some dots to neutralize the hue shift. Esc E resets Gray Balance to the device-dependent default. ! The default for the HP DeskJet 550C is 2 (disable gray balancing). The defaults for the HP DeskJet 540 and HP DeskJet 600 printers are Print Mode and Media Type dependent - as shown in the following table. Other HP DeskJet printers do not require gray balancing, as the gray balance function is built into the Media Type/Print Quality commands. The Gray Balance command is considered obsolete for those printers. Gray Balance Default Modes HP DeskJet 540 HP DeskJet 600 Plain Paper Special Paper Glossy/ Trans. Plain Paper Special Paper Glossy/Trans. EconoFast (disabled) (disabled) (disabled) (disabled) (disabled) (disabled) Normal (enabled) (enabled) (enabled) (enabled) (enabled) (disabled) Best (enabled) (enabled) (enabled) (enabled) (enabled) (disabled) Print Mode HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 31 HP PCL Commands Dry Timer HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &b#T # Value DJ600 DJ690C Dry Timer - Esc TABLE 10. DJ850C 10.6.2 0 4 Dry Timer is off 1..1200 4 Dry timer is on - time set for specified number of seconds Default 0 Range 0 to 1200 - Command is ignored for out of range values EFFECT Sets a minimum dry time between pages to ensure that a previous page dries before the next page is dropped on top of it. The time required for ink to dry depends on media, print modes, and environment (temperature and humidity). For example, transparencies may need over 10 minutes in an unheated, damp environment. Esc E resets the dry timer to the default value of 0. ! The Dry Timer function has been incorporated into the Media Type/Print Quality command combination. The parameters specified for those commands determine the Dry Timer setting. Although some HP DeskJet 600/800/900 & HP 2000 Series printers will respond to this command, the command is considered obsolete. Dependence on the command should be removed from your application. The HP DeskJet 600/800/900 & HP 2000 Series printers use the following values as Dry Timer defaults when Media Type and Print Quality commands are used: Dry Timer Defaults EconoFast Mode Media Type Plain Paper 32 Normal Mode Best Mode Black Color Black Color Black Color 0 sec. 0 sec. 15 sec. 15 sec. 25 sec. 15 sec. Special Paper 0 sec. 0 sec. 15 sec. 15 sec. 25 sec. 15 sec. Transparency 60 sec. 120 sec. 180 sec. 360 sec. 240 sec. 360 sec. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Print Quality HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ810C DJ695C DJ690C DJ680C DJ670C Esc * o # m/M # Value DJ600 DJ660C Print Quality - DJ610C TABLE 11. DJ830C 10.6.3 -1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 EconoFast mode selected 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Normal quality selected 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Best quality selected Default 0 Range -1 to 1 - Command is ignored for out of range values EFFECT The Print Quality (PQ) command, in conjunction with the Media Type (Esc & l # M) command, provides a high-level print mode specifier and replaces the need for the following commands: 4 4 4 4 Font Quality (Primary) Esc ( s # Q Font Quality (Secondary) Esc ) s # Q Raster Graphics Quality Esc * r # Q Mechanical Print Quality (shingling) Esc * o # Q This command closes and prints the current page, and moves CAP to the top of form at the left margin on the next physical page. ! After receiving the Print Quality command, HP DeskJet 600/800/900 & HP 2000 Series printers ignore Font Quality (Primary), Font Quality (Secondary), Raster Graphics Quality, and Mechanical Print Quality commands until a Reset command or an equivalent device reset occurs. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 33 HP PCL Commands Media Type HP2000C DJ970C DJ895C DJ890C DJ880C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &l#M # Value DJ600 DJ690C Media Type - Esc TABLE 12. DJ870C 10.6.4 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Plain paper 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Bond paper 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Special paper (HP Premium Inkjet Paper) 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Glossy film/Photo media 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Transparency film 5 4 Quick Dry Glossy 6 4 Quick Dry Transparency Default 0 Range 0 to 4 - Command is ignored for out of range values EFFECT Sets the print mode required for printing on various media types. If no printable data has been sent, CAP moves to the top of form at the left margin of the current page. If printable data has been sent, the page is printed and CAP moves to the top of form at the left margin of the next physical page. For HP DeskJet 600/800/900 & HP 2000 Series printers, the specified media type will affect output resolution, depletion, shingling, gray balancing, and dry time. ! Unit of Measure HP2000C DJ970C DJ895C DJ890C DJ880C Esc & u # D DJ870C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C DJ660C DJ610C # Value Unit of Measure - DJ600 TABLE 13. DJ850C 10.6.5 EFFECT 300 4 4 4 4 300 units per inch 600 4 4 4 4 600 units per inch Default Device dependent Range 300,600 - command is ignored for all other values 34 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands The value field establishes the number of units per inch used in the following commands. These commands formerly used a device’s dot-per-inch resolution as the unit of measure. Printers that do not support this command still use dots as their unit of measure for these commands. 4 4 4 4 Move CAP Vertical (PCL Units) - Esc * p # Y Move CAP Horizontal (PCL Units) - Esc * p # X Vertical Rectangle Size (PCL Units) - Esc * c # B Horizontal Rectangle Size (PCL Units) - Esc * c # A In addition, since the current unit of measure setting affects how CAP movement values are rounded, it also affects the result of the following commands: 4 4 4 4 Move CAP Horizontal (Columns) - Esc & a # C Horizontal Tab -Space - Backspace - This command affects only the start of characters and PCL Unit commands. This may cause character spacing to be different on a 600 dpi printer vs. a 300 dpi printer, or on a 300 dpi printer that supports this command vs. a 300 dpi printer that does not. To get the same character placement on both printer, the unit of measure should be set to 300 and HMI command (Esc & k # H) should be sent after font selection has occurred. This command does not affect binary raster data (bitmap fonts, raster graphics, patterns). A control panel reset or Esc E defaults the measuring unit. Since the unit of measure is part of the user environment, it is saved and restored whenever a macro is called or an overlay invoked, but is defaulted when the user environment is established for an overlay. Bitmap and scalable fonts must retain their initial metric information. Conversion to the current selected unit must use the original units to avoid cumulative errors due to successive rounding. Out-of-range values are mapped to the supported value with the minimum relative error. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 35 HP PCL Commands 10.7 10.7.1 Printer Diagnostics Self-Test Esc z Initiates printer self-test, which instructs the printer to perform the following actions: 4 Process all data preceding the self-test. 4 Perform Esc E reset (ejecting the page if printable data has been sent). Permanent downloaded fonts are not deleted. 4 4 4 4 Move CAP to the top of form, if not already there. Perform the self-test. After self-test, move to the top of form, if not already there. Resume execution of the user data without data loss (programmable features need not be saved). This should be as complete a self-test as the product is capable of performing. If no error is detected, the printer will remain on-line. If an error is detected, the printer will go to the off-line state. In general, this command should not be used in an application. It is intended as a diagnostic tool for developers and support staff. The HP DeskJet 600/800/900 & HP 2000 Series printers provide several diagnostic print outs that are user-accessible via the printer front panel. 36 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands 10.8 Page Control The following commands facilitate the definition of a print job page. Page Length HP2000C DJ970C DJ895C DJ890C DJ880C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &l#P # Value DJ600 DJ690C Page Length - Esc TABLE 14. DJ870C 10.8.1 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Page length set to 66 lines 1 .. n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Page length is set, in number of lines, at the current lpi Default 0 (66 lines per page) Range 1 to maximum supported paper size - Command is ignored for out of range values EFFECT Designates the number of lines on the logical page at the current VMI (Vertical Motion Index) setting. This command performs the following actions: 4 4 4 4 Prints any unprinted pages. Ejects the current page if printable data has been received (FF-CR). Sets text length, top margin, left margin, and right margin to user defaults. Moves CAP to the left edge of the logical page at the top of form. The printer may select a different page size for the same line count, since lines are defined by the current VMI. This command is ignored if VMI is 0. For comparison purposes, the following table lists the page length line values associated with some standard paper sizes. To calculate the number of lines per page, multiply lines per inch (lpi) times the length of the physical page. For example, US Letter size paper is 11 inches; therefore, 6 x 11 = 66. Page Length Line Values Paper Size 6 lpi 8 lpi Letter 66 88 Legal 84 112 A4 70 93 Executive 63 84 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 37 HP PCL Commands HP DeskJet maximum page length is 14 inches for the HP DeskJet 600/800/900 & HP 2000 Series printers. This command must be sent at the beginning of a page prior to any printable data; otherwise, when the command is sent, the current page is closed and printed. ! Page Size HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &l#A # Value DJ600 DJ690C Page Size - Esc TABLE 15. DJ850C 10.8.2 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default Regionally dependent (US Letter for printers sold in North America) Range limited to values specified in tables below - Command is ignored for out of range values EFFECT Page size set to that indicated by value index in the following tables Designates the size of the media to be used. This command performs the following actions: 4 4 4 4 4 38 Prints any unprinted pages. Ejects the current page if printable data has been received (FF-CR). Sets text length, top margin, left margin, and right margin to user defaults. Moves CAP to the left edge of the logical page at the top margin. Disables the automatic macro overlay. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Since the logical page is defined to extend from the top and bottom edges of the physical page, this command also sets logical page length. TABLE 16. Selectable Sheet Media Sizes for HP DeskJet 600/800/900 & HP 2000 Series printers Value Page Description Page Size 1 US Executive 7.25” x 10.5” 2 US Letter 8.5” x 11” 3 US Legal 8.5” x 14” 25 ISO and JIS A5 148.5 mm x 210 mm 26 ISO and JIS A4 210 mm x 297 mm 45 JIS B5 182 mm x 257 mm 101 Custom 5.00” x 5.83”” through 8.5” x 14 (127 mm x 148 mm-216mm x 356mm) TABLE 17. Selectable Card Sizes Value Card Description Card Size 71 Japanese Hagaki Postcard 100 mm x 148 mm 72 Japanese Oufuku-Hagaki Postcards 148 mm x 200 mm 73 ISO and JIS A6 Card 105 mm x 148 mm 74 US Index Card 4” x 6” 75 US Index Card 5” x 8” 78 3x5 Index Card 3” x 5” (HP 2000C Only) TABLE 18. ! Selectable Envelope Sizes Value Envelope Description Envelope Size -81 U.S. Commercial #10 (portrait) 41/8” x 91/2” 81 U.S. Commercial-10 (landscape) 41/8” x 91/2” 90 International DL 110 mm x 220 mm 92 International C6 114 mm x 162 mm 109 U.S. A2 4 3/8” x 5 3/4” 112 Japanese Envelope #2 111.1 mm x 146 mm (HP 2000C Only) Unsigned or positive values specify that the short paper axis is aligned with printer’s paper axis; negative values specify that the long paper axis is aligned with the printer’s paper axis. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 39 HP PCL Commands With HP DeskJet 600/800/900 & HP 2000 Series printers, all envelopes load in landscape (short edge first). Before the HP DeskJet 550C Series printer, envelopes loaded in portrait. Envelope printing orientation defaults to portrait, except for Commercial 10 (value = 81), which defaults to landscape. Value = -81 prints Commercial 10 envelopes in portrait orientation. To minimize the unprintable region on custom size media for the HP DeskJet 600/800/900 & HP 2000 Series printers, t, the application should send the length of the custom page using the Page Length (Esc & l # P) command. Media Source 4 4 4 4 -1 4 4 HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C Esc & l # H DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C DJ660C DJ610C # Value Media Source - DJ600 TABLE 19. DJ850C 10.8.3 4 4 EFFECT Load z-fold media (banners) 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Print current page (source is unchanged) 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Load from tray 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Envelope feed Default 0 Range -1, 0, 1, 3 - Command defaults for out of range values Selects the media source. This command prints the current page and moves CAP to top of form at the left margin on the next physical page. The command remains effective until another tray is selected. 40 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Orientation HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ810C DJ695C DJ690C DJ680C DJ670C Esc & l # O # Value DJ600 DJ660C Orientation - DJ610C TABLE 20. DJ830C 10.8.4 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Portrait 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Landscape 2 EFFECT Reverse Portrait 4 4 3 Default 0 Range 0 to 3 - Command is ignored for out of range values 4 Reverse Landscape Defines the position of the logical page and the default direction of text printing with respect to the physical page. If the printer has received printable data, an orientation change ejects the current page and opens another page in the new orientation. Since this command ejects the page, it cannot be used to change text orientation within a page. The command is ignored if the new orientation and the current orientation are the same. This command does not affect graphics. This command has the following effects: 4 Prints all data received before the command. 4 Executes a formfeed and carriage return. 4 Sets the following to their user defaults: - logical page - print direction - page length - text length - top margin, left margin, right margin - HMI and VMI This command should be sent at the beginning of a page because it ejects a page containing printable data. Since this command defaults the above features, it should be followed by commands that set any desired non-default values. This command affects only text orientation - not raster graphics orientation. For example, if orientation is changed from portrait to landscape, graphics will continue to print in portrait. This can result in clipping if CAP is not positioned to take this into account. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 41 HP PCL Commands Horizontal Motion Index HP2000C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &k#H # Value DJ600 DJ690C Horizontal Motion Index (HMI) - Esc TABLE 21. DJ970C 10.8.5 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default Determined by the pitch or height (x 112%) value in the default font descriptor Range 0 to 126.99 - Command is ignored for out of range values EFFECT Number of 1/120 inch increments Designates the width of columns used for horizontal movement calculations. In the vertical text path direction, designates the height of rows used for inter-character movement calculations. HMI defaults to the invoked font’s space character when any of the font’s characteristics (orientation, character set, pitch, etc.) are changed, when switching between primary and secondary fonts with and . For fixed pitch fonts, HMI affects all printable characters, including the space and backspace characters. For proportionally spaced fonts, HMI may affect only the space character: if the space character glyph exists, CAP moves the width of the space character; otherwise CAP moves according to the HMI. For multiple fixed-pitch fonts, the HMI directly affects the nominal (full width) space of the font. Other spacings are scaled linearly according to the current HMI value, i.e., the character widths are multiplied by the ratio of the HMI to the nominal width. In the vertical text path direction mode, the HMI defaults to the height (x 112%) of the font. In fixed-pitched or multiple-fixed-pitched fonts, the HMI takes on the height (x 112%) of the fixedpitch font. For proportionally-spaced fonts, the HMI may affect only the space character. If the space character glyph exists, CAP moves the height (x 112%) of the space character. Otherwise the CAP moves according to the HMI. 42 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Vertical Motion Index HP2000C DJ970C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &l#C # Value DJ600 DJ690C Vertical Motion Index (VMI) - Esc TABLE 22. DJ895C 10.8.6 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default 8 Range 0 to Current logical page length up to 32767 - Command is ignored for out of range values EFFECT Number of 1/48 inch increments between rows Sets the vertical spacing between lines of print (the vertical distance CAP will move for a linefeed in horizontal text path mode and the horizontal distance the CAP will move for a linefeed in the vertical text path mode. This command performs the same functions as Line Spacing (Esc & l # D), except the measurement interval is in 1/48-inch increments instead of lines per inch (lpi). Both commands set linefeed spacing. To convert lpi to VMI: VMI = 48.0/ lpi If the Page Length (Esc & l # P) command follows an VMI change, physical page size is recalculated. Depending on the VMI modification, the printer may request a different page size. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 43 HP PCL Commands Line Spacing HP2000C DJ970C DJ895C DJ890C DJ880C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &l#D # Value DJ600 DJ690C Line Spacing - Esc TABLE 23. DJ870C 10.8.7 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default 6 Range 0 to Current logical page length up to 32767 - Command is ignored for out of range values EFFECT Sets the number of lines printed per inch This command performs the same functions as VMI (Esc & l # C), except it identifies the VMI in lines per inch (lpi). Both commands set linefeed spacing. To convert VMI to lpi: lpi = 48.0/ VMI In HP DeskJet printers, a value of 0 sets line spacing to 12 lpi. ! Clear Horizontal Margins HP2000C DJ970C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C 9 # Value DJ600 DJ690C Clear Horizontal Margins - Esc TABLE 24. DJ895C 10.8.8 n/a 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 EFFECT Default left and right margins Resets the left and right margins to their default positions. CAP is unchanged. Left Margin = left bound of the logical page (column 0) Right Margin = right bound of the logical page. ! 44 This command is considered to be obsolete, and is listed for backward compatibility only. Do not use this command in new code, as subsequent HP DeskJet printers may not support the command. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Left Margin HP2000C DJ970C DJ895C DJ890C DJ880C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &a#L # Value DJ600 DJ690C Left Margin - Esc TABLE 25. DJ870C 10.8.9 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default 0 Range 0 to right bound of logical page - Command is ignored for out of range values EFFECT Sets the left margin to the left edge of the specified column If CAP is to the left of the new left margin, it moves to the new left margin; otherwise, this command does not affect CAP. Attempts to set the left margin to the right of the right margin should be ignored; however, left and right margins can be set at the same location. Column 0 is the first column on the left edge of the logical page, not the physical page. ! Right Margin HP2000C DJ970C DJ895C DJ890C DJ880C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &a#M # Value DJ600 DJ690C Right Margin - Esc TABLE 26. DJ870C 10.8.10 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default Logical page right bound Range Current left margin to logical page left bound - Command is ignored for out of range values EFFECT Sets the right margin to the right edge of the specified column This command is ignored for columns to the left of the left margin. Specifying a column beyond the right logical page limit sets the right margin to the right logical page limit. If CAP is to the right of the new right margin, CAP is moved to the new right margin; otherwise this command does not affect CAP. Characters whose cells overlap with the right margin are not printed unless end-of-line wrap is enabled: then the character prints at the left margin on the next line. Attempts to set the right HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 45 HP PCL Commands margin to the left of the left margin should be ignored; however, left and right margins can be set to the same location. Top Margin HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ810C DJ695C DJ690C DJ680C DJ670C Esc & l # E # Value DJ600 DJ660C Top Margin - DJ610C TABLE 27. DJ830C 10.8.11 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default 0.5 inch Range 0 to logical page length - Command is ignored for out of range values EFFECT Top margin is set to specified number of lines at the current lines-per-inch setting Specifies the distance between the top of the logical page and the top of the text area. The top margin is specified in lines whose spacing is determined by the current line spacing. This command is ignored if the current line spacing is 0, or if a value beyond the current logical page length is received. CAP is not moved if it is below the new top margin. If CAP is above the new top margin, CAP is placed at the baseline of the first row of characters. This position, called top of form, is calculated as follows: top of form = top margin in inches + (.75 x VMI in inches) The first line of the logical page is always line 0. The vertical position of the first line of print on the logical page is at top of form as defined above. The top margin represents a physical position: once the top margin is set, it is unaffected by subsequent changes in line spacing. ! Since this command defaults text length, it should precede the Text Length (Esc & l # F) command. HP DeskJet printers default to 1/2” with perforation skip mode on, and 0” with perforation skip mode off. 46 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Text Length HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ810C DJ695C DJ690C DJ680C DJ670C Esc & l # F # Value DJ600 DJ660C Text Length - DJ610C TABLE 28. DJ830C 10.8.12 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default Logical page length - top margin - 1/2 incha Range Current left margin to logical page left bound - Command is ignored for out of range values EFFECT Sets length of the text area, in lines, from the top margin a. If the calculation is negative, text length defaults to (logical page length - top margin) This command is ignored if current VMI is 0 or a text length greater than [logical page length top margin] is requested. A value field of 0 defaults text length. Text length determines the bottom margin when perforation skip is enabled. Text length is ignored when perforation skip is disabled. Perforation Skip Mode HP2000C DJ970C DJ895C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &l#L # Value DJ600 DJ690C Perforation Skip Mode - Esc TABLE 29. DJ890C 10.8.13 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Disables perforation skip mode 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Enables perforation skip mode Default 1 Range 0, 1 - Command is ignored for other values EFFECT Controls perforation skip mode. The perforation region extends from the bottom of the text area to the top margin of the next page. Text Length (Esc & l # F) determines the size of the perforation skip region (and, indirectly, the bottom margin). If perforation skip is enabled, text length sets the bottom margin. Printing ends at the specified text length, and then starts again at the top margin of the next page. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 47 HP PCL Commands If perforation skip is disabled, text is printed to the end of the page and onto the next page. Text length and top margin are ignored. Text in the unprintable region may be lost. ! 48 Disabling perforation skip may cause text outside of the printable area to be lost. To prevent this, perforation skip should be enabled. Changing perforation skip mode defaults top margin and text length. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands 10.9 Horizontal Positioning Commands The following commands provide for cursor movement on the horizontal axis. 10.9.1 Backspace Moves CAP one character position backwards on the current line. For horizontal text path direction, no action occurs if CAP is already at the left margin. If the CAP is to the left of the left margin (via one of the Move CAP commands), functions as if the left margin were column 0, the logical page left boundary. For vertical text path direction, no action occurs if CAP is already at the top margin. If CAP is above the top margin (via one of the Move CAP commands), BS functions as if the top margin were row 0, the logical page top boundary. In proportional spacing, a single centers the overstriking character with the character being over-struck. After printing the overstrike character, CAP is at the same position as before the . Multiple backspaces each move back the distance of the last printable character or space. ! 10.9.2 HP DeskJet 600/800/900 & HP 2000 Series printers backspace using only the last proportional character width. The resulting cursor relocation is therefore not a fixed constant. Carriage Return Moves CAP to the left margin on the current row. 10.9.3 Space Moves CAP forward one character position (defined by HMI) on the current line. CAP does not move if it is already at the right margin and end-of-line wrap is not enabled. If end-of-line wrap is enabled, CAP moves to the left margin of the next row and then prints the space. 10.9.4 Linefeed HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 49 HP PCL Commands Moves CAP to the same horizontal position, one row down. If perforation skip mode is enabled, a linefeed that would go beyond the text length boundary moves CAP to the same horizontal position at the top of form on the next page. If perforation skip mode is disabled, text is printed to the end of the page and onto the next page. Text in the unprintable region may be lost. 10.9.5 Formfeed Formfeed advances CAP to the same horizontal position at the top of the form on the next page. Top of Form is at the vertical position computed by top of form = top margin + (3/4 x line spacing) ! 10.9.6 Multiple formfeeds in sequence are not interpreted as a single formfeed. Horizontal Tab Horizontal Tab moves CAP to the next tab stop on the current line. The first tab stop is at the left margin; additional tab stops are fixed at every 8 columns to the right margin. Tabs represent a logical position and, thus, refer to different physical positions for different settings of HMI. The following are some boundary cases: 4 If the requested tab stop is outside the right margin and CAP is at or to the left of the right margin, HT moves CAP to the right margin. 4 If the requested tab stop is outside the printable area and CAP is to the right of the right margin, HT moves CAP to the edge of the printable area. 4 If CAP is to the left of the left margin, HT moves CAP to the left margin. Tabs do not cause lines to be wrapped if end-of-line-wrap mode is enabled. HMI determines current column width. If HMI is changed, the physical location of each tab stop moves. HT has no effect if the HMI is 0. 50 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Move CAP Horizontal (Decipoints) DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &a#H # Value DJ600 DJ690C Move CAP Horizontal (Decipoints) - Esc TABLE 30. HP2000C 10.9.7 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range -32767 to +32767 (up to logical page right and left limits, rounded to the nearest HP PCL unit or decimal point) - Command is ignored for out of range values EFFECT Moves CAP horizontally by the specified number of decipoints (1/720 inch) A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP right or left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP moves an absolute distance from the logical page left edge. This command ignores margins and can move CAP anywhere horizontally within the logical page. Attempts to go outside the logical page will move CAP to the appropriate logical page limit. Devices not having an integral number of decipoints-to-dots should implement fractional decipoints for dot addressing. ! HP DeskJet 600/800/900 & HP 2000 Series printers use 2 fractional digits and truncate to 1/3600-inch units. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 51 HP PCL Commands Move CAP Horizontal (Columns) HP2000C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &a#C # Value DJ600 DJ690C Move CAP Horizontal (Columns) - Esc TABLE 31. DJ970C 10.9.8 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range -32767 to +32767 (up to logical page right and left limits, rounded to the nearest HP PCL unit) - Command is ignored for out of range values EFFECT Moves CAP horizontally by the specified number of columns A signed value field indicates relative movement: plus (+)or minus (-) signs move CAP right or left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP moves an absolute distance from the logical page left edge (column 0). This command ignores margins and can move CAP horizontally anywhere within the logical page. Attempts to go outside the logical page will move CAP to the appropriate logical page limit. HP DeskJet 600/800/900 & HP 2000 Series printers use 2 fractional digits and truncate to 1/3600-inch units. ! Move CAP Horizontal (HP PCL Units) DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C *p#X # Value DJ600 DJ690C Move CAP Horizontal (HP PCL Units) - Esc TABLE 32. HP2000C 10.9.9 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range -32767 to +32767 (up to logical page right and left limits, rounded to the nearest HP PCL unit) - Command is ignored for out of range values EFFECT Moves CAP horizontally by the specified number of HP PCL units A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP right or left relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP moves an absolute distance from the logical page left edge. 52 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands This command ignores margins and can move CAP horizontally anywhere within the logical page. Attempts to go outside the logical page will move CAP to the appropriate logical page limit. HP DeskJet printers prior to the HP DeskJet 600 Series printers use 1/300”. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 53 HP PCL Commands 10.10 Vertical Positioning Commands The following commands provide cursor positioning on the vertical axis. Move CAP Vertical (Rows) HP2000C DJ970C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C &a#R # Value DJ600 DJ690C Move CAP Vertical (Rows) - Esc TABLE 33. DJ895C 10.10.1 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range -32767 to +32767 - Command is ignored for out of range values EFFECT Moves CAP to the same column position on a new line based on the active line spacing A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP downward and upward relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP moves from the top of the logical page, an absolute distance computed by: Distance from top of logical page = top margin + (3/4 x VMI/48.0) + (value VMI)/48.0 Except for the following, the effect of this command is limited to the logical page: 4 Positive relative positioning allows movement to the next logical page. 4 Negative relative positioning allows movement above the top of form, up to the limit of the logical page or the top of the physical page. After power on or reset, CAP moves to the top of form, if not already there. 54 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Move CAP Vertical (Decipoints) HP2000C DJ970C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C Esc & a # V # Value DJ600 DJ660C Move CAP Vertical (Decipoints) - DJ610C TABLE 34. DJ895C 10.10.2 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range -32767 to +32767 - Command is ignored for out of range values EFFECT Moves CAP to a new position along the vertical axis If no such position exists, moves CAP to the logical page limit. A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP downward and upward relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP moves an absolute distance from the top margin. Except for the following, the effect of this command is limited to the logical page: 4 Positive relative positioning allows movement to the next logical page. 4 Negative relative positioning allows movement above the top of form, up to the limit of the logical page or the top of the physical page. After power on or reset, CAP moves to the top of form, if not already there. Devices not having an integral number of decipoints-to-dots should implement fractional decipoints for dot addressing. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 55 HP PCL Commands Move CAP Vertical (HP PCL Units) DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C *p#Y # Value DJ600 DJ690C Move CAP Vertical (HP PCL Units) - Esc TABLE 35. HP2000C 10.10.3 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range -32767 to +32767 - Command is ignored for out of range values EFFECT Moves CAP specified number of HP PCL units along the Y axis If no such position exists, the printer moves to the logical page limit. A signed value field indicates relative movement: plus (+) or minus (-) signs move CAP downward and upward relative to CAP, respectively. The absence of a sign indicates absolute movement: CAP moves an absolute distance from the top margin. The current size, in units-per-inch, of a HP PCL Unit is specified by the Units of Measure (Esc & u # D) command. Otherwise, the unit-per-inch for HP PCL movement defaults to 1/300 inch. Except for the following, the effect of this command is limited to the logical page: 4 Positive relative positioning allows movement to the next logical page. 4 Negative relative positioning allows movement above the top of form, up to the limit of the logical page or the top of the physical page. After power on or reset, CAP moves to the top of form, if not already there. HP DeskJet 600/800/900 & HP 2000 Series printers use 1/300”. 56 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands 10.11 10.11.1 Font Selection Font Selection by Attribute The user requests a font by designating its attributes with the following commands. For the HP DeskJet 600 Series printers, successful selection requires the selected font is either one of the built-in bitmap fonts or a soft font that has been downloaded to the printer. For the HP DeskJet 850, 870, 890 Series printers, successful selection only requires that the typeface specified is one of those included in the printer’s firmware; any specified point size will be generated by the printer’s font scaling technology. 10.11.2 Font Symbol Set Esc ( ID Font Symbol Set (Secondary) - Esc ) ID 4 HP2000C DJ970C DJ895C n/a DJ890C Range 4 4 DJ880C 10U - (PC-8, Code Page 437) DJ870C Default DJ850C 4 4 4 4 4 4 4 DJ830C ID DJ810C DJ695C DJ690C DJ680C DJ670C # Value DJ600 DJ660C Font Symbol Set (Primary) - DJ610C TABLE 36. EFFECT Symbol set identification value from the table Identifies the set of symbols in a font, consists of a decimal value and a letter value. The ID (identification number) consists of a number portion and a letter portion. For example, to specify ASCII (0U) as the symbol set for the primary font, send Esc(0U. Some of the possible values for the identification number (ID) are listed on the symbol set tables on the following pages. The legal range of the number portion of ID is 0 to 2047. The legal range of the letter portion of ID is the upper-case ASCII characters “A” through “Z”, except for “X”. Symbol sets with IDs of “X” can only be selected with the Font ID. “Q” is used with HP “Specials” symbol sets and not recommended for general use. “Y” is used for barcode symbol sets. PC-8, Code Page 437 (10U) is the default primary and secondary symbol set; but a userdefault may be selected. PC-8 is selected if the specified symbol set does not exist or cannot be satisfied by any font. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 57 HP PCL Commands The following table lists printer-supported symbol sets and symbol set IDs for the HP DeskJet 600/800/900 & HP 2000 Series printers. 58 ID Symbol Set Name ID Symbol Set Name 0A Math-7 (same as 0M) 1G ISO 21: German 0B Line Draw-7 (same as 0L) 8G Greek-8 0C HP Large Characters (264x) 9G Windows 3.1 Latin/Greek 0D ISO 60: Danish/Norwegian 10G PC-851 Latin/Greek 1D ISO 61: Norwegian Version 2 12G PC-8 Latin/Greek 2D Devanagari 0H Hebrew-7 0E Roman Extension 7H ISO 8859/8 Latin/Hebrew 1E IS04: United Kingdom 8H Hebrew-8 9E Windows 3.1 Latin 2 15H PC-862 Latin/Hebrew 0F ISO 25: French (obsolete) 0I ISO 15: Italian 1F ISO 69: French 6J Microsoft Publishing 0G HP German 7J DeskTop 8J Document 36L Pi Set #6 9J PC-1004 0M Math-7 10J PS Text 1M Tech-7 11J PS ISO Latin 1 5M PS Math 12J MC Text 6M Ventura Math 13J Ventura International 8M Math-8 14J Ventura US 10M Universal Greek & Math Pi 16J Swash Characters 11M TEX Math Extension 17J Small Caps and Old Style Figures 12M TEXMath Symbol 18J Old Style Figures 13M TEX Math Italic 19J Fractions 19M Symbol 21J Lining Figures 0N ISO 8859/1 Latin 1 22J Small Caps and Lining Figures 2N ISO 8859/2 Latin 2 23J Alternate Caps 3N ISO 8859/3 Latin 3 0K ISO 14: JIS ASCII 4N ISO 8859/4 Latin4 lK ISO 13: Katakana 5N ISO 885919 Latin 5 2K ISO 57: Chinese 6N ISO8859/10 Latin 6 8K Kana-8 10N ISO 885915 Latin/Cyrillic 9K Korean-8 0O OCR-A 50K JIS Kanji-l 1O OCR-B 51K JIS Kanji-2 2O OCR-M 0L Line Draw-7 10O MICR 1L HP Block Characters OP Typewriter Paired APL 2L Tax Line Draw 1P Bit Paired APL 8L LineDraw-8 10P Expert 9L Ventura ITC Zapf Dingbats 11P Alternate 10L PS ITC Zapf Dingbats 12P Fraktur HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands ID Symbol Set Name ID Symbol Set Name 11L ITC Zapf Dingbats Series 100 0R Cyrillic ASCII (8859/5-1986) 12L ITC Zapf Dingbats Series 200 1R Cyrillic 13L ITC Zapf Dingbats Series 300 3R PC Cyrillic (CP 866) 20L Carta 9R Windows 3.1 Latin/Cyrillic 21L Ornaments 0S ISO 11: Swedish 22L Universal News & Commercial Pi 1S HP Spanish 23L Chess 2S ISO 17: Spanish 24L Astrology 1 3S ISO 10 Swedish 31L Pi Set #l 4S ISO 16: Portuguese 32L Pi Set #2 5S ISO 84: Portuguese 33L Pi Set #3 6S ISO 85: Spanish 34L Pi Set #4 7S HP European Spanish 579L Wingdings 8S HP Latin Spanish 35L Pi Set #5 16S HP-GL Download 17S HP-GL Drafting 16U PC-857 Turkish 18S HP-GL Special Symbols 17U PC-852, Latin 2 20S Sonata 19U Windows 3.1 Latin I 0T Thai-8 20U PC-860 Portugal 5T Windows 3.1 Latin 5 21U PC-861 Iceland 8T Turkish-8 23U PC-863 Canada French 9T PC-8T, Turkish 25U PC-865 Norway 10T Teletex 26U PC-775 Baltic 19T TIS (TAPCI23) 27U PC Latvian/Russian 0U ISO 6: ASCII 28U PC Lithuanian/Russian 1U Legal 29U PC Lithuanian/Russian (CP 772) 2U ISO 2: Int’l Reference Version 10V Code Page 864 Latin/Arabic 5U HPL 8V HP Arabic-8 7U OEM-1 0Y 3 of 9 Barcode 8U Roman-8 1Y Industrial 2 of 5 Barcode 9U Windows 3.0 Latin 1 2Y Matrix 20f5 Barcode 10U PC-8, Code Page 437 4Y Interleaved 2 of 5 Barcode 11U PC-8 D/N, Danish/Norwegian 5Y CODABARBarcode 12U PC-850, Multilingual 6Y MSI/Plessey Barcode 15U Pi Font 7Y Code 11 Barcode 8Y UPC/EAN Barcode 15Y USPS ZIP HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 59 HP PCL Commands 10.11.3 Font Spacing HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ680C DJ670C DJ660C DJ610C # Value DJ600 DJ695C (s#P Font Spacing (Secondary) - Esc ) s # P DJ690C Font Spacing (Primary) - Esc TABLE 37. 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Fixed spacing 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Proportional spacing Default 0 Range 0, 1 - Command is ignored for other values EFFECT Designates inter-character spacing as either proportional or fixed. If proportional spacing is specified and no proportional font is available in the requested symbol set, a fixed spacing font with the current pitch specification is chosen, if available. If fixed spacing is requested but no fixed-pitch font is available, a proportional font is chosen, if available. For fixed-space bitmap fonts, both pitch and height are used for selection of font character size. For fixed-space scalable fonts, only pitch is used. For proportional bitmap and scalable fonts, only height is used. 10.11.4 Font Pitch Esc ( s # H Font Pitch (Secondary) - Esc ) s # H HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C # Value DJ600 DJ660C Font Pitch (Primary) - DJ610C TABLE 38. n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default 10 cpi Range > 0.0 - valid to 2 decimal places - Command is ignored for out of range values EFFECT Inter character spacing for current font is set Designates the horizontal spacing of a fixed-space or dual-fixed space (bitmap or scalable) font in characters per inch (cpi). 60 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands If the exact pitch is unavailable, the next larger pitch is selected. If a larger pitch is unavailable, the closest smaller pitch is selected. Pitch is ignored when selecting proportional fonts, but saved in the font select table and available when a fixed space font is selected. For fixed space bitmap fonts, both pitch and height are used for font selection. For fixed space scalable fonts, only pitch is used. For proportional scalable fonts, only height is used. For dualfixed space fonts, only the pitch is used. For scalable fonts, pitch is converted to a corresponding point size (height), which is scaled by the printer. Effective pitch ranges are thus limited by height constraints. 10.11.5 Font Height Esc ( s # V Font Height (Secondary) - Esc ) s # V HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C # Value DJ600 DJ660C Font Height (Primary) - DJ610C TABLE 39. n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default 12 points Range > 0.0 - valid to 2 decimal places - Command is ignored for out of range values. EFFECT Height for current font is set Specifies font height in points (1/72 inch). If the requested height is unavailable, the closest heights are chosen for the next selection criteria. The closest value is in terms of absolute difference: e.g., if 6, 8, and 12 point fonts are available and 10 is requested, both 8 and 12 point fonts are considered. Fractional values may be specified when requesting height. All bitmap fonts within 0.25 points of the requested height are considered. If a 12 point font is requested, fonts between 11.75 and 12.25 are considered. Or, to put it another way, if 6, 8, and 11.75 point fonts are available and 10 is requested, both the 8 and 11.75 fonts are considered. Height is ignored when selecting a fixed space scalable font; but the value is saved in the font select table and available when a proportional font is selected. If no font within .25 points is available, HP DeskJet selects the next smaller height. If no smaller height is available, the next larger height is selected. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 61 HP PCL Commands 10.11.6 Font Style Esc ( s # S Font Style (Secondary) - Esc ) s # S HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C # Value DJ600 DJ660C Font Style (Primary) - DJ610C TABLE 40. n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default 0 Range 0 to 32767 - values exceeding range are ignored EFFECT Specified characteristics are applied to font style request Identifies the posture, width, and structure of the font symbols. The partial sums for posture, width, and structure are added together to determine the desired value (#). The composition of the style word is shown below. Style Word = Posture + (4 x Width) + (32 x Structure) 15 14 X 9 reserved Value (#) = Posture 0 Upright 1 Italic 2 Alternate Italic 3 Reserved Value (#) = 62 10 5 structure 4 2 width 1 0 posture Width 0 Normal 1 Condensed 2 Compressed or extra condensed 3 Extra compressed 4 Ultra compressed 5 Reserved 6 Extended or expanded 7 Extra extended or extra expanded HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Value (#) = Structure (style word partial sum multiplied by 32) 0 Solid 1 Outline 2 In-line 3 Contour, Edge effects 4 Solid with shadow 5 Outline with shadow 6 In-line with shadow 7 Contour with shadow 8 Patterned (complex patterns, subjective to typeface) 12-15 Patterned with shadow 16 Inverse 17 Inverse in open border 18-30 31 Reserved Unknown structure Default = 0 Range = 0 to 32767 (values greater than 32767 are clamped) MATCHING ALGORITHM The following procedure matches requested styles with available styles: 4 Printers recognizing only style values 0, l, and 2 discard requests for larger values. 4 Printers recognizing style values from 0 to 255 convert requests for larger values to 255. The request is discarded if an exact match is not found after conversion. 4 An exact match is required for style selection. If the requested value is within the range of the printer and a match is not made, the request is ignored, but saved in the font select table, available for the next selection. Whenever a requested font parameter is ignored, the parameter is retained in the font select table for future font selections; and the current font selection process continues as if the parameter had never been requested. In some HP PCL machines, the style word may be an operator: slanting, condensing, expanding, outlining, and shadowing operations are all theoretically possible. For example, if italic is unavailable, slant may be added to the upright face. No new command sequence is required to support such operations. EXAMPLE: Assume that a font style of “italic compressed contour” is desired. The value(#) would be computed as follows: 1 + (2 x 4) + (3 x 32) = 105 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 63 HP PCL Commands 10.11.7 Font Stroke Weight Esc ( s # B Font Stroke Weight (Secondary) - Esc ) s # B HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C # Value DJ600 DJ660C Font Stroke Weight (Primary) - DJ610C TABLE 41. -7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Ultra thin -6 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Extra thin -5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Thin -4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Extra light -3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Light -2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Demi-light -1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Semi-light 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 “Book” or “text” weight 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Semi-bold 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Demi-bold 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Bold 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Extra bold 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Black 6 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Extra black 7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Ultra black Default 0 Range -7 to 7 (less than -7 maps to -7; greater than 7 maps to 7) EFFECT Designates the thickness of the strokes that compose the characters of a font. If the designated stroke weight is unavailable and 0 or greater, the closest thicker weight is selected. If a thicker weight is unavailable, the closest thinner weight is selected. If the designated stroke weight is unavailable and less than 0, the closest thinner weight is selected. If a thinner weight is unavailable, the closest thicker weight is selected. Many typefaces were designed for advertising, and a “medium” was used to describe the standard treatment. Later, additional treatments were designed for text use. Therefore, the typeface treatment designation “medium” may not always take a HP PCL value of 0. This value may be assigned to “book” or “text” instead. 64 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands 10.11.8 Font Selection by ID Esc ( # X Font Selection by ID (Secondary) - Esc ) # X HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C # Value DJ600 DJ660C Font Selection by ID (Primary) - DJ610C TABLE 42. n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range 0 to 32767 - values exceeding range are ignored EFFECT Font with indicated ID is selected Designates a font by ID as primary or secondary. The designated font, if present, is selected as the primary/secondary font, and all the attributes in the primary/ secondary font select table are changed to match those of the designated font. Pitch, however, is not changed if the designated font is proportional. No action occurs if the designated font is unavailable. See the Font Symbol Set Command for Symbol Set ID Numbers. ! Pitch and height are unchanged if the designated font is scalable. If a proportional-space scalable font is selected by ID, the Height command should be sent prior to the Font Selection ID command to specify point size. Otherwise, the size will be determined by the height of the former font (as listed in the font select table). For shared or multi-user environments, HP recommends that soft fonts be selected by attribute rather than ID. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 65 HP PCL Commands 10.12 Downloading Fonts Currently, the HP DeskJet 600 Series and 850/855 Series printers are the only printers that accept downloaded fonts. Note that the HP DeskJet format soft fonts are designed for use with the HP DeskJet 500 Series printers. The following sections discuss the format for the HP LaserJet format soft fonts, which is the type used for the DeskJet 600 Series and 850/855 Series printers. Before sending font data, the font must first be assigned an identification number so the font can be referenced by subsequent HP PCL commands. Font ID 0 Range 0 to 32767 - values exceeding range are ignored HP2000C Default 4 DJ970C 4 4 4 4 4 4 4 DJ895C n DJ890C # Value DJ880C DJ870C DJ850C DJ830C DJ695C DJ690C DJ680C DJ670C Esc * c # D DJ600 DJ660C Font ID - DJ610C TABLE 43. DJ810C 10.12.1 EFFECT The subsequently downloaded font is given the specified ID number A font already having this ID number is deleted when the font definition is received, even if the new font is rejected because of memory constraints or invalid data fields. This ID is used as the value field of the Esc ( # X and the Esc ) # X soft font selection commands. EXAMPLE: Assume that Esc * c 1 D sets the current Font ID to 1. If this command is followed by a valid font definition (Esc s # W), a font with an ID of 1 is created. ! 66 If this command is followed by a Font Management (Esc * c # F) command, the appropriate action is executed for any font currently associated with an ID of 1. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Download Font # Value n 4 4 4 4 4 4 4 Default n/a Range 0 to 32767 - command is ignored for invalid descriptor or insufficient memory and the font descriptor data is discarded 4 HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C Esc ) s # W [font definition] DJ600 DJ660C Download Font - DJ610C TABLE 44. DJ850C 10.12.2 EFFECT Downloads a font definition and assigns the font the current font ID This command must be sent prior to downloading the characters in the font. Note that this command downloads the entire font definition, which includes the font descriptor, as well as any additional data segments such as the Global Intellifont Segment, the Global TrueType Segment, the Copyright, the Application Support Segment, etc. The value (#) of this command gives the size of the definition; the first word of the definition gives the size of the descriptor. The descriptor, which is the first part of the definition, defines characteristics common to all the characters of a font. Some devices, such as PaintJet, may not use a font definition or may ignore some fields; but each field should contain a valid value for printer compatibility. Missing data and “reserved” fields should be set to 0; excess data should be discarded. The two font definitions recognized by the HP DeskJet 600, 850, 870, 890, & HP 2000 Series printers are provided in the section of this guide entitled “Fonts”. 4 Bitmap - Older definition for bitmap fonts. Not recommended for new devices. 4 Resolution - Specified Bitmap - Replaces the previous Bitmap definition. Allows font resolution to be specified in dots-per-inch. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 67 HP PCL Commands Character Code 4 4 4 4 4 4 4 Default 0 Range 0 to 65535 - command is ignored for out of range values HP2000C n DJ970C # Value DJ895C DJ890C DJ880C DJ870C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C Esc * c # E DJ600 DJ660C Character Code - DJ610C TABLE 45. DJ850C 10.12.3 4 EFFECT Establishes a decimal ASCII code for the next character downloaded The character code is a state variable that must be designated prior to the download of a character descriptor. Any existing characters with the same code are deleted. EXAMPLE: Esc *c103E sets the character code to 103. If followed by the Character Descriptor (Esc ( s # W) command with a valid character descriptor and data, a character is defined in the code location corresponding to the ASCII lowercase “g”. HP DeskJet 600, 830, 895, 900 & HP 2000 Series printers support a range of 0 - 65535. After downloading the font definition, each character in the font must be defined. Download Character 4 4 4 4 4 4 4 Default n/a Range 0 to 32767 - command is ignored for out of range values 4 HP2000C n DJ970C # Value DJ895C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C ( s # W [Character Definition] DJ600 DJ690C Download Character - Esc TABLE 46. DJ890C 10.12.4 EFFECT Downloads a character definition with the specified (n) number of bytes Downloads a character definition with the character code assigned by Esc * c # E. The value field (#) contains the number of bytes to be downloaded up to a maximum of 32767. If more bytes are needed, this command is used again as many times as necessary. The 68 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands group of bytes sent by one command is called a block. A character definition consists of a first block and zero or more continuation blocks. An unsupported or invalid character definition is ignored and discarded. An out-of-memory condition during character download deletes the entire font. Reserved fields should be set to 0. Font Control HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ810C DJ695C DJ690C DJ680C DJ670C Esc * c # F # Value DJ600 DJ660C Font Control - DJ610C TABLE 47. DJ830C 10.12.5 0 4 4 4 4 4 4 4 4 Delete all fonts (temp, permanent, and soft) 1 4 4 4 4 4 4 4 4 Delete all temporary fonts (temp, permanent, and soft) 2 4 4 4 4 4 4 4 4 Delete font (specified by last Font ID) 3 4 4 4 4 4 4 4 4 Delete character (last Font ID and Character Code) 4 4 4 4 4 4 4 4 4 Make font temporary (specified by last Font ID) 5 4 4 4 4 4 4 4 4 Make font permanent (specified by last Font ID) Default n/a Range 0 to 5 - Command is ignored for other values, or if no font has the specified ID EFFECT Manipulates fonts and characters designated by Font ID and Character Code. If the primary or secondary font is deleted, a new primary or secondary font is automatically selected from the remaining fonts. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 69 HP PCL Commands 10.13 Raster Graphics The following HP PCL commands apply to the printing of raster graphic images on HP DeskJet 600/800/900 & HP 2000 Series printers. 10.13.1 Raster Mode The Start Raster (Esc * r # A) command begins a restricted state called raster mode. Raster mode locks out commands that would affect rendering of the graphics image. These commands remain locked out until End Raster (Esc * r C). 10.13.2 Commands Locked Out of Raster Mode The following raster commands are ignored in raster mode. They should be used to define a graphic image’s parameters before entering graphics mode. 10.13.3 Configure Raster Data Esc * g # W Simple Color Esc r # U Source Raster Width Esc r # S Start Raster Esc r # A Commands Allowed in Raster Mode The following commands may be used in raster mode without implicitly ending raster mode. 70 Compression Method Esc b # M Seed Row Source Esc b # S Transfer Raster by Row/Block Esc * b # W Transfer Raster by Plane Esc b # V Y Offset Esc b # Y HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Start Raster HP2000C DJ970C DJ895C DJ890C DJ880C DJ870C DJ850C DJ810C DJ695C DJ690C DJ680C DJ670C Esc * r # A # Value DJ600 DJ660C Start Raster - DJ610C TABLE 48. DJ830C 10.13.4 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Start graphics at logical page left boundary (current vertical position) 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Start graphics at CAP (current vertical and horizontal position) Default 0 Range 0 to 1 - Out of range values default to 0 EFFECT Starts raster mode and specifies the starting position of the raster image. This command sets the left raster margin. A value of 0 starts the upper left corner of the picture at the current vertical position on the left edge of the logical page. A value of 1 starts the upper left corner of the picture at CAP (the current vertical and horizontal position). Start Raster locks out the commands listed above and clears the seed row. End Raster HP2000C DJ970C DJ895C DJ890C DJ880C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C *rC # Value DJ600 DJ690C End Raster - Esc TABLE 49. DJ870C 10.13.5 n/a 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range n/a EFFECT Printer returns to text mode command processing This command ends Raster Mode. It signifies the end of the transfer of a raster graphics image and ends the current raster row. It performs the following functions: 4 Resets the seed row to zeros. 4 Re-enables commands locked out of raster mode by Esc * r # A. 4 Defaults the compression method to 0. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 71 HP PCL Commands 4 Resets the left graphics margin to 0. 4 Moves CAP to the row immediately following the end of the raster area and zero-fills empty rows if source raster height was specified; otherwise to the next row. 4 Resets the plane pointer to 1. If a value field is received, it is ignored and the command is still executed. ! Raster Resolution HP2000C DJ970C DJ895C DJ890C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C *t#R # Value DJ600 DJ690C Raster Resolution - Esc TABLE 50. DJ880C 10.13.6 75 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 graphics data printed at 75 dpi 100 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 graphics data printed at 100 dpi 150 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 graphics data printed at 150 dpi 300 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 graphics data printed at 300 dpi 600 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 graphics data printed at 600 dpi (applies to black data only)a Default 75 Range 75, 100, 150, 300, 600 - Command is ignored for other values EFFECT a. Only black raster data can print at 600 dots per inch on HP DeskJet 600/800/900 & HP 2000 Series printers. Defines the resolution at which graphics data is to be printed To assure that the graphic is printed without data loss, an unsupported resolution is mapped to the next higher supported resolution. For example, a request for 125 dpi on a HP DeskJet 600/ 810/830/895/900 or HP 2000 Series printer would result in 150 dpi being selected as the graphics print resolution. During raster mode this command is locked out. ! 72 HP DeskJet 600/800/900 & HP 2000 Series printers support 75, 100, 150, and 300 dpi for color and black printing. They also support 600 dpi for black data only. The default will be 75. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Source Raster Width HP2000C DJ970C DJ895C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C *r#S # Value DJ600 DJ690C Source Raster Width - Esc TABLE 51. DJ890C 10.13.7 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default Logical page width Range 0 to 32767 - (clamped to right logical page boundary minus left graphics margin) EFFECT Raster region width is set to specified number of pixels (at current resolution)a a. HP DeskJet 600, 810, 830, 850, 895, 900 & HP 2000 Series printers round source raster width values that are not a multiple of 8 to the next higher multiple of eight (i.e., the next byte boundary). Specifies the width in pixels of the raster area. Raster width extends from the left graphics margin to one of the following: 4 The distance specified by the Source Raster Width (Esc * t # H) command. 4 The right edge of the logical page, if the specified width would extend outside the printable area. 4 The right edge of the printable area, if width is not specified. HP DeskJet printers always clip at the right edge of the printable area. The left graphics margin is set to one of the following: 4 CAP (explicit Start Raster). 4 Left edge of the logical page (explicit or implicit Start Raster). The printer clips data that would extend outside the specified width. If width is not specified, the printer clips at the right edge of the printable area. If a width greater than the printable area is specified, the printer clips at the right edge of the logical page. The printer zero-fills rows not specified for the full width. These zero-filled portions of a row map to either white or transparent, depending on the media type currently selected (Esc * v # N). ! On color devices, a zero-fill is not necessarily white. For example RGB data set to zero prints as black on a HP DeskJet printer. Undefined graphics space would therefore print as black. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 73 HP PCL Commands Since width is in the direction that the raster rows are laid down, source raster width is relative to the current raster resolution or print quality setting. Y Offset HP2000C DJ970C DJ895C DJ890C DJ880C *b#Y DJ870C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C DJ600 # Value DJ690C Y Offset - Esc TABLE 52. DJ850C 10.13.8 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range -32767 to 32767 - Command is ignored for out of range values EFFECT Cursor is moved specified number of raster lines of vertical movement Moves CAP vertically (relative to CAP) by the specified number of raster lines. This command is recognized only in raster mode and only within the raster area. This command zero-fills the offset area. For Delta Row compression (methods 3 and 9), this command zeros the seed row. ! 74 Movement by this command is based on the graphics resolution. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands 10.14 Raster Data Transfer The Raster Transfer commands (Esc * b # V, Esc * b # W) define how many bytes will be interpreted as binary raster data The Transfer Raster by Plane (Esc * b # V) command is used when the data is encoded by plane, as specified by the Simple Color (Esc * r # U) command. Transfer Raster by Plane is used to send each plane in the row except the last; Transfer Raster by Row (Esc * b # W) must be used to send the last plane and advance the row. The Transfer Raster by Row (Esc * b # W) command moves CAP to the beginning of the next pixel row after the graphics data in the command is sent to the printer. The command is used for single-color devices, for the last plane in a multi-plane row, or for color raster transfer when the data is encoded by pixel. Transfer Raster by Plane HP2000C DJ970C * b # V [data] DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C DJ600 # Value DJ690C Transfer Raster by Plane - Esc TABLE 53. DJ895C 10.14.1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range 0 to 32767 - Command is ignored for out of range values EFFECT Specified number of bytes of graphics data for a single plane of data is set to the printer. The row pointer is not incremented. Sends a plane of data to the printer and advances to the next plane, but not to the next row. The number of planes per row is specified by the Simple Color (Esc * r # U) command (also known as Set Planes per Row). The first plane sent represents the least significant bit in the pixel. Since Transfer Raster by Plane (Esc * b # V) does not advance the row, it cannot be used for the last plane or for single-plane rows. Only Transfer Raster by Row (Esc * b # W) can advance the row. The amount of data sent varies from plane to plane and is independent of raster width. Planes whose data specifies a row shorter than the raster width are zero-filled. Empty planes can be sent by Esc * b 0 V. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 75 HP PCL Commands Transfer Raster by Row/Block HP2000C DJ895C DJ890C DJ880C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C * b # W [data] # Value DJ600 DJ690C Transfer Raster by Row or Block - Esc TABLE 54. DJ970C 10.14.2 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default n/a Range 0 to 32767 - Command is ignored for out of range values EFFECT Following specified number of data bytes sent to the printer as K data Transfers the number of bytes specified in the value field to the printer in a row by row or block format, depending on the current compression method (Esc * b # M), then moves CAP to the next row. This command is used in single-color and multi-color printers where data is encoded by row rather than by pixel. Because this command advances the row, it is also used for single-plane rows or the last plane in a multi-plane row. CAP is updated for each row in both row or block formats. For row formats, CAP is reset to the left graphics margin. For block formats, CAP is reset to the X coordinate of the block; and the Y coordinate is incremented. The amount of data sent by this command can vary from row to row. If the picture width allows more data than is sent, the undefined area is zero-filled. Undefined planes in a multi-plane row are zero-filled. Black and white devices interpret zeros as white; color devices interpret zero according to the current palette. The plane pointer in a multi-plane row is reset to 1 after the data is transferred. The data field is interpreted according to the current compression method (Esc * b # M). 76 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands 10.15 Raster Compression Since raster images take a large amount of memory and processing time, raster data should be reduced as much as possible. White-space data transfer can be reduced by sending empty rows and planes (Esc * b 0 W, Esc * b 0 V), or by offsetting the left graphic margin (Esc * r 1 A) or the vertical starting point (Esc * b # Y). The Compression Method (Esc * b # M) command provides several other ways of compressing data. Compression Method HP2000C DJ970C DJ895C DJ890C DJ880C DJ850C DJ830C DJ810C DJ695C DJ690C DJ680C DJ670C Esc * b # M # Value DJ600 DJ660C Compression Method - DJ610C TABLE 55. DJ870C 10.15.1 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Unencoded 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Run-length encoding 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Tagged Image File Format (TIFF) revision 4.0 “Packbits” encoding 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Delta row encoding 9 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Compressed replacement delta row encoding Default 0 Range 0-3, 9 - Out of range values default to 0 EFFECT Determines how raster data is interpreted in the Transfer Raster by Row or Transfer Raster by Plane commands. The compression method stays in effect until explicitly changed to another method or reset by Reset (Esc E) or End raster (Esc * r C). Method 0- Unencoded This is a simple binary transfer: no compression. Method 1- Run-Length Encoding Method 1 interprets raster data as byte pairs. The first byte tells how many times the second byte is repeated, i.e., a repetition count. The second byte is the data to be printed. The repetition count can be 0 through 255. A count of 0 means the byte pattern occurs once and is not repeated; a count of 1 means the pattern occurs twice; and a count of 255 means the pattern occurs 256 times. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 77 HP PCL Commands ! Method 1 requires byte pairs: a Transfer Raster (Esc * b # V or Esc * b # W) command with an odd value field is ignored and the data discarded. Method 2 - Tagged Image File Format Encoding (TIFF revision 4) Method 2 (“packbit” encoding) combines methods 0 and 1, with blocks of repeated bytes and blocks of literal (unencoded) bytes. A control byte precedes the raster data; it indicates the number of succeeding bytes, and whether they are repeated or literal. The control byte is in 2’s complement format. If bit 7 is set (byte = -1 to -127), the following bytes are repeated. The control byte’s absolute value is the number of repetitions (occurrences = repetitions + 1). For example, a control byte of -5 means the subsequent byte is repeated 5 times (6 occurrences). If bit 7 of the control byte is zero (byte = 0 to 127), the following bytes are literal. The number of succeeding data bytes is 1 + the value of the control byte. A control byte of 0 means 1 literal byte follows; a control byte of 6 means 7 literal bytes follow. A control byte of -128 is ignored; the next byte is then treated as a control byte. It is more efficient to code two consecutive identical bytes as a repeated byte, unless these bytes are preceded and followed by literal bytes. Three-byte repeats should always be encoded as replicate runs. The row length indicated by the Transfer Raster commands (Esc * b # V, Esc * b # W) has precedence if it is met before the literal run count. ! EXAMPLES OF METHODS 0 - 2: The following examples show how methods 0 - 2 can be used to send the raster row below: Byte Number Bits ASCII #1 #2 #3 #4 #5 #6 01010101. 01010101. 01010101. 01010101. 01000001. 01010100. 01010100 U U U U A T Compression method 0 - Unencoded Esc*r1 A Esc*b0m7WUUUUATT Esc*rC 78 #7 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide T HP PCL Commands Compression method 1 - Run-length encoding Esc*r1 A Esc*b1 m6W(3)U(0)A(1)T Esc*rC Compression method 2 - TIFF encoding Esc*r1 A Esc*b2m6W(-3)U(0)A(-1)T -orEsc*b2m6W(-3)U(2)ATT Esc*rC ! Parentheses in the above escape sequences are for readability only. Method 3 - Delta Row Encoding This method replaces only bytes in the current row that are different from the preceding row (seed row). Unreplaced bytes are replicated from the seed row. The current row then becomes the seed row. A delta compression string consists of a command byte and the replacement (delta) bytes: [(Command byte)(1 to 8 replacement bytes)] The command byte has two parts: the number of consecutive replacement bytes that follow, and the left offset from the current byte position. 7 5 Replacement count (1 - 8) 4 0 Left offset from the current byte (O - 30) Three bits of the command byte contain the replacement count: the number of consecutive replacement bytes that follow (000 = 1, 111 = 8). Five bits contain the offset from the current byte to the next replacement byte. The current byte follows the last replacement byte or, at the beginning of a row, the left graphics margin. An offset of 0 is the current byte; an offset of I is the byte following the current byte. For example, assume the current byte is the first byte in the row. An offset of 7 skips bytes 0 through 6, and a replacement count of 5 replaces bytes 7 through 11. The new current byte is 12. A second offset of 3 skips bytes 12, 13, and 14; byte 15 is the next byte to be replaced. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 79 HP PCL Commands The values of the offset have the following definitions: 0 to 30: The offset is 0 to 30. 31: The offset is 31 or greater. If the offset is 31, an additional offset byte follows the command byte. The offset in the command byte is added to the offset byte. If the off- set byte is 0, the offset is 31; if the offset byte is 255, additional offset bytes follow. The last offset byte will have a value less than 255. All the offset bytes are added to the offset in the command byte to get the offset value. For example, if there are 2 offset bytes, and the last byte contains 175, the total offset would be: 31 + 255 + 175 = 461. If more than eight delta bytes are needed, additional command byte/delta bytes are added: [(Command Byte)(1-8 Delta Bytes)][(Command Byte)(1-8 Delta Bytes)] . . . The seed row is zeroed when raster mode is entered. Every raster transfer affects the seed row, regardless of the compression method. For example, an Esc * b 0 W while in compression method 0 zeros the seed row. This allows method 3 to be combined with other methods in order to achieve better compression performance. A vertical offset also affects the seed row: the Y Offset (Esc * b # Y) command skips rows, leaving them blank, and zeros the seed row. Method 3 operates on each plane independently, and a separate seed row is maintained for each graphic plane. However, a Y Offset affects all planes and seed rows simultaneously. The examples below show how method 3 affects Raster Transfer and Y Offset commands: Esc b 0 W Repeat the previous row. The seed row is unchanged Esc b 1 Y Move down one raster row. Zero the seed row. Esc b 0 Y Move down zero raster rows. Zero the seed row Seed row width is set to the source raster width at the beginning of raster mode. Source Raster Width (Esc * r # S) updates seed row width. If the Transfer Raster (Esc * b # V or Esc * b # W) command byte count is less than the control byte count, only the transfer byte count number of bytes are replaced. If the transfer count is greater than the control count, only the control byte number of bytes are replaced; for example, if the control byte count is 10 but the transfer count is 3, only 3 bytes are replaced. If the last byte indicated by the transfer command value is a control byte, it is ignored. Therefore, Esc * b 1 W does not affect the seed row, but causes the previous row to be repeated. DELTA ROW EXAMPLE: 80 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands The following data is compressed using method 3. Italicized bytes are those needing replacement, i.e., bytes different from the seed row. Graphics data is binary. Byte #: 1 2 3 4 5 Row 1 00000000 11111111 00000000 00000000 00000000 Row 2 00000000 11111111 11110000 00000000 00000000 Row 3 00001111 11111111 11110000 10101010 10101010 Esc * r 1 A Start Raster initializes the seed row to all zeros. Row 1 - Esc * b 3 m 2 W (00000001 )( 11111111 ) 3m selects method 3, and 2W indicates that 2 bytes of data will follow. The upper three bits of the command byte are zero, indicating that one byte will be replaced. The lower five bits contain a relative offset of 1, indicating that the replacement occurs one byte in from the current position. The replacement byte follows and contains 11111111. Row 2 - Esc * b 2 W (00000010)(11110000) The first three bits of the command bye are 0 indicating one byte will be replaced. The lower five bits contain a relative offset of 2; so the replacement will occur 2 bytes from the current position. The replacement byte 11110000 follows. Row 3 - Esc * b 5 W (00000000)(00001111)(00100010)(10101010)(1010 1010) Three bytes are replaced using two commands. The first three bits of the first command byte are zero, indicating a single byte replacement, and the next five bits are zero, indicating a relative offset of zero. The replacement byte 00001111 follows. The first three bits of the second command byte are 001, indicating the replacement of two bytes; and the lower five bits contain a relative offset of two. The two replacement bytes (10101010)(10101010) follow the command byte. Method 9 - Compressed Replacement Delta Row Encoding Like Method 3, this method replaces only bytes in the current row that differ from the preceding (seed) row. Unlike Method 3, the replacement (delta) bytes may be encoded. A delta compression string consists of a command byte, optional offset bytes, optional replacement count bytes, and the replacement data. Command Byte Optional Offset Bytes Optional Replacement Count Bytes Data Bytes The command byte itself has three parts: Control Bit Offset Count Replacement Count HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 81 HP PCL Commands Control Bit: Determines whether the replacement data is encoded, and also the bit boundaries of the command byte’s other two fields. Offset Count: The number of bytes the replacement data is offset from the current position in the seed row. Replacement Count: The number of consecutive data bytes to be replaced. Control Bit = 0 If the control bit is 0, the replacement data is uncompressed. Bits 0-2 contain the replacement count; bits 3-6 contain the offset count. The replacement count is the number of bytes to be replaced by the bytes following the command byte. The offset count is the location these replacement bytes will occupy relative to the current position in the seed row. Like compression method 3, the current byte follows the last replacement byte or, at the beginning of a row, the left graphics margin. An offset of 0 is the current byte; an offset of 1 is the byte following the current byte. 6 7 Control Bit = 0 3 Offset Count 2 0 Replacement Count If the offset count is 15, an offset count byte follows the command byte and is added to the command byte’s offset count. If the offset count byte is 0, the offset count is 15. If the offset count byte is 255, another offset count byte follows. The last offset count byte will be less than 255. One more byte than that indicated by the replacement count will be replaced. That is, 000 = 1 and 111 = 8. For example, if the replacement count is 5, then 6 bytes are replaced. If the replacement count is 7, a replacement count byte follows the command byte and any offset count bytes. If the replacement count byte is 0, then 8 bytes are replaced. If the replacement count byte is 255, another replacement count byte follows. The last replacement count byte will be less than 255. All of the replacement count bytes are added to the replacement count in the command byte to get the total replacement byte count. One more than the total replacement byte count will be replaced. Control Bit = 1 Operation is similar if the control bit is 1, except that the replacement data is run length encoded and the bit boundaries are different. Bits 5 and 6 contain the offset count; bits 0 - 4 contain the replacement count. As when the control bit is 0, optional offset bytes and replacement bytes may be added. 7 6 Control Bit = 1 82 5 Offset Count 4 0 Replacement Count HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Seed Row Source Esc * b # S Specifies the plane of the seed row for multi-plane graphics in compression methods 3 and 9. Value (#) = 0 - Use the corresponding plane of the previous row. = > 0 - Number of previous seed planes before the current plane Default = 0 Range = 0 to number of currently active planes. For example, if the printer is in 3-plane mode and Esc * b 0 S was sent, then: 4 The Cyan plane would use the Cyan plane from the previous row as a seed plane. 4 The Magenta plane would use the Magenta plane from the previous row as a seed plane. 4 The Yellow plane would use the Yellow plane from the previous row as a seed plane. If the printer is in 3-plane CMY mode and Esc * b 1 S is sent, then: 4 The Cyan plane would use the Yellow plane from the previous row as a seed plane. 4 The Magenta plane would use the Cyan plane from the current row as a seed plane. 4 The Yellow plane would use the Magenta plane from the current row as a seed plane. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 83 HP PCL Commands Simple Color HP2000C DJ970C DJ895C (Also known as Set Planes Per Row) DJ890C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C *r#U # Value DJ600 DJ690C Simple Color - Esc TABLE 56. DJ880C 10.16.1 Color DJ870C 10.16 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Single plane K palette -3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 planes, device CMY palette 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 planes, device RGB palette -4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 planes, device KCMY palette Default 1 Range -4, -3, 1, 3 - Command is ignored for out of range values EFFECT The Simple Color (Esc * r # U) command, sometimes referred to as Set Planes Per Row, allows color selection from a fixed palette. CMY or RGB raster data must be transferred by plane (Esc * b # V) as well as by row (Esc * b # W). The pixel encoding mode is indexed planar.Creates a fixed-size palette whose color specification cannot be modified. ! The HP DeskJet 600 printer, which is a single-pen device, maps a value parameter of -4 to 3-plane CMY, converting K data to composite black. The absolute value of the value field indicates the number of planes per row of raster data to be sent. The number of entries in the new palette is 2n, with index values 0 to 2n -1. For example a 4-plane palette has 16 entries, with index numbers 0 to 15. A value field of 1 creates a 2-entry black and white default HP LaserJet palette. A value field of 3 creates an 8-entry Device RGB palette (compatible with a HP PCL Imaging Mode palette. A value field of -3 creates an 8-entry palette in Device CMY color space. A value field of -4 supports 4-plane Device KCMY color. Plane 1 is the black pen, and planes 2, 3, and 4 respectively are the CMY planes. The four Simple Color palettes are shown below. ! 84 The ordering for color data planes when the RGB palette is selected is RGB. The first Transfer By Plane command will send Red Data to the printer, the second will send Green Data, and the Blue Data is sent with a Transfer By Row command, which increments the HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Row Pointer. The HP DeskJet 600/800/900 & HP 2000 Series printer firmware will complement the data and fire the pen as required to generate the appropriate CMY color. The RGB palette below shows both the RGB data values sent to the printer and the corresponding color printed. Single Plane (black) Palette (value = 1) Planes Per Row Color Data Pattern 1 White (no ink) 0 Black 1 3-Plane CMY Color Palette (value = -3) Planes per Row 3 Color Printed Data Plane Pattern C M Y White (no ink) 0 0 0 Yellow 0 0 1 Magenta 0 1 0 Red 0 1 1 Cyan 1 0 0 Green 1 0 1 Blue 1 1 0 Composite Black 1 1 1 3-Plane RGB Color Palette (Value = 3) Planes per Row 3 Data Plane Pattern Color Printed R G B 0 0 0 Composite Black 0 0 1 Blue 0 1 0 Green 0 1 1 Yellow 1 0 0 Red 1 0 1 Magenta 1 1 0 Cyan 1 1 1 White (no ink) HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 85 HP PCL Commands 4 Plane (KCMY) Color Palette (value = -4) Planes per Row 4 86 Color Printed Data Plane Pattern K C M Y White 0 0 0 0 Yellow 0 0 0 1 Magenta 0 0 1 0 Red 0 0 1 1 Cyan 0 1 0 0 Green 0 1 0 1 Blue 0 1 1 0 Composite Black 0 1 1 1 Black 1 0 0 0 Black/Yellow 1 0 0 1 Black/Magenta 1 0 1 0 Black/Red 1 0 1 1 Black/Cyan 1 1 0 0 Black/Blue 1 1 0 1 Black/Green 1 1 1 0 Black 1 1 1 1 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands Foreground Color HP2000C DJ970C DJ895C DJ890C DJ870C DJ850C DJ830C DJ810C DJ695C DJ680C DJ670C DJ660C DJ610C *v#S # Value DJ600 DJ690C Foreground Color - Esc TABLE 57. DJ880C 10.16.2 n 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 Default 0 Range 0 to the size of the current palette-1 Out of range values are mapped in to a new index via modulo (palette size) EFFECT Text will be printed in the color specified by the given index All HP PCL marking entities utilize foreground color, which is selected by Esc * v # S from the current palette. Sets the foreground color to the specified index of the current palette. Out-of-range values are mapped into a new index via modulo (palette size). For example, if the current palette size is 8, and the selected index for the foreground color command is 10, the index is mapped into the index of 2 (i.e., 10 modulo 8). Foreground color affects the following HP PCL page marking primitives in HP DeskJet 600/ 800/900 & HP 2000 Series printers. 4 Text characters 4 Solid or monochrome patterned rectangular area fills (rules) (800, 855, 870, 890 only) 4 Raster images (see note below) ! The HP DeskJet 600 printer will ignore this command if the black pen is installed (foreground color will be black). When the color pen is installed, the printer will map a request for a four plane palette to a 3 plane palette, using composite black in place of black. Foreground color interacts with color raster images on HP DeskJet 1200 Series and HP DeskJet 1600 Series printers. Foreground color does not affect raster color on HP DeskJet 600/800/900 & HP 2000 Series printers. If you are developing printer driver code that will be ported to drivers for HP DeskJet 1200 and/or 1600 Series printer, to avoid undesired interactions, select a black foreground color when transmitting raster images to the printer. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 87 HP PCL Commands TABLE 58. Single Plane (black) Palette Planes Per Row Index Color 1 0 White (no ink) 1 Black TABLE 59. Three Plane (CMY) Color Palette Planes per Row Index Color 3 0 White (no ink) 1 Cyan 2 Magenta 3 Blue 4 Yellow 5 Green 6 Red 7 Composite Black TABLE 60. 88 Three Plane (RGB) Color Palette Planes per Row Index Color 3 0 Composite Black 1 Red 2 Green 3 Yellow 4 Blue 5 Magenta 6 Cyan 7 White (no ink) HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Commands TABLE 61. Four Plane (KCMY) Color Palette Planes per Row Index Color Printed 4 0 White (no ink) 1 White (no ink) 2 Cyan 3 Black 4 Magenta 5 Black 6 Blue 7 Black 8 Yellow 9 Black 10 Green 11 Black 12 Red 13 Black 14 Composite Black 15 Composite Black HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 89 Fonts 11.0 Fonts A soft font is composed of a Font Definition (font header) and a series of character definitions. Both are described below. In order to use the standard bitmap font definition on a HP DeskJet 600 or 85X Series printers, the Font Descriptor Size field must be set to exactly 64. The First Code and Last Code fields must also contain valid information. HP LaserJet printers do not enforce these restrictions, and it is therefore common for developers leveraging code and fonts from previous HP LaserJet development to experience problems. 11.1 Standard Bitmap Font Definition (format 0): Byte 15 (MSB) 7 (LSB) 0 Byte Font Descriptor Size (64) 0 1 2 Descriptor Format (0) Symbol Set Type 3 4 Style MSB Reserved 5 6 Baseline Position 7 8 Cell Width 9 10 Cell Height 11 12 Orientation 14 Symbol Set 15 16 Pitch (Default HMI) 17 18 Height 19 20 x-Height 21 22 Width Type Style LSB 23 24 Stroke Weight Typeface LSB 25 26 Typeface MSB Serif Style 27 28 Quality Placement 29 30 Underline Position Underline Thickness 31 32 Text Height 33 34 Text Width 35 36 First Code 37 38 Last Code 39 40 Pitch Extended 42 Cap Height Spacing 13 Height Extended 41 43 44-46 Font Number 45-47 48-63 Font Name 49-63 64 90 8 Copyright (optional) HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 65 Fonts 11.2 Resolution-Specified Bitmap Font Definition (Format 20) The Resolution-Specified Bitmap font definition shown below is the same as the Standard Bitmap font definition, except that it allows specification of resolution (shaded fields). As with the Standard Bitmap Definition, the Font Descriptor Size field and the First Code/Last Code fields must be filled and valid. The Font Descriptor Size field for the Resolution Specified Bitmap must be at least 68. Byte 15 (MSB) 8 7 (LSB) 0 Byte 0 Font Descriptor Size (68) 1 2 Format (20) Symbol Set Type 3 4 Style MSB Reserved 5 6 Baseline Position 7 8 Cell Width 9 10 Cell Height 11 12 Orientation 14 Symbol Set 15 16 Pitch (Default HMI) 17 18 Height 19 20 x-Height 21 22 Width Type Style LSB 23 24 Stroke Weight Typeface LSB 25 26 Typeface MSB Serif Style 27 28 Quality Placement 29 30 Underline Position Underline Thickness 31 32 Text Height 33 34 Text Width 35 36 First Code 37 38 Last Code 39 40 Pitch Extended 42 Cap Height Spacing Height Extended 13 41 43 44-46 Font Number 45-47 48-62 Font Name 49-63 64 X Resolution 65 66 Y Resolution 67 68 Copyright (optional) 69 n ... n+l HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 91 Fonts The following notation is used to define data types in the font definitions: (BOOL) Boolean (0,1) (UBYTE) Unsigned Byte (0 . . . 255) (SBYTE) Signed Byte (-1 28 . . .1 27) (UINT) Unsigned Integer (0 . . . 65535) (SINT) Signed Integer (-32768 . . . 32767) (ULINT) Unsigned Long Integer (0 . . . (232-1 )) (SLINT) Signed Long Integer (_231. . . (23 (ASCxx) ASCII String (array (0 . . . (xx-1))) of characters 11.2.1 Font Descriptor Size (UINT) This field contains the number of bytes in the font descriptor (not the font definition size, which is given by the escape sequence value field). See the font definition tables for the appropriate value. The font is invalid if the size is less than the minimum required. 11.2.2 Descriptor Format (UBYTE) Identifies the font as one of the following: ValueFormat 0 Standard Bitmap 20 Resolution-Specified Bitmap Unrecognized values invalidate font creation. ! 11.2.3 HP DeskJets prior to the HP DeskJet 600 Series use a value of 9 for landscape fonts or fonts larger than 18 points; all other HP DeskJet fonts use a value of 5. The HP DeskJet 600 and 85X Series printers only support formats 0 (Standard Bitmap), and 20 (Resolution-Specified Bitmap). Symbol Set Type (UBYTE) Describes the font’s relationship to symbol sets. Value 92 Symbol Set Organization 0 Bound font, 7-bit (96 characters) - Character codes 32-127 [decimal] are printablea 1 Bound, 8-bit (192 characters) - Character codes 32-127 and 160-255 printable. 2 Bound font, 8-bit (256 characters) - All codes are printable except 0, 7-15, and 27a 10 Unbound font, no symbol set affiliation - Character codes correspond to MSL numbers (for Intellifont unbound scalable fonts) 11 Unbound font, no symbol set affiliation - Character codes correspond to Unicode numbers (for TrueType unbound scalable fonts) HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Fonts a. Access to those codes that are unprintable, yet have a character defined, requires the use of the Transparent Print (Esc & P # X) command 11.2.4 Font Type (UBYTE) Identifies the font type as one of the following: Value 0 1 2 3 Symbol Set Organization 7-bit (32 -1 27 are printable) 8-bit (32 -127 and 160 - 255 are printable) PC-8 (0 - 255 are printable except 7 -1 5 and 27) 16-bit (all are printable except 0, 7 -1 5, 27, 65279, 65534, and 65535) A type 3 font is a 16-bit font with character codes downloaded according to some native mapping (for example, Shift-JIS, JIS208, etc.). This native mapping allows the font to be used as a stand-alone font, or it can be bound to another symbol set and then used. 11.2.5 Style MSB (UINT) The style MSB (byte 4) is combined with the style LSB (byte 23) to make the style word, which is calculated from the partial sums for posture, width, and structure. The binary structure of the style word is shown below. Style Word = Posture + (4 x Width) + (32 x Structure) 15 X Value(#) 14 10 reserved = = = 9 5 structure 4 2 width 1 0 posture Posture (style word partial sum) 0 - Upright 1 - Italic 2 - Alternate Italic 3 - Reserved Width (style word partial sum multiplied by 4) 0 - Normal 1 - Condensed 2 - Compressed or extra condensed 3 - Extra compressed 4 - Ultra compressed 5 - Reserved 6 - Extended or expanded 7 - Extra extended or extra expanded Structure (style word partial sum multiplied by 32) 0 - Solid 1 - Outline 2 - In-line 3 - Contour, Edge effects 4 - Solid with shadow HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 93 Fonts 5 - Outline with shadow 6 - In-line with shadow 7 - Contour with shadow 8-11 -Patterned (complex patterns, subjective to typeface) 12-15 - Patterned with shadow 16 - Inverse 17 - Inverse in open border 18-30 - Reserved 31 - Unknown structure The reserved bits (10 to 15) should be set to 0. If a font style of “italic compressed contour” is downloaded, the value(#) would be: 1 +(2x4)+(3x32)=105 11.2.6 ! 11.2.7 ! 11.2.8 ! 11.2.9 Baseline Position (UINT) HP DeskJet 600 and 85X Series printers ignore this field. TrueType - Set to 0. Cell Width (UINT) HP DeskJet 600 and 85X Series printers ignore this field. Cell Height (UINT) HP DeskJet 600 and 85X Series printers ignore this field. Orientation (UBYTE) Specifies font orientation. All font characters must have the same orientation as those specified in the font descriptor; otherwise they are discarded as they are downloaded. 0 = portrait (0 degrees; the orientation of the printer’s raster scan) 1 = landscape (90 degrees counterclockwise) 2 = reverse portrait (180 degrees counterclockwise) 3 = reverse landscape (270 degrees counterclockwise) ! 94 HP DeskJet 600 and 85X Series printers will rotate the fonts to match the paper’s physical coordinate system for various paper sizes. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Fonts 11.2.10 Spacing (BOOL) Specifies the type of font spacing. Fixed spacing is 0; proportional spacing is l; dual-fixed spacing is 2. ! 11.2.11 HP DeskJet printers prior to the HP DeskJet 600 Series treat values other than 0 or 1 as 1, and require that landscape fonts have fixed spacing. Symbol Set (UINT) Bound Font - Specifies the symbol set characteristic of the font. The value for this field is derived from the symbol set identification number (ID) used by Esc(lD in the font selection process. The number portion (#) and the ASCII value of the letter portion (L) of the ID are used to obtain the symbol set descriptor field value: Symbol Set Descriptor Field = (# x 32) + (L - 64) Assume the symbol set is US ASCII ISO-6. The symbol set table in the section “Font Selection by Attribute,” identifies US ASCII as “0U”. Since # = 0 and U = 85, the field value is 21: Symbol Set Descriptor Field = (0 x 32) + (85 - 64) = 21 Unbound Font - This field should be set to 56 (1X) for unbound fonts. 11.2.12 Character Set (UINT16) The Character Set field specifies the native mapping of a large font. 11.2.13 Pitch (UINT) Bitmap Font - Specifies the pitch of the font in quarter-dot units (i.e., four quarter-dot units equal one dot; also known as radix dots). It combines with Pitch Extended to specify the pitch of the font in 1/1024 dots. Pitch defines the default HMI for the font. For example, at 300 dpi (1200 quarter-dots/inch), a 17-ppi font has a pitch field of 70 and a non-zero pitch extended field. (1 inch /17char) x (300 dots / inch) x (4 radix dots / dot) = 70.588 radix dots The remainder 0.588 is converted back to dots and then to 1/1024 dots: (0.588 radix dots /4 radix dots per dot) x (1024 units / dot) = 150 units/dot Pitch Extended is set to 1501/1024 units. For proportional fonts, the width “printed” for a control code space is determined by the pitch value unless HMI has been changed. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 95 Fonts 11.2.14 Height (UINT) Bitmap Font - Specifies the font’s height in quarter-dot units. The value, converted to points (1/72 inch), is used as the height characteristic of the font. Height combines with Height Extended to specify the design height of the font in 1/1024 dots. For example, a 10 point font at 300 dpi has a height field of 166 quarter dots (1200 quarter dots/inch, 1/72 inch/ point). (10 point) x (1 inch /72 point) x (300 dots/inch) x (4 quarter-dots/dot) = 166.667 11.2.15 xHeight (UINT) Bitmap Font - Specifies the height of the lower case “x” in quarter dots. All HP DeskJet 600 and 85X Series printers ignore this field. 11.2.16 ! 11.2.17 Width Type (SBYTE) HP DeskJet printers ignore this field. Style LSB (UBYTE) The least significant byte of the style word. Refer to the Style MSB field. 11.2.18 Stroke Weight (SBYTE) Specifies the thickness of the font characters. The standard stroke weight is 0 for a medium font, 3 for a bold font, and -3 for a light font. Value 96 Stroke Weight -7 Ultra thin -6 Extra thin -5 Thin -4 Extra light -3 Light -2 Demi-light -1 Semi-light 0 Medium, Book, or Text 1 Semi-bold 2 Demi-bold 3 Bold 4 Extra bold HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Fonts Value Stroke Weight 5 Black 6 Extra black 7 Ultra black Default = 0 Range = -7 to 7 (less than -7 maps to -7; greater than 7 maps to 7) 11.2.19 Typeface [LSB/MSB] (UBYTE) Specifies the HP typeface number of the font. Three versions of this field are used: the obsolete single-byte version for older fonts, the version used by HP DeskJet 500 and HP LaserJet III printers, and the new HP LaserJet 4 version (also used by the HP DeskJet 600 and 85X Series printers. Single-Byte Version HP DeskJets prior to HP DeskJet 500 and HP LaserJets prior to HP LaserJet IID used only the least significant byte (LSB). These printers ignore the upper byte (MSB) in the current version described below. HP LaserJet III / HP DeskJet 500 Version The typeface word includes a 4-bit field for the vendor number, a 2-bit field for the version number, and a 9-bit field for the actual typeface number. The most significant bit of the most significant byte is always zero. The typeface word is shown below. Typeface Family Value MSB 15 0 LSB 14 11 Vendor 10 9 Version 8 0 Typeface Base Value Typeface Base Value 0 3 4 5 6 7 8 ... Line Printer or Line Draw Courier Helvetica Times Roman Letter Gothic Script Prestige Version (typeface word partial sum multiplied by 512) 0 1 1st version 2nd version HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 97 Fonts 2 3 3rd version 4th version Vendor (typeface word partial sum multiplied by 2048) 0 Reserved for generic typeface selection. 1 Reserved for HP use only. 2 Agfa Division, Miles Inc. 4 Bitstream Inc. 6 Linotype Company 8 The Monotype Corporation plc 10 Adobe Systems, Inc. 3, 5, 7, 9,11-15 Reserved Default = 3 Range = 0 to 65535 (unavailable values are ignored) Vendor Number (bits 11-14) - This HP-assigned value is between 0 and 15. Vendor Version (bits 10, 9) - This value is between 0 and 3. It will change when the vendor changes the width of a font or adds new characters to a font. A vendor code of 0 is reserved for generic typeface selection so that older one-byte typeface values can still be used in the generic typeface selection process. Typeface Base Value (bits 0 to 8) - This value is between 0 and 511. Some of these values include appearance width and structure information (i.e., Helvetica Compressed and Helvetica Outline, etc.). ! A typeface family value in which both Vendor and Version numbers are 0 is reserved for generic type- face selection. That is, for typeface family values less than 512, the printer exactly matches the LSB typeface base value field. For typeface values greater than or equal to 512, the printer uses the full 16-bit typeface word. PROCEDURE: Typeface Family = Typeface Base Value + (Version x 512) + (Vendor x 2048) The HP typeface number for Agfa’s Dom Casual typeface is 4157 (vendor value=2, version value=0, and type- face value = 61). 61+(0x512)+(2x2048)=4157 11.2.20 Serif Style (UBYTE) HP DeskJet 600 and 85X Series printers ignore this field. 11.2.21 Quality HP DeskJet 600 and 85X Series printers ignore this field. 98 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Fonts 11.2.22 Placement HP DeskJet 600/800/900 & HP 2000 Series printers ignore this field. 11.2.23 Underline Position (SBYTE) Bitmap Font - Specifies the distance from the baseline to the top dot row of the underline in dots. Zero specifies an underline position at the baseline. A positive value specifies an underline position above the baseline. A negative value specifies an underline position below the baseline. Scalable Font - Set to 0. Underline Distance is ignored. The Master Underline Position field identifies this information for scalable fonts. ! 11.2.24 HP DeskJet 600 and 85X Series printers use this field for auto-underlining. Underline Thickness (UBYTE) Specifies the thickness of the underline in dots for a bitmap font. Bitmap Font - Specified in dots. A bitmap font prints 3-dot thick underlines at 300 dpi and 6dot thick under- lines at 600 dpi. Scalable Font - Should be ignored and set to 0. The Master Underline Height provides this information. ! 11.2.25 HP DeskJet 600 and 85X Series printers use this field for auto-underlining. Text Height (UINT) Specifies the font’s optimum interline spacing for this font. This value is typically 120% of the height of the font. Bitmap Font - Specified in quarter-dot units. Scalable Font - Specified in design window units (defined in the Scale Factor field). 11.2.26 Text Width (UINT) Specifies the font’s average lowercase character width (it can be a weighted average). Bitmap Font - Specified in quarter-dots. Scalable Font - Specified in design window units (defined in the Scale Factor field). HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 99 Fonts 11.2.27 First Code (UINT) Specifies the character code of the first printable character in the font. The space character may be printable, and will print an image if one is defined; otherwise, a space control code is executed. For a type 3 font, this field can have any value from 0 through 65535. First Code must be less than or equal to Last Code. Symbol SetType 0 1 2 10 11 11.2.28 First Code/Last Code 32/127 32/127-160/255 0/255 Set to 0 (for unbound font) Set to 0 (for unbound font) Last Code/Number of Chars (UINT) Specifies the character code of the last printable character in the font. This value may be greater than the last code of the symbol set as implied by the symbol set type because there may be components of compound characters that are not part of the symbol set, but must be downloaded. For a bound font, this field specifies the last downloadable character code in the font. For an unbound font (type 10 or 11), it specifies the maximum number of characters that can be downloaded into the font. For a type 3 font, this field can be any value from First Code through 65535. Last Code can be equal to First Code. 11.2.29 Pitch Extended (UBYTE) Bitmap Font - This is an addition to the Pitch field that extends pitch an extra 8 bits to allow 10 bits of fractional dots. The value of this field is in 1/1024 dot units. For example, a 17-ppi font for a 300-ppi device would have a Pitch field of 70 (17.5 dots or 17.1429 cpi) and a Pitch Extended field of 150 (0.1465 dots additional, which adds to 17.6465 dots, or 17.0005 cpi). An example of calculating the Pitch and Pitch Extended fields is provided in the Pitch field description. Scalable Font - This field is set to zero. ! 11.2.30 HP DeskJet 500 Series printers ignore this field. The HP DeskJet 600 and 85X Series printers do not Height Extended (UBYTE) Bitmap Font - This is an addition to the Height field that extends the height an extra 8 bits to allow 10 bits of fractional dots. The value of this field is in 1/1024 dot units. For example, a 10 100 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Fonts point font for a 300-ppi device would have a height of 166 (41.5 dots, or 9.96 points) and a Height Extended field of 170 (0.1660 dots additional, which adds to 9.9998 points). This field is similar to the Pitch Extended field (refer to the Pitch field example). Scalable Font - This field is ignored and should be set to zero. ! 11.2.31 HP DeskJet 500 Series printers ignore this field. The HP DeskJet 600 and 85X Series printers do not. Cap Height (UINT) Cap height is a percentage of the Em of a font and is used to calculate the distance from the cap line (top of an unaccented, upper-case letter, e.g., “H”) to the baseline. An Em is a measure in decipoints of the height of a font; e.g., the em of a 10-point font is 100 decipoints. Bitmap Font - Fonts containing a 0 in this field are assumed to have a cap height percentage of 70.87% of em. The Cap Height data is represented as the product of the cap height percentage and the maximum unsigned integer: 0.7087 x 65535 = 46445 For nonzero values the Cap Height percentage is calculated as follows: % = (Cap Height Data /65535) x 100 Scalable Font - Contains the cap height in design window units (as defined in the Scale Factor field). 11.2.32 Font Number (UINT) Bitmap Font - Should be ignored and set to 0. 11.2.33 Font Name (ASC16) This is a 16 byte ASCII character field in which the user may assign a font name. 11.2.34 X Resolution (UINT) In resolution-specified bitmap fonts, this field specifies the resolution of the font in the X dimension in dots per inch. 11.2.35 Y Resolution (UINT) In resolution-specified bitmap fonts, this field specifies the resolution of the font in the Y dimension in dots per inch. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 101 Fonts 11.2.36 Copyright This optional field contains ASCII data. 11.2.37 Font Scaling Technology This field specifies either an Intellifont or TrueType scalable font or, for Format 16, a bitmap font. Value 0 1 254 Font Scaling Technology Intellifont TrueType bitmap Using a value of 254 for bitmap fonts reserves the lower values for other font scaling technologies as they evolve. 11.2.38 Segment Size The Segment Size field of a Format 16 font is 32 bits in length. 102 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Fonts 11.3 Bitmap Resolution Segment The BR (Bitmap Resolution) segment is used to define the X resolution and Y resolution of the bitmap. This segment must be present for bitmap fonts, otherwise the font is invalidated. If the specified resolution is not supported by the device, the font is invalidated. The structure for the BR segment is: Byte 15 (MSB) 8 17 0 Byte x BR x+1 x+2 Segment Size x+3 x+4 11.3.1 (LSB) x+5 x+6 X Resolution x+7 x+8 Y Resolution x+9 X Resolution (UINT16) In resolution-specified bitmap fonts, this field specifies the resolution of the font in the X dimension in dots per inch. 11.3.2 Y Resolution (UINT16) In resolution-specified bitmap fonts, this field specifies the resolution of the font in the Y dimension in dots per inch. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 103 Fonts 11.4 Character Enhancement Segment The CE (Character Enhancement) segment is used to indicate if a downloaded font is allowed to use the printer’s character enhancement algorithms. It allows soft-font vendors and ISVs to use the printer’s algorithms to enhance their fonts. The structure of the CE segment is: Byte 15 (MSB) 8 17 (LSB) 0 Byte x CE x+1 x+2 Segment Size x+3 x+4 x+5 x+6 Style x+7 x+8 11.4.1 x+9 x+10 Stroke Weight x+11 x+12 Sizing x+13 Style (UINT32) This field specifies the style treatments that the printer is allowed to apply to the font characters. Style Word = Posture + Structure 31 12 11 Structure Bit Positions (#) = = 11.4.2 4 3 Reserved 0 Posture Posture 1 italics 0,2,3 reserved Structure 12 Outline 13 Shadow 14- 31 reserved Stroke Weight (UINT32) This field specifies the stroke weight (thickness of the font character strokes) for the printer to apply to the font. 15 9 Bolding 104 8 7 0 Lightening HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Fonts Bit Positions (#) 11.4.3 = StrokeWeight 0-6 reserved 7 Semi Light 8 “Book” or “Text” 9 Semi-Bold 10 Demi-Bold 11 Bold 12 Extra Bold 13 Black 14 Extra Black 15 Ultra Black Sizing (UINT16) This field specifies the algorithmic size transformations that can be applied to the font. The operation can apply to either the X or Y dimension of the characters. Sizing Word = Reduction + Expansion 15 8 7 Expansion Bit Positions (#) 0 Reduction = = Reduction 0 0.5 X dimension 1 0.5 Y dimension 2 - 7 reserved Expansion 8 1.5 X dimension 9 1.5 Y dimension 10 2 X dimension 11 2 Y dimension 12 - 15 reserved HP DeskJet 600, 700, 800 and HP 2000 Series printers support only 0.5 X/Y, 1.5 X/Y, and 2 X/Y. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 105 Fonts 11.5 Dual-Pitch-Space Char Segment The DP (Dual-Pitch-Space Character Code) segment is used to specify the space character code for full-width spacing (two-byte characters) and half-width spacing (one-byte characters). The structure for the Dual-Pitch-Space Character Code segment is as follows: Byte 15 (MSB) 8 7 (LSB) 0 x DP x+1 x+2 Segment Size x+3 x+4 11.5.1 Byte x+5 x+6 Full-Width-Space Character Code x+7 x+8 Half-Width-Space Character Code x+9 Full-Width-Space Character Code (UINT16) This field contains the character code for a full-width space character (for two-byte character sets). 11.5.2 Half-Width-Space Character Code This field contains the character code for a half-width space character (for one-byte character sets). 106 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP LaserJet Bitmap Character Definition 12.0 HP LaserJet Bitmap Character Definition The format for the HP LaserJet bitmap character definition and continuation block is shown below. Format is set to 4, and Descriptor Size is set to 14. Byte 15 (MSB) 8 7 (LSB) 0 0 Format (4) Continuation (0) 2 Descriptor Size (14) Class (1) 4 Orientation Reserved (0) 6 Left Offset 8 Top Offset 10 Character Width 12 Character Height 14 Delta X 16 Bitmap Character Data: (in bytes) .... Format (4) 0 2 12.0.1 Continuation (non-zero) Bitmap Character Data: (in bytes) .... Format (UBYTE) Specifies the character descriptor format. Value 0 1 3 4 5 6 7 8 9 19 12 15 Format 82906A 82450A QuietJet LaserJet bitmap DeskJet PaintJet PaintJet XL RuggedWriter DeskJet PLUS Intellifont DeskJet 500 TrueType The character is discarded if the format is different from that expected by the device. ! HP DeskJet 600 and 85X Series printers support only format 4. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 107 HP LaserJet Bitmap Character Definition 12.0.2 Continuation (BOOL) Specifies whether the following data is a character descriptor block (0) or a continuation (nonzero) of the data associated with the previous character descriptor. If the byte count in the value field of the Define Character command exceeds 32767, the character must be sent in 2 or more blocks. The additional bytes are sent in as many continuation blocks as needed (except compound characters). Compound characters (e.g., accented characters) cannot be continued. A character that has not received all the character data is an “incomplete” character. There is at most one incomplete character at a time. If an incomplete character is deleted, any subsequent continuation downloads are ignored. A continuation block that is downloaded before the first block was received is ignored. 12.0.3 Descriptor Size (UBYTE) Specifies character descriptor size in bytes. The descriptor follows the character header, which consists of the first two bytes of the character definition (the Format and Continuation fields). For bitmap characters, the descriptor size includes Descriptor Size through Delta X. For Intellifont characters, the descriptor size includes only Descriptor Size and Class. For TrueType characters, the descriptor size includes Descriptor Size and Class, but additional descriptor information can follow; therefore, the minimum TrueType descriptor size is 2. Value 6 7 2 2+ 14 12.0.4 Device DeskJet (Format 5 or 9 character descriptor) DeskJet (Format 12 character descriptor) Intellifont TrueType (additional descriptor information can be added) LaserJet bitmap Class (UBYTE) Specifies the format of the character data. Value 1 2 3 4 15 Class Bitmap Compressed bitmap Intellifont Compound Intellifont TrueType Class 1: Bitmap Data - Class 1 character data is a string of bytes containing the dot-per-bit image of the character, with no compression. A “1” bit causes the dot to be printed. The data is grouped in dot rows describing a one-dot high strip of the character from left to right in the direction of the printer’s raster scan. The dot rows are organized from top to bottom 108 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP LaserJet Bitmap Character Definition of the character (in portrait orientation): the first dot row of data corresponds to the first dot row of the character. The end of each row is padded with zero bits so it contains an integral number of bytes. The number of bytes of the character data should be exactly the Character Width (in bytes) times the Character Height. Additional data is discarded. The character will consist only of the downloaded character data, even if this is insufficient. Class 2: Compressed Bitmap Character Data - (see the figure below) Class 2 character data is composed of a string of bytes using a compressed run-length-with-line-repetition format. The first byte tells how many times the first row is repeated after the initial row. The second byte tells how many white dots start the row (if the first dot is black, the second byte is 0). The third byte tells how many black dots follow, the fourth byte tells how many white dots follow that, etc., until the end of the row. The character width (dots) field in the character descriptor determines the row width: the dot count for each row in the character cell must equal the character width. For example, in the following figure, the cell width is 20; thus each row (excluding the repetition count byte) adds up to 20. The fully described row is duplicated the number of times indicated by its first byte. After the duplication, the next byte indicates the repetition count for the next row. More than 255 dots of the same type in a row is indicated by a byte containing 255, followed by a byte containing 0 (meaning there are none of the opposite type of dots), followed by a byte containing the count of the remaining dots of the current type. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 109 HP LaserJet Bitmap Character Definition Character Height Left Offset Line Repetition Character Width Padding for Byte Alignment* Number Number Number Number Number Number White Black White White Black Black Pixels Pixels Pixels Pixels Pixels Pixels 2 0 20 - - - - 0 0 2 6 4 6 2 0 0 1 7 4 7 1 12 8 4 8 - - - 1 5 10 5 - - - *Byte alignment is necessary only for raster data (i.e., not for compressed raster data). Uncompressed - 60 bytes Compressed - 25 bytes Class 2 Compressed Bitmap Character Data 110 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP LaserJet Bitmap Character Definition 12.0.5 Orientation (UBYTE) Bitmap fonts only. Specifies the orientation of the character. Character orientation must match the orientation in the font descriptor, as follows: Value 0 1 2 3 Orientation Portrait Landscape Reverse-portrait Reverse-landscape The character is discarded if the orientation is not supported or is different from the font orientation. 12.0.6 Left Offset (SINT) Bitmap fonts only. Specifies the distance in dots from the reference point to the left side of the character pattern on the physical page coordinate system (i.e. this value is orientation dependent). The left and top offsets locate the character reference point about CAP. HP DeskJet 600 and 85X Series printers recognize a range of -16384 to 16384. 12.0.7 Top Offset (SINT) Bitmap fonts only. Specifies the distance in dots from the reference point to the top of the character pattern on the physical page coordinate system (i.e. this value is orientation dependent). The left and top offsets locate the character reference point about CAP. HP DeskJet 600 and 85X Series printers recognize a range of -16384 to 16384. 12.0.8 Character Width (UINT) Bitmap fonts only. Specifies the width of the character in dots on the physical coordinate system (i.e. this value is orientation dependent). Generally, this width is from the farthest left black dot to the farthest right black dot. HP DeskJet 600 and 85X Series printers recognize a range of 1 to 16384. 12.0.9 Character Height (UINT) Bitmap fonts only. Specifies the height of the character in dots on the physical coordinate system (i.e. this value is orientation dependent). HP DeskJet 600 and 85X Series printers recognize a range of 1 to 16384. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 111 HP LaserJet Bitmap Character Definition 12.0.10 Delta X (SINT) Bitmap fonts only. Specifies the number of quarter-dot units (radix dots) by which the horizontal position within the HP PCL logical page coordinate system is incremented after printing the character. If the value field is negative, the value is set to 0. This value is used by the printer only when the font is proportionally spaced. 12.0.11 Character Data The character data is in the format specified by the class field. 112 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Banner Printing 13.0 Banner Printing The following information concerns the printing of continuous forms (banners, z-fold media) on the HP DeskJet 680 and 690 Series printers. This is the only information made available by the VCD R&D lab. There are no new HP PCL commands for banner printing. The only HP PCL command that has actually been modified in association with printing on continuous media is the command. Only media sizes (as selected with the Media Size command) US Letter and ISO/JIS A4 can be used for continuous form printing. 13.0.1 Media Source Esc & l # H The HP DeskJet 680 and 690 Series printers add support for sources -1 (z-fold) and 1 (Tray 1, cut sheet). Default media source is Tray 1. Note that the value used for the variable parameter in the command (“#”), like the rest of the command, is an ASCII character string. Therefore, a value of “-1” would actually be sent to the printer as a hex equivalent of “2E 31”. ! The HP DeskJet 680 and 690 Series printers support values -1, 0, and 1. When the media source is z-fold, a value of ”0” will eject one blank page. If media remains in the mechanism, the printer will enter a paper-unloading state (see Unloading Continuous Media, below). In this state, the top LED on the face of the printer will flash, and pressing the RESUME button will advance one page. The banner source is only supported for media sizes (see Esc & l # A) of US-Letter (11 inches) and ISO/JIS A4 (11 2/3 inches). All other media sizes will only load from the cut sheet media source (Tray 1). This is to ensure that only banners of lengths HP has tested will be printed. If the printer runs out of paper in the middle of a banner, the rest of the banner data (until the Esc & l 0 L) will be discarded. There will be no front panel indication when this data is discarded. In the absence of bidirectional communication, if Tray 1 is selected while continuous media is loaded at the paper sensor, the mechanism will print the cut sheet job on the continuous media, as if it were a cut sheet job. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 113 Banner Printing 13.0.2 Margins Margins in banners are handled the same as margins with cutsheet media. Default top and bottom margins are 1/2 inch. If perforation skip is disabled (Esc * l 0 L), the margins are adjusted to 0 top and bottom. The initial cursor (CAP) position in each page is calculated by: top margin + (3/4 * current line feed) {where current line feed = 1/lines per inch} With perf skip disabled, the default cursor position is: 0 + (3/4 * 1/6 inch) = 1/8 inch To position raster graphics at position 0, it is necessary to execute a negative cursor move. For example Esc * p - 38 Y will move backwards 1/8 inch. Esc * p 0 Y also works when perf skip is disabled 13.0.3 Command Sequence The media source must be selected for Continuous Forms before the negative cursor move is performed, as the Media Source command will default the cursor position to the top left corner of the defined logical page. In most cases, this defaulting action will leave some amount of top margin, resulting in a gap appearing in the banner image at the media perforation. By setting the media source first, and following that command with the negative cursor move, banner images can be printed. Remember that the negative cursor move must be performed at the beginning of each new page. 13.0.4 Moving to a New Logical Page Since raster graphics moves are clipped to the current logical page, it is necessary to explicitly move to a new page once the current page is filled. As shown in the HP PCL example on the following page, this may be accomplished by sending a form feed (followed by the appropriate cursor positioning). Raster graphics advances never move to the next page, any excess rasters (raster data that would exceed the logical page boundary) will be discarded. If a raster block spans a page boundary, it must be sent as multiple blocks, along with the appropriate cursor positioning to align on the physical media. For text printing on continuous media, line feeds or form feeds may be used to advance to the next logical page. 13.0.5 Unloading Continuous Media When the printer has completed a continuous-media print job, it will advance the paper to the end of the page after the current page. If media remains in the mechanism, the top LED will flash. Pressing the Resume button will advance one page. Media must be removed and reinserted between each banner print job. 114 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Banner Printing 13.0.6 Power-On with Continuous Media The firmware will remember what media type is loaded. If powered down with continuous media loaded, the firmware will power on with the top LED flashing (as described above) allowing the user to unload the continuous media if cutsheet media is desired for the next print job. 13.0.7 Power-Off with Continuous Media If the Power key is pressed while in the middle of a banner page, the media will first be advanced to the next top of form before turning the printer off. Any unprinted data will be lost. 13.0.8 Printing Cutsheet with Z-Fold Media Attempting to print cutsheet media while z-fold media is loaded and there exists a bidirectional I/O connection between the host and printer, will halt the printer in an error state. Power cycling will clear the error. Without a bidirectional I/O connection, the printer will format and print the cutsheet job on the z-fold media. 13.1 Sample HP PCL for a Banner Print Job HP PCL Command Escape Sequence Notes Reset Esc E Set HP PCL to default state Media Source Esc & l -1 H Continuous Forms Media Size Esc & l 2 A US Letter Perf Skip Off Esc & l 0 L Top/Bottom margins set to zero CAP Position Esc * p -300 Y or Esc * p 0 y Move to top of logical page (move is clipped to page) Transfer Rasters Esc * b # V/W Image data for one page Form Feed FF Move to next logical page CAP Position Esc * p -300 Y or Esc * p 0 y Move to top of logical page (move is clipped to page) Transfer Rasters Esc * b # V/W Image data for another page Form Feed FF Move to next logical page Eject Banner Esc & l 0 H Advances one more page and allows user unloading Reset Esc E Set HP PCL to default state for next job Spaces are included in the escape sequences in the preceding example to enhance readability. Spaces should not be included in the actual escape sequences sent to the printer. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 115 HP PCL Code Samples 14.0 HP PCL Code Samples The following pages contain PCL code samples that are intended to address some of the most commonly asked support questions. Key among these questions are coding general page formatting, 4-plane color graphics, and using Configure Raster Data (CRD). 14.1 Page Formatting Program Example The following example is old, but covers the essential page formatting commands. While there is no one best way to write a page formatting program, you can use this example as a starting point. When performed in the order given, the set of commands prints the output shown in the figure at the end of the example. The example assumes the following formatting objectives: 4 4 4 4 4 4 4 4 ! 116 Select US Letter size paper Select portrait page orientation Set 3/4 in. top, left, and right margins Set 11/4 in. bottom margin Establish a header centered approximately in the middle of the top margin Establish a footer 5/8 inch from the bottom of the paper Set line spacing at 8 lpi Use Letter Gothic and CG Times typefaces No assumption is made as to the status of the configuration switches. Command Line, Action Command Comment Reset Printer Esc E Returns the printer to its default settings. * Set Paper Size Esc & l 2 A Selects U.S. Letter size paper 8 1/2 X 11 in. * Set Portrait Orientation Esc & l 0 O Enable Perforation Skip Mode Esc & l 1 L Default top margin is 1/2 in. Set Line Spacing Esc & l 8 D 8 lpi is used for page length and margin calculations. Specify Page Length Esc & l 88 P 11 in. X 8 lpi = 88 lines Set Top Margin Esc & l 6 E 3/4 in. margin X 8 lpi = 6 lines HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Code Samples Command Line, Action Command Comment Set Text Length Esc & l 72 F 11 in. page length - [3/4 in. margin + 1 1/4 in. bottom margin] = 9 in. 9 in. X 8 lpi = 72 lines Specify Fixed 12 cpi Esc (s 0 p 12 H 12 cpi is used to set columns for side margin calculations. Set Left Margin Esc & a 6 L 3/4 in. margin = [6 columns X 12 cpi (selected font pitch)] + 1/4 in. unprintable region Set Right Margin Esc & a 90 M Page width is 8 1/2 in. The unprintable region accounts for 1/4 in. leaving 8 1/4 in. (99 columns at 12 cpi). To set the 3/4 in. margin set the page width at 7 1/2 in. (90 columns at 12 cpi). Position CAP for Header Esc * p - 95y + 475 X Relative movement. 95 decipoints up 475 decipoints to the right. Select Character Set Esc (12U Selects PC-850 character set. Select Header Font Esc (s 6 h 12 v 0 s 3 b 6 T Sets font to Letter Gothic 6cpi 12 point bold. Header Text DeskJet Printer Family 9/48 Esc & l 9 C Provides a desirable line spacing for 12 point font used in main text. End Header Moves CAP out of header and positions it at top/left margin. Set Main Text Font Esc (s 1p 12v 0s 0b 4101T Sets font to CG Times 12 point. Main Text In February 1988 HP introd..... Position CAP for Footer Esc * p 2875 y 1800 X Absolute movement Specify Footer Font Esc (s 0p 24h 6v 0s 0b 6T Sets font to Letter Gothic Esc E Clears partially composed pages; returns printer to default settings. Set VMI to in. Footer Text Reset Printer HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 117 HP PCL Code Samples 14.2 Commands Sent to Printer The series of escape sequences in the table above sends the following commands to the printer. The series of dots (...) indicate main text. Spaces in escape sequences are for clarity only; do not include them in the data stream. EscE Esc&l2a0O Esc&k1w5W Esc& l1l8d88p6e72F Esc(s0p12H Esc&a6l90M Esc*p95y+475X Esc(12U Esc(s6h12v0s3b6TDeskJet Printer Family Esc(& l9C Esc(s1p12v0s0b4101TIn February 1988, HP introduced the original DeskJet printer at a U.S. List price of $995. The DeskJet's market position was “Laser Quality Output for Under $1,000” and offered a superior print quality alternative for users intending to upgrade to 24 wire dot matrix printers. In April 1989... ...support for MS Windows 3.0. Esc*p2875y1800X Esc(s0p24h6v0s0b6TCopyright 1990 Hewlett-Packard Co. EscE This example is a guideline to illustrate page formatting. Depending upon the application, other methods may be used to achieve the desired printed page. For example, if you want a header and/or footer to be placed on each page, you can turn Perforation Skip Mode OFF, allowing the header to sit at the top margin. You can then use vertical positioning commands to move CAP into position for the main text. Likewise, you can set the printer side margins to 0. You can then use horizontal positioning commands to position CAP for the start of each line. 118 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Code Samples 14.3 3-Plane Color Graphics The following shows a simple 3 plane color graphics PCL code sample that prints CYAN, MAGENTA, YELLOW, then blends them together to produce BLACK, RED, GREEN and BLUE. PCL Codes HEX Data (Run Length Compression) Description E Reset printer *r-3U Simple color(3 plane) *r0A Start raster *b1M Compression method *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *b16V 08FF 0800 0800 0800 08FF 0800 08FF 08FF (Cyan data) *b16V 0800 08FF 0800 0800 08FF 08FF 0800 08FF (Magenta data) *b16W 0800 0800 08FF 0800 08FF 08FF 08FF 0800 (Yellow data) *rC End Raster E Reset printer HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 119 HP PCL Code Samples 14.4 4-Plane Color Graphics The following shows a simple 4 plane color graphics PCL code sample that prints BLACK, CYAN, MAGENTA, YELLOW, then blends them together to produce BLACK, RED, GREEN and BLUE. PCL Codes HEX Data (Run Length Compression) E Reset printer *r-4U Simple color(4 plane) *r0A Start raster *b1M 120 Description Compression method *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide HP PCL Code Samples PCL Codes HEX Data (Run Length Compression) Description *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *b18V 08FF 0800 0800 0800 0100 0800 0800 0800 0800 (Black data) *b18V 0800 08FF 0800 0800 0100 08FF 0800 08FF 08FF (Cyan data) *b18V 0800 0800 08FF 0800 0100 08FF 08FF 0800 08FF (Magenta data) *b18W 0800 0800 0800 08FF 0100 08FF 08FF 08FF 0800 (Yellow data) *rC End Raster E Reset printer HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 121 Printer Commands 15.0 Printer Commands Escape Sequence Action - Result Escape Sequence Action - Result Esc & a # C Move CAP Horizontal (Columns) aEsc Mechanical Print Quality Esc & a # H Move CAP Horizontal (Decipoints) Esc * p # X Move CAP Horizontal (HP PCL Units) Esc & a # L Left Side Margin Column # Esc * p # Y Move CAP Vertical (HP PCL Units) Esc & a # M Right Side Margin Column # Esc * r # A Start Raster a Move CAP Vertical (Rows) Esc * r C End Raster a Move CAP Vertical (Decipoints) a Raster Graphics Quality a Dry Timer ( in seconds) Esc * r # S Source Raster Width Esc & d # D Enable Underline Esc * r # U Simple Color Esc & d @ Disable Underline Esc * t # R Raster Resolution Esc & k # G Line Termination Esc * v # S Foreground Color Esc & k # H Horizontal Motion Index (HMI) Esc ( # X Font Selection by ID - Primary Esc & l # A Page Size Esc ) # X Font Selection by ID - Secondary Esc & l # C Vertical Motion Index (VMI) Esc ( ID Font Symbol Set - Primary aEsc Gray Balance Esc ) ID Font Symbol Set - Secondary Esc & l # D Line Spacing (in lines per inch) Esc ( s # B Font Stroke Weight - Primary a Seed Row Source Esc ) s # B Font Stroke Weight - Secondary Esc & l # E Top Margin (in lines at current lpi) Esc ( s # H Font Pitch - Primary (in CPI) Esc & l # F Text Length Esc ) s # H Font Pitch - Secondary (in CPI) Esc & l # H Media Source Esc ( s # P Font Spacing - Primary Esc & l # L Perforation Skip Mode Esc ) s # P Font Spacing - Secondary Esc & l # M Media Type Esc ( s # Q Font Quality - Primary Esc & l # O Orientation Esc ) s # Q Font Quality - Secondary Esc & l # P Page Length (in lines-current lines per inch) Esc ( s # S Font Style - Primary Esc & s # C End-of-Line Wrap Esc ) s # S Font Style - Secondary Esc * b # M Compression Method Esc ( s # T Font Typeface - Primary Esc * b # V Transfer Raster by Plane Esc ) s # T Font Typeface - Secondary Esc * b # W Transfer Raster by Row/Block Esc ( s # V Font Height - Primary (in points) Esc * b # Y Raster Y Offset Esc ) s # V Font Height - Secondary (in points) Esc * c # D Font ID Esc ( s # W Download Character Esc & a # R Esc & a # V Esc & b # T *b#B Esc * b # S 122 *o#Q Esc * r # Q HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide Printer Commands Esc * c # E Character Code Esc ) s W Download Font Esc * c # F Font Control Esc Y Display Functions Mode On Esc * o # M Print Quality Esc Z Display Functions Mode Off a. Obsolete commands for 6XX printers and above. HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide 123 Other Resources for Assistance 16.0 16.1 Other Resources for Assistance HP Developer Exchange Available on the World Wide Web - HP Printing & Imaging Solution Provider Program. Become a registered HP Developer, and receive other documents like this one on other HP products. HP Printing & Imaging Solution Provider Program can be found at: http://dsportal.eservices.hp.com/dspp/home/home_DSPPJumpPage_IDX/ 16.2 Comments & Feedback Feedback on this guide is welcome - send any errors you may find VAC_DESKJET@HP.COM. Please note - this email address is not for technical support and you may not receive a personalized response from this email address. 124 HP DeskJet 600, 700, 800, 900 & HP 2000 Series PCL Developer’s Guide to:
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No Creator : PCL DEVELOPER'S GUIDE, REV 6.0.FM Create Date : Monday, December 06, 1999 8:57:13 PM Title : PCL Developer's Guide, rev6.0 Author : Hewlett-Packard Producer : Acrobat PDFWriter 3.02 for Windows Subject : Modify Date : 2001:09:13 13:55:14-07:00 Page Count : 124EXIF Metadata provided by EXIF.tools