Part I Click here to access Part II on hp.com.
PCL 5 Printer LanguageTechnical Reference Manual HP Part No.
Notice This document contains proprietary information which is protected by copyright. All rights are reserved. No part of this document may be photocopied, reproduced, or translated to another language without the prior written consent of Hewlett-Packard Company. The information contained in this document is subject to change without notice.
Printing History This manual was created using HP Tag/Vectra software on an HP Vectra Personal Computer. The body text is printed in Helvetica fonts. The camera-ready copy was printed on an HP LaserJet IIISi printer with Resolution Enhancement technology (REt) and was then reproduced using standard offset printing. First Edition – October 1992 NOTICE This document is the current edition of the technical reference manual for PCL 5 and earlier printers.
Trademark Credits Intellifont and Garth Graphic are U.S. registered trademarks of Agfa Division, Miles Inc. CG Triumvirate and Shannon are trademarks of Agfa Division, Miles Inc. CG Bodoni, CG Century Schoolbook, CG Goudy Old Style, CG Melliza, Microstyle, CG Omega, CG Palacio, CG Times and CG Trump Mediaeval are products of Agfa Division, Miles Inc. CG Times, a product of Agfa Division, Miles Inc., is based on Times New Roman, a U.S. registered trademark of Monotype Corporation plc. PCL, and Vectra are U.
Inside This Manual What You Can Learn From This Manual Hewlett-Packard has developed a standard set of printer features for use in all HP printers. Printer features are accessed through the corresponding commands of Hewlett-Packard’s PCL language. This manual describes the PCL 5 printer language. This includes descriptions of the commands available for Hewlett-Packard PCL 5 LaserJet printers and the basic requirements of PCL language programming.
Note Since actual implementation of printer commands within software applications varies from package to package, specific examples are not given. For examples of printer command usage with many popular software packages, refer to HP’s Software Application Notes, provided with the printer. The most current versions of software application notes can be obtained through the HP Forum on CompuServe, by fax using the HP FIRST fax service, or through HP’s literature distribution.
Chapter 5 - Page Control Commands This chapter describes the commands providing page format control. Page format control allows you to select the page source, size, orientation, margins, and text spacing. Chapter 6 - Cursor Positioning This chapter describes how to position the cursor within the logical page. Chapter 7 - Fonts This chapter describes basic font information including font characteristics.
Chapter 13 - The PCL Print Model This chapter describes the PCL print model which allows for special effects when printing. Chapter 14 - PCL Rectangular Area Fill Graphics This chapter describes how to define and fill a rectangular area with one of the predefined PCL patterns, or with a user-defined pattern. Chapter 15 - Raster Graphics This chapter describes how to download raster graphics to the printer, and includes various techniques for reducing the amount of data needed to define the raster image.
Chapter 19 - The Configuration and Status Group This chapter describes the commands used to set default conditions and values for programmable HP-GL/2 features. It also explains the commands used for scaling, establishing a soft-clip window, and rotating the HP-GL/2 coordinate system. Chapter 20 - The Vector Group This chapter provides information about pen movement and drawing lines, arcs, and circles. It also covers a way to encode coordinates for increased print speed.
Related Documentation The following related manuals provide further information about HP LaserJet printers, including their features and functions. PCL 5 Comparison Guide This document contains supplemental information for programming PCL 5 LaserJet printers. It identifies how different HP PCL 5 LaserJet printers implement the commands described in the HP PCL 5 Printer Language Technical Reference Manual.
Contents Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii Printing History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Trademark Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv Inside This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Print Environment Factory Default Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2 User Default Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6 Modified Print Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-7 Resetting the Print Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-8 Printer Reset. . . . .
Cursor Positioning Absolute vs. Relative Cursor Positioning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-2 Cursor Positioning Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-3 PCL Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-3 Decipoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-4 Columns & Rows . .
PCL Font Selection Primary and Secondary Fonts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-5 Font Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-5 Symbol Set Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-6 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User-Defined Symbol Sets Symbol Set ID Code Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-2 Define Symbol Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-4 Header Size (UI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-5 Encoded Symbol Set Designator (UI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10-6 Format (UB) . . . . . . . . . . . . .
Underline Position (Distance) (SB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-29 Underline Thickness (UB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-29 Text Height (UI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-29 Text Width (UI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11-29 First Code (UI) . . . . . . . . . . . . . . . . . . . . . . .
Macro Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-7 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-8 Macro Control Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12-9 The PCL Print Model Command Sequence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Raster Graphics Presentation Mode Command . . . . . . . . . . . . . . . . . . . . . . . . . . .15-8 Raster Height Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-11 Raster Width Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-13 Start Raster Graphics Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15-14 Raster Y Offset Command . . . . . . . . . . . . . . . . . . . . . . . . . .
An Introduction to HP-GL/2 Vector Graphics Learning HP-GL/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-2 HP-GL/2 Commands and Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-3 Understanding HP-GL/2 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-6 Notations Used to Express Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17-8 Omitting Optional Parameters. .
The Configuration and Status Group Establishing Default Conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-3 The Scaling Points P1 and P2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-4 Using the Scale Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19-4 Using Scaling Effectively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Polygon Group Using the Polygon Buffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-2 Drawing Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-3 Drawing Wedges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21-6 Drawing Polygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Character Group Printing Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23-3 Moving to the Carriage Return Point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23-5 Control Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23-6 Default Label Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23-7 Enhancing Labels . . . . .
SR, Relative Character Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23-81 Example:Using the SR Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23-83 SS, Select Standard Font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23-85 TD, Transparent Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23-86 Programming Hints PCL Command Parsing. . . . . . . . . . . . .
Contents-14 EN
1 Introduction to HP PCL PCL PRINTER LANGUAGE HISTORY Hewlett-Packard created the PCL printer language (simply referred to as “PCL” elsewhere in this manual) 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 PCL to provide the optimal price and performance balance. PCL 5 represents a new breakthrough in price/performance leadership.
PCL Printer Language Architecture PCL printer language structure has been useful to guide language functionality growth and command syntax definition. The PCL printer language has evolved through five major levels of functionality driven by the combination of printer technology developments, changing user needs, and application software improvements.
What are Printer Commands? PCL printer commands provide access to printer features. There are four general types of HP printer language commands: z control codes z PCL commands z HP-GL/2 commands z PJL commands 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. PCL Commands PCL commands provide access to the printer’s PCL control structure.
HP-GL/2 Commands HP-GL/2, vector graphic commands are two letter mnemonic codes designed to remind you of the function name (such as IN for Initialize). Following the two letter mnemonic may be one or more parameters, which identify details of how to process the command. For additional information on HP-GL/2 commands, refer to Chapters 17 through 23. PJL Commands PJL (Printer Job Language) commands provide a different type of printer control.
Syntax of Escape Sequences There are two forms of PCL escape sequences: two-character escape sequences and parameterized escape sequences. Two-Character Escape Sequences Two-character escape sequences have the following form: ?X where “X” is a character that defines the operation to be performed. “X” may be any character from the ASCII table within the range 48-126 decimal (“0” through “~” - see Appendix A).
Parameterized Escape Sequences Parameterized escape sequences have the following form: ? 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.
The following is an example of an escape sequence with a termination character and no parameter character. This escape sequence performs a single function. Notes Some escape sequences shown in this manual contain spaces between characters for clarity. Do not include these spaces when using escape sequences. Also, in the escape sequence a script “l” is used to indicate a lower case “l” for clarity. The following is an example of an escape sequence with a parameter character and a termination character.
Use these three rules to combine and shorten printer commands: 1 The first two characters after “?” (the parameterized and group character) must be the same in all of the commands to be combined. In the example above, these are “&” and “l”. 2 All alphabetic characters within the combined printer command are lower-case, except the final letter which is always upper-case. In the combined example above, “O” becomes “o”.
2 The Page Introduction This chapter describes the PCL coordinate system. It defines the logical page and the printable area; it introduces the HP-GL/2 (vector graphics) picture frame, and identifies the boundaries of each.
Logical Page The PCL logical page (also referred to as the PCL addressable area) defines the area in which the PCL cursor can be positioned. Although the printer does not actually have a cursor (like the blinking underline character used on most computer terminals), the cursor position refers to the Currently Active Position of the cursor (also referred to as the CAP). The location of the “cursor” is the position on the logical page where the next character will be positioned.
Printed Dots The high quality output achieved by HP LaserJet printers is due in part to the ability to lay down a fine grid of “dots” on the page. The density of this grid is referred to as the printer’s resolution. From the first HP LaserJet (the “LaserJet Classic”) until recently, all HP LaserJet family printers printed at a resolution of 300 dots-per-inch.
PCL Coordinate System The PCL coordinate system is defined as shown in Figure 2-2. Figure 2-2 X,Y PCL Coordinates The point (0,0) is at the intersection of the left edge of the logical page and the current top margin position. Note 2-4 The Page Since the point (0,0) is always at the intersection of the left edge of the logical page and the current top margin position, it moves if the top margin is changed, and rotates around the page if the orientation is changed.
Units of the PCL Coordinate System The units of the X-axis of the PCL coordinate system may be PCL Units, decipoints, or columns. The units of the Y-axis may be PCL Units, decipoints, or rows. PCL Units These are user-definable units of measure which are used in PCL commands affecting various PCL cursor moves. The number of units-per-inch used in PCL cursor moves is determined by the current setting of the Unit of Measure command (see “Unit of Measure Command” in Chapter 4).
HP-GL/2 Picture Frame In addition to text and raster graphics, HP-GL/2 vector graphics can be placed on the PCL logical page. HP-GL/2 vector graphics are incorporated using the concept of the HP-GL/2 picture frame (see Figure 2-3). Within this picture frame, HP-GL/2 uses its own coordinate system and units of measure. The HP-GL/2 coordinate system and units are described in detail in Chapter 17, An Introduction to HP-GL/2 Vector Graphics, and Chapter 18, The Picture Frame.
Printable Area The printable area is the area of the physical page in which the printer is able to place a dot. The physical page refers to the size of the media (letter, legal, etc.) installed in the printer. The relationship between physical page, logical page, default picture frame, and printable area is defined in Table 2-1 and Table 2-2.
Table 2-2 Landscape Logical Page & Printable Area Boundaries DIMENSIONS (at 300 DPI - double for 600 DPI) PAPER SIZE A B C D E F G H LETTER 3300 2550 3180 2550 60 0 50 150 Legal List 1 4200 2550 4080 2550 60 0 50 150 LEDGER 5100 3300 4980 3300 60 0 50 150 EXECUTIVE 3150 2175 3030 2175 60 0 50 150 A4 3507 2480 3389 2480 59 0 50 150 A3 4960 3507 4842 3507 59 0 50 150 COM-10 2850 1237 2730 1237 60 0 50 150 MONARCH 2250 1162 2130 1162
The HP LaserJet printers perform pixel-level clipping. When printing characters or graphics, if any portion of the character cell or graphic is outside the printable area, only that portion outside the printable area is clipped (see Figure 2-4). Figure 2-4 Printable Area Character Cell Positioning Notes Pixel level clipping can also occur at the logical page for PCL when the page is positioned using the Left Registration command. Pixel level clipping also occurs at the picture frame for HP-GL/2.
2-10 The Page EN
3 The Print Environment Introduction The group of all of the printer’s current feature settings, collectively, is referred to as the print environment. The printer maintains four print environments: the Factory Default Environment, the User Default Environment, the Modified Print Environment and the Overlay Environment. This chapter describes the Factory Default Environment, the User Default Environment, and the Modified Print Environment (the Overlay Environment is described in Chapter 12, Macros).
Factory Default Environment A factory default is a feature setting programmed into the printer at the factory. The group of all of the printer’s feature settings set to their factory settings is referred to as the Factory Default Environment. These features are described in this manual. Since the HP-GL/2 features are used for HP-GL/2 operation only, the print environment features are separated, for convenience, into two lists or contexts: PCL and HP-GL/2.
Table 3-1 Factory Default Print Environment Features – PCL Context (continued) PAGE CONTROL FONT MANAGEMENT Print Direction Font ID Orientation2 Character Code Page Size2 Symbol Set ID Paper Source RASTER GRAPHICS Vertical Motion Index2 Horizontal Motion Index2 Left Graphics Margin Resolution Top Margin Compression Mode Text Length Raster Height Left Margin Raster Width Right Margin Raster Graphics Presentation Mode Perforation Skip PICTURE FRAME Line Termination Picture Frame Widt
Table 3-1 Factory Default Print Environment Features – PCL Context (continued) RECTANGULAR AREA FILL TROUBLESHOOTING Horizontal Rectangle Size End-of-Line Wrap Vertical Rectangle Size Display Functions Pattern (Area Fill) ID STATUS READBACK Current Location Type Current Location Unit 1. The font characteristics are determined by the default font.
Table 3-2 Factory Default Print Environment Features – HP-GL/2 Context CHARACTER GROUP POLYGON GROUP Symbol Set Polygon Buffer Font Spacing Polygon Mode Pitch LINE AND FILL ATTRIBUTE GROUP Height Line Type Posture Line Type Repeat Length Stroke Weight Line Cap Typeface Line Join Character Direction Miter Limit Character Direction Mode Pen Turret Character Size Mode Pen Width Character Width Pen Width Selection Mode Character Height Selected Pen Character Slant Symbol Mode Extra
User Default Environment There are several PCL features in the printer for which user defaults may be selected from the printer’s control panel. User default settings are stored in the User Default Environment and are retained even if the printer is turned OFF. Some of these features are listed below (for a complete set of the control panel user default features refer to Chapter 3 of the PCL 5 Comparison Guide.
Modified Print Environment The current printer feature settings constitute the Modified Print Environment. Whenever a feature setting is altered using escape sequences, the new setting is recorded in the Modified Print Environment. The Modified Print Environment is saved during a macro call or overlay and restored upon its completion. A Modified Print Environment consists of the current settings for the items listed in Table 3-1 and Table 3-2, with the exception of the items listed in Table 3-3, below.
Resetting the Print Environment Resets are used to return the printer to a known environment. Depending on the type of reset performed, the printer returns to either the User Default Environment or the Factory Default Environment. Printer Reset A Printer Reset restores the User Default Environment and deletes temporary fonts, macros, user-defined symbol sets, and patterns. A Printer Reset is performed by sending the ECE command, or through the printer’s control panel (see the printer User’s Manual).
Cold Reset A Cold Reset restores the Factory Default Environment which includes resetting the control panel items to their factory default settings. A Cold Reset is performed by power cycling the printer while holding [ON LINE] until a 08 COLD RESET is displayed.
3-10 The Print Environment EN
4 PCL Job Control Commands Introduction A job typically consists of three parts: z Commands providing job control. z Commands providing page control. z Print data. Table 4-1 Structure of a Typical Job ?%–12345X UEL Command (exit language) ?E Printer Reset Command. Preamble Job Control Commands. Page 1 Page Control Commands. Data Page Control Commands.1 Page 2 Data. • • • Page n • • • Page Control Commands. Data. ?E Printer Reset Command. ?%–12345X UEL Command (exit language). 1.
This chapter describes the commands providing job control. Job control commands are usually grouped together and sent at the beginning of a job. Page control commands and data are associated with each printed page of a job. Job control commands include the following: z Printer Reset. z Universal End of Language/Start of PJL. z Number of Copies. z Simplex/Duplex Print. z Left and Top Offset Registration. z Duplex Page Side Selection. z Job Separation. z Output Bin Selection.
Universal Exit Language Command The Universal Exit Language (UEL) command causes the PCL printer language to shut down and exit. Control is then returned to the Printer Job Language (PJL). Both PCL 5 and HP-GL/2 recognize this command. ?%–12345X Default = N/A Range = –12345 This command performs the following actions: Notes z Prints all data received before the Exit Language command. z Performs a printer reset (same effect as ? E). z Shuts down the PCL 5 printer language processor.
Number of Copies Command The Number of Copies command designates the number of printed copies of each page. ?&l#X # = Number of copies (1 to 32767 maximum) Default = 1 (Configurable from control panel) Range = 1-32767 (Values 32767 execute as 32767 values 1 are ignored. Maximum number of copies=99 for LaserJet II, IIP, III, IIID, IIIP and earlier LaserJet printers.) This command can be received anywhere within a page and affects the current page as well as subsequent pages.
Simplex/Duplex Print Command This command designates either simplex or duplex printing mode for duplex printers. Simplex mode prints an image on only one side of a sheet (page). Duplex mode prints images on both sides of a sheet. ?&l#S # = 0 - Simplex 1 - Duplex, Long-Edge Binding 2 - Duplex, Short-Edge Binding Default = 0 Range = 0-2 (Other values ignored) Long-Edge bound duplexed pages are bound along the length of the physical page (see Figure 4-2).
Figure 4-2 Long-Edge Binding Mode Figure 4-3 Short-Edge Binding Mode 4-6 PCL Job Control Commands EN
Left Offset Registration Command The Left (long-edge) Offset Registration command designates the position of the logical page across the width (short side) of the physical page. This command can be used to adjust the text position on the page to allow additional room for the page binding. ?&l#U # = The number of decipoints (1/720 inch) Default = 0 Range = –32767 to 32767 The value (#) is a signed number valid to 2 decimal places. The units are decipoints.
Top Offset Registration Command The Top (short-edge) Offset Registration command designates the position of the logical page along the length (long side) of the physical page. ?&l#Z # = The number of decipoints (1/720 inch) Default = 0 Range = –32767 to 32767 The value (#) is a signed number valid to 2 decimal places. The units are decipoints.
Figure 4-4 Short-Edge Binding Mode Offsets Figure 4-5 Long-Edge Binding Mode Offsets EN Top Offset Registration Command 4-9
Duplex Page Side Selection Command The Duplex Page Side Selection command causes a Form Feed and designates which side of the sheet to print. The ability to skip a page while duplexing may be required at certain locations in a document. For example, a chapter typically begins on the front side of a page.
Job Separation Command Job separation provides a means of identifying one print job from others in the printer’s output tray. It usually does this by physically offsetting one print job from the next. The Job Separation command toggles the printer’s separation mechanism. This command must be sent between each job to enable the separation mechanism. ?&l1T HP recommends that the Job Separation command be included at the end of each job, just before the Printer Reset command.
Output Bin Selection Command The Output Bin Selection command selects either of the two output paper bins (upper or lower [rear]) for paper output. ?&l#G # Note = 1 - Upper Output Bin 2 - Lower (Rear) Output Bin Default = Upper Output Bin Range = 1, 2 If this command is received by a printer which does not contain the dual output bin feature, it is ignored.
Unit of Measure Command The Unit of Measure command establishes the unit of measure for PCL Unit cursor movements. ?&u#D # =Number of units-per-inch Default = 300 Range = 96, 100, 120, 144, 150, 160, 180, 200, 225, 240, 288, 300, 360, 400, 450, 480, 600, 720, 800, 900, 1200, 1440, 1800, 2400, 3600, 7200. The value field defines the number of units-per-inch used in the following commands: z Vertical Cursor Position (PCL Units). z Horizontal Cursor Position (PCL Units).
The current unit of measure setting affects all PCL Unit moves, horizontal and vertical rectangle size, bitmap and scalable font metrics (how the cursor moves after printing a character). The Unit of Measure command does not affect the interpretation of binary raster data (bitmap fonts, raster graphics or patterns). Once the units of measure is changed, it stays in effect until another is selected or the printer is reset.
Figure 4-6 Cursor Moves at Different Unit of Measure Settings The printer’s physical dot size has no direct bearing on the size of PCL Units used in cursor movements. In addition, PCL Units are not affected by the current control panel or PJL resolution setting. Note EN If no other unit of measure value has been specified, then the default is one Unit equals 1/300 inch. In this case, a cursor movement of 450 Units moves the cursor 1.5 inches, whether printed at 300 or 600 dpi print resolution.
4-16 PCL Job Control Commands EN
5 Page Control Commands Introduction Page control commands and data are associated with each printed page of a job. These commands determine such features as page source, size, orientation, margins, and text spacing. This chapter describes the commands providing page format control. Note EN If a number of consecutive pages within a job have the same format, the associated page control commands should be sent only once for that group of pages.
Page Size Command The Page Size command designates the size of the paper which in turn defines the size of the logical page. ?&l#A PAPER: # = 1 - Executive (7¼ x 10½ in.) 2 - Letter (8½ x 11 in.) 3 - Legal (8½ x 14 in.) 6 - Ledger (11 x 17 in.) 26 - A4 (210mm x 297mm) 27 - A3 (297mm x 420mm) ENVELOPES: # Note = 80 - Monarch (Letter - 3 7/8 x 7½ in.) 81 - Com-10 (Business - 4 1/8 x 9½ in.
If the Page Size command selection differs from that of the installed paper tray size and the requested page size is not currently available in another non-secure source, then a message is displayed on the control panel requesting installation of a paper tray of the specified size. Note The Page Size command is not supported on the HP LaserJet,, LaserJet+, or the LaserJet 500+ printers.
PAPER SOURCE COMMAND The Paper Source command designates the location to feed paper, or it prints the current page. ?&l#H # = 0 - Print the current page (paper source remains unchanged). 1 - Feed paper from the a printer-specific tray. 2 - Feed paper from manual input. 3 - Feed envelope from manual input. 4 - Feed paper from lower tray. 5 - Feed from optional paper source. 6 - Feed envelope from optional envelope. feeder1 1 Must be used in conjunction with Page Size command, envelope selection.
Logical Page Orientation Command Orientation defines the position of the logical page and the default direction of print with respect to the physical page as shown in Figure 5-1. ?&l#O # Notes = 0 - Portrait 1 - Landscape 2 - Reverse Portrait 3 - Reverse Landscape Default = 0 Range = 0-3 (Other values ignored) This command can be used only once per page. To print multiple directions per page use the Print Direction command.
Table 5-1 HP-GL/2 State Variables ?E z executes “IN” command or Control Panel Reset: z defaults picture frame z defaults picture frame anchor point z defaults HP-GL/2 plot size z Defaults picture frame anchor point. z Defaults picture frame. z Defaults HP-GL/2 plot size. z Defaults P1 and P2 (“IP;”). z Defaults soft-clip window (“IW;’”). z Clears the polygon buffer (“PM0;PM2”). z Updates the current position to the lower-left corner of the picture frame (P1).
Figure 5-1 Page Orientation With Default Print Direction The orientation of the HP-GL/2 picture is also affected by the logical page orientation. Figure 5-2 illustrates the effect of logical page orientation on the HP-GL/2 picture orientation. It is possible to alter the HP-GL/2 picture orientation within the logical page using the HP-GL/2 RO command (refer to Chapter 21, for additional information).
Figure 5-2 HP-GL/2 Picture Orientation with Respect to Logical Page Orientation 5-8 Page Control Commands EN
Print Direction Command The Print Direction command rotates the logical page coordinate system with respect to the current orientation without performing a page eject. This rotation is performed in 90° increments in a counterclockwise direction. This allows printing in four directions on the same page. ?&a#P # = 0 - 0° rotation. 90 - 90° ccw rotation. 180 - 180° ccw rotation. 270 - 270° ccw rotation.
Figure 5-3 Changing Print Direction on a Page 5-10 Page Control Commands EN
Text Area Text printing may be restricted to a specific area within the logical page using the Left Margin, Right Margin, Top Margin, Text Length, and Perforation Skip Mode commands. This area is known as the text area. The left margin defines the distance between the left edge of the logical page and the left edge of the text area. The right margin defines the distance between the left edge of the logical page and the right edge of the text area.
Figure 5-4 Text Area Within the Page 5-12 Page Control Commands EN
Left Margin Command The Left Margin command sets the left margin to the left edge of the specified column. ?&a#L # = Column number Default = Column 0 (Left bound of logical page) Range = 0 - Right margin The first column within a line is column 0, which is located at the left edge of the logical page (the HMI setting defines the distance between columns, which thereby defines the maximum number of columns on the logical page).
Right Margin Command The Right Margin command sets the right margin to the right edge of the specified column. ?&a#M # = Column number Default = Logical Page right bound Range = Current left margin - Logical page right bound The maximum right column is located at the right edge of the logical page (the HMI setting defines the distance between columns, which thereby defines the maximum number of columns on the logical page).
Clear Horizontal Margins Command The Clear Horizontal Margins command resets the left and right margins. The left margin is set to the left edge of the logical page (column 0) and the right margin is set to the right edge of the logical page.
Top Margin Command The Top Margin command designates the number of lines between the top of the logical page and the top of the text area. ?&l#E # = Number of lines Default = 1/2 inch down from top of logical page1 Range = 0 - Length of logical page (Other values ignored) 1 If logical page length is <½inch, then the top margin is set to top of logical page.
Note The first line of the logical page is line 0.
Text Length Command The Text Length command designates the number of lines (at a given VMI) within the logical page available for printing text, the text area. This effectively defines the bottom margin. ?&l#F # = Number of lines Default = 1/2 inch less than maximum text length1 Range = Logical page length minus top margin 1 Maximum text length = INT(logical page length - top margin). However, if the max text length is less than ½inch, the text length is set to the maximum allowable.
Perforation Skip Command The perforation region is the distance from the bottom of the text area of one page to the top of the text area (top margin) of the next page. When perforation skip is enabled, a Line Feed or Half-Line Feed, which would move the cursor beyond the bottom of the text area, causes the cursor to move to the top of the text area on the next page.
Horizontal Motion Index (HMI) Command The Horizontal Motion Index (HMI) command designates the width of the columns. ?&k#H # = Number of 1/120 inch increments. Default = Determined by the pitch value in the default font header. Range = 0 - 32767 (valid to four decimal places) The value field is valid to 4 decimal places. A value of zero (0) indicates no horizontal motion. When fixed pitch fonts are selected, all printable characters including the Space and Backspace characters are affected by HMI.
Example To print the printer’s resident 16.66 pitch Line Printer font at 17.75 cpi, send ?(s16.66H to select the Line Printer font, then send the command ?&k6.76H to change HMI. This value field is calculated as follows: Each character then occupies 6.76/120 inch or 1/17.75 inch. To use Courier 12 point (10 cpi) and print 80 characters across A4 paper, requires adjusting the HMI value.
Vertical Motion Index (VMI) Command The Vertical Motion Index (VMI) command designates the height of the rows. (The vertical distance the cursor moves for a Line Feed operation.) ?&l#C # = number of 1/48 inch increments between rows. Default = 8 Range = 0 - Current logical page length up to a maximum of 32767 If the specified VMI is greater than the current logical page length, the command is ignored. The value field is valid to 4 decimal places. A Ø in the value field indicates no vertical movement.
Common VMI Settings To print 66 lines per page on letter-size paper, in portrait orientation (with one-half inch top and bottom margins) send: ?&l7.27C 7.27 = (10/66) x 48 To print 66 lines per page on letter or legal-size paper, in landscape orientation (with one-half inch top and bottom margins) send: ?&l5.45C EN 5.45 = (7.
Line Spacing Command The Line Spacing command sets the number of lines printed per inch. Only the values listed below are valid. ?&l#D # = 1 - 1 lpi 2 - 2 lpi 3 - 3 lpi 4 - 4 lpi 6 - 6 lpi 8 - 8 lpi 12 - 12 lpi 16 - 16 lpi 24 - 24 lpi 48 - 48 lpi Default = 6 Range = 0,1,2,3,4,6,8,12,16,24,48 (Other values are ignored) This command performs the same function as the Vertical Motion Index (VMI) command except that it identifies the VMI in lines-per-inch (lpi).
6 Cursor Positioning Introduction This section describes the cursor positioning commands. Although the printer does not actually have a cursor, the PCL cursor position refers to the Current Active Position (CAP), like the blinking underline character (cursor) used on most computers. This “cursor” identifies the current position on the page; the pointer, where a printing command begins laying out page data.
Absolute vs. Relative Cursor Positioning Either absolute or relative motion can be specified. Absolute motion always specifies the distance to move referenced from the top margin at the left bound of the logical page (0,0), regardless of the current active position (CAP) (see Figure 6-1). An unsigned value field in a cursor position command indicates absolute cursor movement. Relative motion specifies the distance to move referenced from the current active position (CAP) (see Figure 6-1).
Cursor Positioning Units Cursor positioning is done in PCL coordinate system units. The units of the X-axis of the PCL coordinate system may be PCL Units, decipoints, or columns. The units of the Y-axis of the PCL coordinate system may be PCL Units, decipoints, or rows. PCL Units The current unit size used in PCL Unit moves is determined by the value specified in the Unit of Measure command, defining the number of units-per-inch used in the following commands: z Vertical Cursor Position (PCL Units).
Decipoints In PCL terminology, a decipoint is 1/720 inch or one-tenth of a PCL point (a PCL point is exactly 1/72 inch as opposed to a typographic point which is approximately 1/72 inch). Columns & Rows The width of a column is defined by the current horizontal motion index (HMI), as described under “Horizontal Motion Index (HMI) Command” in Chapter 5. The distance between rows is defined by the current vertical motion index (VMI), as described under “Vertical Motion Index (VMI) Command” in Chapter 5.
Horizontal Cursor Positioning (Columns) Command This Horizontal Cursor Positioning command moves the cursor to a new column on the current line. ?&a#C # = Number of Columns Default = NA Range = 0 - logical page right bound (valid to 4 decimal places) The width of a column is defined by the current HMI. Note The current unit of measure setting affects how HMI values are rounded.
Horizontal Cursor Positioning (Decipoints) Command This Horizontal Cursor Positioning command moves the cursor to a new position along the horizontal axis.
Horizontal Cursor Positioning (PCL Units) Command This Horizontal Cursor Positioning command moves the cursor to a new position along the horizontal axis. ?*p#X # = Number of PCL Units Default = NA Range = 0 - logical page right bound A value field (#) with a plus sign (+) indicates the new position is to the right of and relative to the current cursor position; a minus sign (–) indicates the new position is to the left of and relative to the current cursor position.
Horizontal Cursor Positioning Control Codes Four control codes can be used to position the cursor horizontally on the current line. These control codes are explained below. Note The distance which the cursor is moved by the Space (SP), Backspace (BS), and Horizontal Tab (HT) control codes is defined by the current HMI value. The current unit of measure setting affects how HMI values are rounded.
BS - Backspace Moves the current active position (CAP) left a distance equal to the width of the last printed symbol or space. If the active position is already at the left margin, no action is taken. If the cursor is currently beyond the right margin, BS positions the cursor just to the left of the right margin. When using fixed pitch fonts, the Backspace distance is defined by the current print pitch (HMI setting).
Vertical Cursor Positioning (Rows) Command This Vertical Cursor Positioning command moves the cursor to a new line in the same column position. ?&a#R # = Number of Rows Default = NA Range = –32767 to 32767 (valid to 4 decimal places) A value field (#) with a plus sign (+) indicates the new position is downward from and relative to the current cursor position; a minus sign (–) indicates the new position is upward from and relative to the current cursor position.
Vertical Cursor Positioning (Decipoints) Command This Vertical Cursor Positioning command moves the cursor to a new position along the vertical axis. ?&a#V # = Number of Decipoints (1/720 inch) Default = NA Range = –32767 to 32767 (rounded to the first decimal place) A value field (#) with a plus sign (+) indicates the new position is downward from and relative to the current cursor position; a minus sign (–) indicates the new position is upward from and relative to the current cursor position.
Vertical Cursor Positioning (PCL Units) Command This Vertical Cursor Positioning command moves the cursor to a new position along the vertical axis. ?*p#Y # = Number of PCL Units Default = NA Range = –32767 to 32767 A value field (#) with a plus sign (+) indicates the new position is downward from and relative to the current cursor position; a minus sign (–) indicates the new position is upward from and relative to the current cursor position.
Half-Line Feed Command The Half-Line Feed command moves the cursor to the same character position one half-line down. The distance moved for a Half-Line Feed is one-half of the current line spacing (defined by the last VMI or line spacing setting). ?= Vertical Cursor Positioning Control Codes Two control codes can be used to position the cursor vertically. These control codes are explained below. LF - Line Feed Advances the current active position (CAP) to the same horizontal position on the next line.
Line Termination Command The Line Termination command controls the way the printer interprets CR, LF, and FF control characters. All CR, LF and FF control characters received after the Line Termination Command are interpreted as shown below.
Push/Pop Cursor Position Command The Push/Pop Cursor Position command allows the current cursor position to be stored and recalled. ?&f#S # = 0 - Push (Store cursor position) 1 - Pop (Recall a cursor position) Default = 0 Range = 0, 1 (Values outside range are ignored) A value field of 0 pushes the cursor position onto the stack, leaving the current position unaffected. A value field of 1 pops the position from the stack, restoring it as the current cursor position.
6-16 Cursor Positioning EN
7 Fonts Introduction A font is a group of symbols that have similar characteristics. A font is described by its symbol set, spacing, height, pitch, style, stroke weight, typeface and orientation. A typical document is printed using several fonts. A large font may be used for the title and chapter headings of a document, a standard size font may be used for the body of the document, and key words or phrases may be highlighted, using a bold or italic font.
A font must be selected for printing by the user. One font is selected at a time. It is selected by identifying the specific characteristics of the font. Font selection commands identify font characteristics to the printer (refer to Summary of Font Selection by Characteristic for detailed font selection information). PCL 5 printers feature scalable fonts. With the addition of this feature, the printer has two font formats available: bitmap and scalable.
Symbol Set Symbol set identifies the specific collection of symbols provided by a font. Each symbol set is defined with a specific application in mind. For example, the legal and math symbol sets were designed to support legal and scientific applications. The following figure shows two common symbol sets, PC-8 and Roman-8.
Spacing Another characteristic that differentiates fonts is spacing. Fonts have either fixed or proportional spacing. Fixed-spaced fonts (Figure 7-3) are those in which the inter-character spacing is constant. Proportionally-spaced fonts (Figure 7-4) are those in which the inter-character spacing varies with the natural shape of a character.
Pitch Pitch describes the number of characters printed in a horizontal inch. Pitch only applies to fixed-spaced fonts, since the number of characters per inch varies for proportional fonts. Figure 7-5 Pitch Height The height of a font is the measurement of the body of the type in PCL points. A PCL point is 1/72 inch in bitmap fonts, and approximately 1/72 inch in scalable fonts.
Style Style is defined by three characteristics: posture (upright, italic), width (condensed, normal, expanded, etc.), and structure (solid, outline, shadow etc.). Examples of upright and italic styles are shown. Figure 7-7 Style Stroke Weight Stroke weight describes the thickness of the strokes that compose characters. Examples of medium and bold stroke weights are shown in the figure below.
Typeface Family Typeface identifies the design of the symbols of the font. Each typeface family has unique and distinguishing design characteristics. The following example shows typefaces from various typeface families.
Orientation Orientation defines the position of the logical page with respect to the physical page as shown in Figure 7-10. Figure 7-10 Orientation The HP LaserJet IID, IIP, 2000, and all PCL 5 LaserJet printers automatically rotate fonts to the current orientation (all fonts are available in all four orientations). (Earlier printers required fonts in the orientation which matched the orientation of the page. Thus, orientation is not as important as it once was.
Bitmap Fonts and Scalable Typefaces There are two basic formats of fonts used by HP PCL 5 printers: bitmap (Figure 7-11) and scalable (Figure 7-12). Earlier HP LaserJet printers supported only bitmap fonts. Bitmap fonts have a fixed bit-pattern for each character. The size of the character is fixed, depending on the bit-pattern. Scalable typefaces, on the other hand, provide an “outline” for the characters. This “outline” can be scaled by the PCL 5 printers to produce a large range of character sizes.
Figure 7-11 Bitmap Character Figure 7-12 Scalable Character 7-10 Fonts EN
Internal Fonts Internal fonts are those fonts that are provided with the printer. Both internal bitmap and scalable font formats are provided. Internal bitmap and scalable fonts and symbol sets for current models of HP LaserJet family printers are listed in Chapter 2 of the PCL 5 Comparison Guide. Font and symbol set listings for earlier printer models can be found in the User’s Manual for each printer. Special Effects HP PCL 5 printers allow you to create special effects when printing characters.
7-12 Fonts EN
8 PCL Font Selection Introduction Several characteristics identify a font (as described in Chapter 7, Fonts). Font characteristic selection commands, described in this chapter, are used to specify the desired font characteristics for printing. Commands are included for the following characteristics: symbol set, spacing, pitch, height, style, stroke weight, and typeface family. The printer maintains a font select table in its operating code that contains the characteristic values of the current font.
Font Selection Priority The printer selects a font based on a prioritization of its design characteristics, then its resolution, then its physical location in the printer, and finally, its orientation. Font selection priority considerations are shown in the following list: Font Priority Considerations Symbol Set highest Spacing | Pitch | Height | Style | Stroke Weight | Typeface Family | Resolution1 | 2 Location | Orientation lowest 1.
There are four locations where a font may be stored: printer ROM (Read Only Memory), SIMM module ROM, cartridge ROM, and printer RAM (random access memory; user memory). These font locations are shown below, listed from the highest to lowest priority. The font that matches the characteristics is selected from the highest priority location. Priority of Locations Soft Font (Lowest ID first) Highest Cartridge Font1 | SIMM Font | Internal Font Lowest 1.
Font Select Table The initial font specification in a job should be made using all of the font characteristics. To select a Roman-8, fixed-spaced, 10 pitch, 12 point, upright, bold, Courier font, for the current page orientation, specify each of the characteristics using font selection escape sequences.
At a minimum, only the characteristics of the new font that differ from those of the previously designated font must be sent (the short font selection method). However, HP recommends that all of the characteristics be sent to ensure that the correct font is selected. Note PCL 5 printers can print any number of distinct fonts per page, limited only by available memory.
Symbol Set Command The Symbol Set command identifies the specific set of symbols in a font. “Symbols” are the alphanumeric, punctuation, or any other printable characters or symbols which may be included. E C ( ID Primary Symbol Set Command ID = Symbol Set ID value (see Appendix C in the PCL 5 Comparison Guide) E C ) ID Secondary Symbol Set Command ID = Symbol Set ID value (see Appendix C in the PCL 5 Comparison Guide).
A few symbol sets are listed below. For a more complete list, refer to Appendix C in the PCL 5 Comparison Guide. Typical Symbol Set Values Symbol Set Name Note Symbol Set ID ISO 69: French 1F ISO 8859-1 Latin 1 (ECMA-94) 0N ISO 6:ASCII 0U Legal 1U Roman-8 8U PC-8 10U 3 of 9 Barcode 0Y Windows 3.1 Latin 1 (ANSI) 19U User-defined symbol sets are supported in some HP LaserJet printers.
7-bit ISO Symbol Sets The HP LaserJet printers provide several 7-bit ISO (International Organization for Standardization) or “keyboard” symbol sets to support European languages. Each ISO symbol set is a unique ordering of symbols contained within the Roman-8 symbol set (see Appendix B in the PCL 5 Comparison Guide). The printer automatically generates the requested ISO font from an HP Roman-8 font.
Spacing Command Inter-character spacing can be specified as either proportional or fixed. E C ( s # P - Primary spacing E C ) s # P - Secondary spacing # = 0 - Fixed spacing 1 - Proportional spacing Default = 0 Range = 0, 1 (values outside the range are ignored) When proportional spacing is specified and a proportionally-spaced font is not available (in the requested symbol set), a fixed pitch font with the current pitch specification is selected.
Pitch Command The Pitch command designates the horizontal spacing of a fixed- spaced (bitmap or scalable) font in terms of the number of characters per inch. This characteristic is ignored when selecting a proportionally-spaced (bitmap or scalable) font, but is saved in the font select table and available when a fixed-spaced font is selected. E E C ( s # H - Primary pitch C ) s # H - Secondary pitch # = # = Pitch in characters/inch Default = 10 Range = 0.
The following formula can be used to as a rule of thumb for computing a maximum recommended pitch: The character (“contour”) width in the above formula is expressed as a percentage of an Em. For example, the width of characters in Courier is very close to 60% of an Em, and 30 = 1 ÷ ( 0.64 ÷ 72 ) . (The width of characters in Letter Gothic is approximately 50% of an Em. For other fonts, refer to the font metric data supplied by the font vendor.
Height Command The Height command specifies the height of the font in points. This characteristic is ignored when selecting a fixed-spaced scalable font; however, the value is saved and available when a bitmap font or a proportionally-spaced scalable font is selected. E E C ( s # V - Primary Height C) # s # V - Secondary Height = Height in points Default = 12 Range = 0.25 - 999.75 The value field (#) is valid to two decimal places.
Note If a proportional-spaced scalable font is selected using an ID number, send the Height command to specify the point size otherwise, the size is determined by the height characteristic value of the former font (as listed in the font select table) See “Font Selection by ID Command” later in this chapter for more information. Example To specify a height of 12 points for the primary font, send: E C(s12V To specify a height of 14.4 points for the secondary font, send: E C)s14.
Style Command The Style command identifies the posture of a character, its width, and structure of the font symbols. E E C ( s # S - Primary Style C ) s # S - Secondary Style Default = 0 Range = 0 - 32767 (values greater than 32767 are set to 32767) Style values for the most common typefaces are listed in Table 8-1. Additional style values may also be obtained from the related font documentation provided with HP’s font products.
Notes With the introduction of the HP LaserJet IID printer, Hewlett-Packard expanded the style values (in the Font Header style value field) from a one-byte to a two-byte value field, expanding the style range from 0-255 to 0-32767. This expansion allows for additional styles. Style values can be obtained by calculating the “Style Word” as described under “Style MSB” in Chapter 11. For selecting style, an exact match is required.
Stroke Weight Command The Stroke Weight command designates the thickness of the strokes that compose the characters of a font. E E C ( s # B - Primary stroke weight C ) s # B - Secondary stroke weight Default = 0 Range = - 7 to 7 (less than -7 maps to -7; greater than 7 maps to 7) The value field (#) specifies the thickness of the strokes used in the design of the font. The supported stroke weight values are –7 through 7. The thinnest font available is –7; the thickest font available is +7.
If the specified stroke weight is greater than or equal to 0 and is not available, the next thicker available stroke weight is selected. If no thicker stroke weight is available, the closest available thinner stroke weight is selected. If the specified stroke weight is less than zero and is not available, the next thinner available stroke weight is selected. If no thinner stroke weight is available, the closest available thicker stroke weight is selected.
Typeface Family Command The Typeface Family command designates the design of the font. E E C ( s # T - Primary typeface family C ) s # T - Secondary typeface family # = Typeface family value (see Appendix C in the PCL 5 Comparison Guide for typeface values). Default = 14099, Range = 1 Body Text 0 - 65535 (values greater than 65535 are set to 65535) If the value field (#) specifies a typeface that is unavailable, this characteristic is ignored during font selection.
Some typeface (two-byte) family values are listed below. For a complete listing of typeface family and base values, refer to Appendix C in the PCL 5 Comparison Guide.
Orientation The Orientation command (EC&l#O) designates the position of the logical page with respect to the physical page. Earlier printers could only print bitmap fonts and raster graphics in the orientation for which they were designed. However, the HP LaserJet IID, IIP, 2000, and all PCL 5 HP LaserJet printers have the capability to automatically rotate bitmap fonts and raster graphics to match the page orientation; therefore, all fonts are available in all four page orientations and print directions.
Font Selection Examples Bitmap, Fixed-Spaced Font This example illustrates how to select a primary, bitmap, Line Printer, fixed-spaced font with the following characteristics (note that all of the font characteristics are specified): Table 8-3 CHARACTERISTIC VALUE ESCAPE SEQUENCE Symbol set ASCII E C(0U Spacing Fixed E C(s0P Pitch 16.66 cpi E C(s16.66H Height 8.5 point E C(s8.
Scalable, Proportional-Spaced Font This example illustrates how to select a primary, scalable, CG Times, proportional-spaced font with the following characteristics (note that all of the font characteristics are specified except pitch which is not required for a proportional font): CHARACTERISTIC ESCAPE SEQUENCE VALUE Symbol set ASCII E C(0U Spacing Proportional E C(s1P Height 14.25 point E C(s14.
Summary of Font Selection by Characteristic The following summarizes the procedure the printer uses to select a font. Selection by characteristic is an elimination process. The nine steps are performed in the following order: Note When the printer is in 300 dpi mode, any 600 dpi bitmaps are eliminated before the selection process begins. 1Symbol Set - if the specified symbol set exists, that symbol set is selected; otherwise, Roman-8 is selected.
Note For proportionally-spaced scalable fonts, any specified height is available to the nearest quarter point. For fixed-spaced scalable fonts, the designated height is recorded, and the height is calculated from the requested pitch. 5 Style - if the specified style is available in the remaining fonts, that style is selected; otherwise, this characteristic is ignored. 6 Stroke Weight - if the specified stroke weight is available in the remaining fonts, that stroke weight is selected.
9 Orientation - for bitmap fonts the last criteria considered for the selection is its orientation. If two fonts still remain and match in all the above characteristics except orientation, that font which matches the current page orientation is selected.
Font Selectionby ID Command Soft fonts can be specified using their associated ID numbers. (ID numbers are assigned to soft fonts using the Font ID command described in Chapter 9, Font Management).
Examples To specify the font associated with ID number 7 as the primary font, send: E C(7X To specify the font associated with ID number 5 as the secondary font, send: E C)5X Select Default Font Command The Default Font command sets all of the font characteristics to those of the user (control panel selected) default font.
Transparent Print Data Command The Transparent Print Data command provides printing access to those characters which the printer normally defines as unprintable. These characters include decimal character codes 0, 7-15, and 27. E C # & p # X [Transparent Print Data] =Number of bytes of transparent print data. Default = N/A Range = 0 - 32767 Each transparent print data byte is interpreted as a single character code. The appropriate character is printed if one exists; otherwise, a Space is processed.
Underline Command The Underline command controls automatic text underlining. E # C & d # D - Enable underline = 0 - Fixed position 3 - Floating position Default = 0 Range = 0, 3 (values outside range are ignored) E C & d @ - Disable underline Once underlining is enabled, any positive horizontal movement causes an underline to be drawn. Positive horizontal movement includes the printing of text and positive horizontal cursor motion.
8-30 PCL Font Selection EN
9 Font Management Introduction Font management provides mechanisms for manipulating soft fonts. It provides the means for controlling which soft fonts are saved in user memory (RAM) or deleted. This is accomplished by assigning a font as either temporary or permanent, or deleting a soft font. In addition, font management includes the command for assigning ID numbers to RAM fonts.
Downloading Soft Fonts The process of transferring soft fonts from a host computer to the printer’s user memory (RAM) is called downloading. Designate a unique identification (ID) number prior to the download of a font. This number is then associated with the soft font. This number is assigned using the Font ID command, described later in this chapter. Subsequent manipulation of the soft font is accomplished using the font’s ID number.
Temporary vs. Permanent Fonts Once downloaded, a font is automatically designated as temporary. A temporary soft font is deleted from user memory during a printer reset or when a Typeface List, a Font Printout or a self-test is performed from the printer’s control panel. A soft font can be designated as permanent to prevent the printer from deleting it during a printer reset.
Font ID Command The Font ID command is used to specify an ID number for use in subsequent font management commands. The ID number of a font can be used to select the font for printing (refer to “Font Selection by ID” in Chapter 8). E C # *c#D = ID number Default = 0 Range = 0 - 32767 The font ID number is used during subsequent soft font downloads, selections or deletions. The factory default font ID is 0 (if no Font ID command is sent, an ID of 0 is assigned).
Font Control Command The Font Control command provides mechanisms for manipulating soft fonts.
To delete the character “p” (112 decimal) in a bitmap or bound scalable font with an ID of 1, send: E C *c1d112e3F (A space is printed in place of the deleted character. Also, the EC*c#E Character Code command used in the above sequence “...112e...,” is described in Chapter 11.
Font Management Example This example illustrates several typical font management operations. It assumes a bitmap soft font is stored and available on an MS-DOS based hard disk. 1 Set the font ID number to 2: E 2 C*c2D Download a soft font file using the MS-DOS COPY command with the /B option: COPY /B filename PRN Note that the soft font is associated with font ID 2.
Unbound Scalable Fonts Prior to introduction of the HP LaserJet IIIP printer, a downloaded scalable font was restricted to a single symbol set. Now scalable fonts with no symbol set affiliation can be downloaded. These new fonts are called unbound fonts. To download unbound fonts, the “PCL Font Header for Intellifont Unbound Scalable Fonts” or the “Format 15 Font Header for Scalable Fonts” (TrueType) must be used (see Chapter 11).
Symbol Collections The symbols in an unbound font (typeface) can be divided into symbol collections. These symbol collections identify the symbols according to some language basis or special application usage. Some symbol collections include: Basic Latin, East European, Turkish, Math, Semi-Graphic, and Dingbats. If a symbol collection is included in an unbound font, all of the symbols of that collection are included.
Character Complement Numbers The “Intellifont Unbound Scalable Font Header” (header) includes a 64 bit field (bytes 78-85) which contains the Character Complement number. For TrueType fonts, in the “Format 15 Font Header for Scalable Fonts” (unbound), the Character Complement number is included in the accompanying “Segmented Font Data” section of the header. The Character Complement number identifies the symbol collections in the font.
TrueType example: If a symbol set based on Unicode numbers requires one or more characters from the standard ASCII collection and some of the characters from the Latin 5 collection, then bits 31, 28 and 0 are set to one (refer to Appendix D in the PCL 5 Comparison Guide for information regarding the various symbol collections).
Since the printer identifies symbols by their symbol index number (range from 0 to 65535), but receives character codes (range 0-255), a relation must be made between the character codes and the larger range of symbol index numbers. This relation is defined by the symbol set mapping table. The printer contains a symbol set mapping table for each available symbol set. These tables list the character code range and corresponding list of symbol index numbers.
Printing a Character When an unbound font is selected for printing and a character code is received, the printer accesses the requested symbol set mapping table to identify the MSL or Unicode number. For example, if the Roman-8 symbol set is selected and the printer receives character code 254, the printer accesses the Roman-8 symbol set mapping table (Table 9-1). In the Roman-8 mapping table, character code 254 is mapped to MSL number 191 or Unicode number 00b1 (plus-over-minus symbol).
9-14 Font Management EN
10 User-Defined Symbol Sets Introduction User-defined symbol sets are used with unbound scalable fonts. Three new commands provide for the implementation of user-defined symbol sets: Symbol Set ID Code - EC*c#R Define Symbol Set - EC(f#W [symbol set data] Symbol Set Control - EC*c#S To define a symbol set, you must first designate a symbol set ID code. Next, use the Define Symbol Set command to download the list of characters (character codes and related symbol index numbers) for the symbol set.
Symbol Set ID Code Command The Symbol Set ID Code command assigns a symbol set ID code to a user-defined symbol set. This ID code is used by the Symbol Set Control command for symbol set management. The ID code corresponds to the symbol set ID selection value which is used to identify the symbol set during font selection.
When selecting an ID code, select one which is not being used currently. (If an ID code is selected which is already being used in the printer, that symbol set is redefined.) The first step in selecting an ID code is to determine an ID selection value. Since it may be difficult to determine which ID selection values are being used, it is best to select one which has not been assigned.
Define Symbol Set This command defines the characters and character mapping for a user-defined symbol set. E C ( f # W [symbol set definition data] # Default = Range = = Number of bytes in symbol set definition n/a 0 - 32767 If a user-defined symbol set is already present in the printer and a new, valid symbol set is downloaded with the same Symbol Set ID Code, then the old symbol set is deleted. If an internal symbol set with the same ID code exists, it is overridden by the new symbol set.
The following abbreviations are used to define the data type of each field in the symbol set header: Font Header Field Data Type Notation (B) : Boolean (0, 1) (UB) : Unsigned Byte (0 . . 255) (SB) : Signed Byte (-128 . . 127) (UI) : Unsigned Integer (0 . . 65535) (SI) : Signed Integer (-32768 . . 32767) (ULI) : Unsigned Long Integer (0 . . 232-1) (SLI) : Signed Long Integer (-231 . . 231-1) (ASCxx) : ASCII string array (0 . .
Encoded Symbol Set Designator (UI) This field must match the ID code in the Symbol Set ID code command. This field contains the symbol set ID code. The symbol set ID code is calculated from a symbol set ID selection value using the following formula: Symbol Set ID Code = (# * 32) + (ID - 64) where # is the decimal number (0 to 1023) and ID is the ASCII character code of the letter.
First Code (UI) Specifies the first character code in the set. Last Code (UI) The Last Code specifies the last character code in the set. Together, the First Code through the Last Code identify the range of character codes which map to the symbol index numbers (characters) in the Symbol Map field.
MSL Symbol Index Character Requirements Bit Value Designated Use 63 1 Basic Latin required (such as ISO 8859/1 Latin 1) 0 Basic Latin not required 1 East European Latin required (such as ISO 8859/2 Latin 2).
Unicode Symbol Index Character Requirements Bits (numbers/values) Bit Value Designated Use 31 1 ASCII required (such as ISO 6 ASCII) 0 ASCII not required. 1 West Europe extensions required (such as ISO 69 French). 0 West Europe extensions not required. 1 East Europe extensions required (such as ISO 8859/2 Latin 2). 0 East Europe extensions not required. 1 Turkish extensions required (such as ISO 8859/9 Latin 5). 0 Turkish extensions not required.
Examples of values for the field include: Bit Field Designated Use Value (Hex) Meaning 0000000000000000 Default requirement (MSL); symbol set can be used with any typeface indexed bu MSL. 8000000000000000 Symbol set (MSL) requires only the Basic Latin Symbol Collection (such as Roman-8) 0000000100000000 Symbol set (MSL) requires only the Dingbat Collection. 0000000000000001 Default requirement (Unicode); symbol set can be used with any typeface indexed bu Unicode.
Symbol Map (Array of UI) The symbol map contains a list of symbol index numbers. This list identifies symbols for the symbol set. (Refer to Appendix D in the PCL 5 Comparison Guide for a MSL and Unicode symbol indexes.) The symbol map pairs (maps) a character code to a symbol index number. The range of character code numbers (paired with symbol index numbers) is the range from the First Code through the Last Code fields in the header.
Symbol Set Control Command This command provides a means for making user-defined symbol sets permanent or temporary, and for deleting them. E C # Default = Range = *c#S = 0 -Delete all temporary and permanent user-defined symbol sets. 1 - Delete all temporary user-defined symbol sets. 2 - Delete current user-defined symbol set (last symbol set ID code specified). 4 - Make current user-defined symbol set temporary. 5 - Make current user-defined symbol set permanent.
User-Defined Symbol Set Examples The following two examples illustrate the concept of user-defined symbol sets. They create symbol sets for PC-8 in MSL and Unicode symbol indexes. The necessary escape sequences are shown in each example.
Symbol Map Data: (continued) 00 41 (character code 65) Uppercase A M M 00 61 (character code 97) Lowercase A M M 20 7f (character code 252) Superior Lowercase N 00 b2 (character code 253) Superior Numeral 2 25 a0 (character code 254) Small Solid Square Box E PCL Symbol Set #ID: 10U, Make this symbol set permanent.
Symbol Map Data: (continued) EN 00 cf (character code 5) Solid Spade, Card Suit M M 00 e7 (character code 31) Down Solid Arrowhead 00 00 (character code 32) Space Code 00 01 (character code 33) Exclamation Mark M M 00 22 (character code 65) Uppercase A M M 00 43 (character code 97) Lowercase A M M 01 4c (character code 252) Superior Lowercase N 00 c5 (character code 253) Superior Numeral 2 01 31 (character code 254) Small Solid Square Box 00 00 (character code 255) No-Break Spac
10-16 User-Defined Symbol Sets EN
11 Soft Font Creation Introduction A font that is downloaded (transferred) from a computer to a printer is called a soft font. A PCL soft font contains a font header and a set of character definitions. The font header and character definitions contain all the information needed to format a font for use in the HP LaserJet printers.
The definition of a font with a quantity n characters would appear as shown below. Table 11-1 Font ID Command Font Header Character Code1 Character Descriptor1 Character Data1 Character Code2 Character Descriptor2 Character Data2 M Character Coden Character Descriptorn Character Datan Font Classifications There are three basic classifications of fonts accepted by the HP LaserJet printer: PCL bitmap, Intellifont scalable, and TrueType scalable.
TrueType scalable fonts are described in detail in the document, True Type Font Files. (Refer to Related Documents, located in the front of this manual, for information on how to obtain this document.) Note EN The documents, Intellifont Scalable Typeface Format and True Type Font Files do not contain descriptions of scalable PCL fonts. Instead, they contain descriptions of files from which PCL fonts can be built.
Coordinate System Both bitmap and scalable characters are designed in an area referred to as a cell or window, and each has its own coordinate system and set of units. Bitmap Fonts Characters of a bitmap font are designed within a rectangular area referred to as a cell. The bitmap character cell is illustrated in Figure 11-3, Figure 11-6, and Figure 11-7. The physical coordinate system is defined in terms of the directions of raster scan (X) and paper motion (Y), as illustrated in the following figure.
The master font design size is 250 points (a CG point=.01383 inches). There are 8782 units per Em at the Master Font Size. Figure 11-2 Agfa Design Window TrueType Scalable Fonts TrueType scalable font character coordinates are typically based on a system of 2048 units per Em. The baseline is defined by y-coordinate=0. The left reference is usually defined by x-coordinate=0 (although there is some variation among fonts).
Font Header Command The Font Header command is used to download font header data to the printer. E Default Range C ) s # W [font header data] = 0 = 0 - 32767 The value field (#) identifies the number of bytes in the font header. The font header fields are described under Font Header Format, later in this chapter. Note Two examples for downloading a Font Header are provided under Font Header Examples, after the Font Header Format section, later in this chapter.
Note Use the Font ID command to designate a unique ID number prior to the download of a font header. If an existing font is already associated with this ID, the existing font is deleted upon the download of the font header. Unless otherwise specified, inappropriate values in a font header field invalidates the font download process; a font is not created and the associated font data is discarded.
Table 11-2 Format 0 Font Header (for PCL Bitmapped Fonts) 16 Pitch (Default HMI) 18 Height 20 x-Height 22 Width Type Style LSB 24 Stroke Weight Typeface LSB 26 Typeface MSB Serif Style 28 Quality Placement 30 Underline Position (Distance) Underline Thickness (Height) 32 Text Height 34 Text Width 36 First Code 38 Last Code 40 Pitch Extended 42 Cap Height 44-47 Font Number M 48-63 Font Name M 64 Copyright (optional) Table 11-3 Byte Height Extended Format 20 Font Head
Table 11-3 EN Format 20 Font Header (for Resolution-Specified Bitmapped) (continued) 8 Cell Width 10 Cell Height 12 Orientation 14 Symbol Set 16 Pitch (Default HMI) 18 Height 20 x-Height 22 Width Type Style LSB 24 Stroke Weight Typeface LSB 26 Typeface MSB Serif Style 28 Quality Placement 30 Underline Position (Distance) Underline Thickness (Height) 32 Text Height 34 Text Width 36 First Code 38 Last Code 40 Pitch Extended 42 Cap Height 44-47 Font Number M 48-63
Table 11-4 Byte Format 10 Font Header (for Intellifont Bound Scalable) 15 (MSB) 8 7 0 Font Descriptor Size (minimum 80) 2 Header Format (10) Font Type 4 Style MSB Reserved 6 Baseline Position 8 Cell Width 10 Cell Height 12 Orientation 14 Symbol Set 16 Pitch (default HMI) 18 Height 20 x-Height 22 Width Type Style LSB 24 Stroke Weight Typeface LSB 26 Typeface MSB Serif Style 28 Quality Placement 30 Underline Position (Distance) Underline Thickness (Height) 32 Text
Table 11-4 48-63 Format 10 Font Header (for Intellifont Bound Scalable) (continued) Font Name M 64 Scale Factor 66 X Resolution 68 Y Resolution 70 Master Underline Position 72 Master Underline Thickness (Height) 74 OR Threshold 76 Global Italic Angle Desc.
Table 11-5 Format 11 Font Header (for Intellifont Unbound Scalable Fonts) (continued) 16 Pitch (default HMI) 18 Height 20 x-Height 22 Width Type Style LSB 24 Stroke Weight Typeface LSB 26 Typeface MSB Serif Style 28 Quality Placement 30 Underline Position (Distance) Underline Thickness 32 Text Height 34 Text Width 36 Reserved 38 Number of Contours (Characters) 40 Pitch Extended 42 Cap Height 44-47 Font Number M 48-63 Font Name M Height Extended 64 Scale Factor 66 X
Table 11-5 Format 11 Font Header (for Intellifont Unbound Scalable Fonts) (continued) Desc. Size-2 Global Intellifont Data Size Desc.
Table 11-6 Format 15 Font Header (for TrueType Scalable Fonts) (continued) 32 Text Height 34 Text Width 36 First Code 38 Last Code/Number of Characters 40 Pitch Extended 42 Cap Height 44-47 Font Number M 48-63 Font Name M Height Extended 64 Scale Factor 66 Master Underline Position 68 Master Underline Thickness 70 Font Scaling Technology 72 [additional data may be inserted here] M Desc.
Table 11-7 Font Header Field Data Type Notation (continued) (SI) : Signed Integer (-32768 . . 32767) (ULI) : Unsigned Long Integer (0 . . 232-1) (SLI) : Signed Long Integer (-231 . . 231-1) (ASCxx) : ASCII string array (0 . . xx-1) of characters Font Descriptor Size (UI) Specifies the number of bytes in the font descriptor. See the font header figure for the appropriate font descriptor size. Header Format (UB) The Header Format byte identifies the font to format (see below).
Table 11-9 Note Font Type Values (continued) 2 Bound font. All character codes 0 to 255 are printable, except 0, 7 to 15, and 27 [decimal] (see note below). 10 Unbound font. Character codes correspond to HP MSL numbers (for Intellifont unbound scalable fonts). 11 Unbound font. Character codes correspond to Unicode numbers (for TrueType unbound scalable fonts).
Table 11-11 Value Appearance Width (multiply by 4 for StyleWord partial sum) 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 Table 11-12 Value 0 Solid 1 Outline 2 Inline 3 Contour, Distressed (edge effects) 4 Solid with Shadow 5 Outline with Shadow 6 Inline with Shadow 7 Contour with Shadow 8-11 Patterned (complex patterns, subject to type family) 12-15 Pattern
Note The reserved bits (15 - 10) should be set to zero. If a value is requested, and a match not made, the request is ignored and the current font selection process continues as if the parameter was never requested (but it is saved in the attribute table). Example Assuming a font style of “italic compressed contour” is desired, the value (#) would be: 1 + (2×4) + (3×32) = 105 Baseline Position (UI) Bitmap Font - Specifies the distance from the top of the cell to the baseline.
Bitmap Font - Specified in PCL coordinate system dots. Scalable Font - Specified in design units. Figure 11-3 Character Cell - Bitmap Orientation (UB) Specifies the orientation of the font. All characters within the font must have the same orientation as those specified in the font header; otherwise they are discarded as they are downloaded.
Bitmap Font - Unsupported values invalidate font creation. Scalable Font - set to zero. Note Hewlett-Packard recommends that bitmap soft fonts be designed in portrait (0°), using the paper motion and raster scan direction of the HP LaserJet Plus and LaserJet series II printers. The HP LaserJet IID, IIP, 2000, and PCL 5 LaserJet printers rotate the fonts to match the paper’s physical coordinate system for the various paper sizes. Spacing (B) Specifies the spacing of the font.
Symbol set escape sequence termination characters can be any upper case ASCII character “A” through “Z.” “Q” is reserved for use with HP “Specials” symbol sets and is not recommended for general use. Notes Symbol set ID’s of “@” and “X” do not have a corresponding Symbol Set selection command, sets marked as such can be selected only with the Font ID. This field must have a value of 56 for a type 10 or 11 font (unbound Intellifont scalable) to be valid.
Height (UI) Bitmap Font - Specifies the design height of the font in quarter-dots (radix dots). This value, converted to points, is used as the height 1 - (0.01389) inch. characteristic value of the font. A PCL point is ----72 It combines with Height Extended to specify the design height of the font in 1024th-dot (fonts designed at 300 dpi). For example, a 10 point font at 300 dpi has a height of 166 1 - inch/point) quarter-dots (radix dots) (1200 quarter dots/inch, ----72 as calculated: The remainder 0.
Width Type (SB) Specifies the proportionate width of characters in the font. Table 11-13 Width Type Values Value Width Type -5 Ultra Compressed -4 Extra Compressed -3 Compressed or Extra Condensed -2 Condensed 0 Normal 2 Expanded 3 Extra Expanded Additional width types may be added by HP. Style LSB (UB) The least significant byte (LSB) of the Style word. Refer to Style MSB for a description of the Style word.
Table 11-14 Stroke Weight Values (continued) -3 Light -2 Demi Light -1 Semi Light 0 Medium, Book, or Text 1 Semi Bold 2 Demi Bold 3 Bold 4 Extra Bold 5 Black 6 Extra Black 7 Ultra Black Typeface (UB) This field specifies the HP typeface number of the font. The current version of this field, supported by the &payette; printer, is described first. Then a previous field, supported in earlier printers, is described.
Table 11-15 Typeface Family Value (Current) 15 12 Vendor 11 0 Typeface Family Vendor Number - Bits 15 - 12. This value is assigned by HP and is between decimal values 0 and 15. Table 11-16 Current Vendor Number Values Value Vendor =0 Reserved =1 Agfa Division, Miles Inc. =2 Bitstream Inc. =3 Linotype Company =4 The Monotype Corporation plc =5 Adobe Systems Inc. = 6-15 (Reserved) Typeface Family Number - Bits 11 - 0 This value is between 0 and 4095.
Previous Usage The previous treatment of the Typeface field supported the LaserJet IIP, IID and LaserJet III family printers. It consisted of the Typeface Least Significant Byte (LSB; the original, one-byte typeface value used prior to the LaserJet IID printer) and the Typeface Most Significant Byte (MSB) in the font header. The previous typeface family value field is shown below.
Typeface Base ValueThe Typeface Base Number (bits 0 through 8) ranged from 0 to 511. Some of these values referred to the styles that vary by structure and appearance width (such as Helvetica Condensed, Helvetica Outline, etc.). Do not use these values in new designs since they are being deleted. Refer to Appendix C in the PCL 5 Comparison Guide for a list of typeface families and their typeface base values. Note For future compatibility, use the two-byte (typeface MSB/LSB) typeface family value.
Table 11-19 Serif Style Values (continued) 11 Script Calligraphic 12 Script Broken Letter 13-63 Reserved Values for bits 6 & 7 64 Sans Serif 128 Serif 192 Reserved Quality (UB) This field specifies the quality of the font. Table 11-20 Quality Values Value Quality 0 Data processing (draft) 1 Near Letter Quality 2 Letter Quality Placement (SB) Placement specifies the position of character patterns relative to the baseline.
Underline Position (Distance) (SB) Bitmap Font - Specifies the distance from the baseline to the top dot row of the underline in font design 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 Underline Position to zero. The Master Underline Position field (see below) identifies this information for scalable fonts.
First Code (UI) First Code specifies the character code of the first printable character in the font. This value is between 0 and 255 inclusive. The Space Character may be printable and will print an image if one is defined, otherwise a Space control code is executed. Currently, PCL 5 LaserJet printers use the Font Type field to determine the first and last codes of the symbol set, as shown below: Table 11-22 Font Type First Code../..
Scalable Font - Set Pitch Extended field to zero. Height Extended (UB) Bitmap Font - This is an addition to the Height field which extends the height an extra eight bits. The value of this field is in font design units. For example, a 10 point font designed at 300 dpi would have a Height field 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 calculated similar to the Pitch Extended field.
Font Number (ULI) The Font Number field uses four bytes (byte 44, 45, 46, and 47). The lower three bytes (45, 46, and 47) contain the font number in hexadecimal. This is the number the vendor assigns to their typeface. The most significant byte (byte 44) consists of a flag in the most significant bit indicating whether the font is in its native (0) format or has been converted (1) from another format.
Figure 11-4 This field is ignored by the printer for bitmap fonts. Font Name (ASC16) This is a 16 character ASCII field to which you may assign a font name. The font name is used in the Typeface List (or Font List printout), under Name or Typeface (if the printer does not have a name string assigned to the typeface family code in its font selection table). X Resolution (UI) The X Resolution field is the pixel resolution in the X scan direction at which the font was designed.
Y Resolution (UI) The Y Resolution field is the pixel resolution in the Y scan direction at which the font was designed. Note This field is not present in the Format 15 Font Header and is not necessary for TrueType fonts. Scale Factor (UI) The Scale Factor field indicates the number of design units per Em, and is the unit used for all scalable metrics in the font header. It is used for TrueType and Intellifont scalable soft fonts.
Variety (UB) The interpretation of this field depends on the value of the preceding (Font Scaling Technology) byte. For TrueType fonts, this field must be set to zero. OR Threshold (UI) Formerly called the “LRE Threshold,” this is the pixel size in design units above which the missing pixel recovery process is switched on in Intellifont scaling and rasterization. Note The size of a pixel (in design units) increases as point size and device resolution decrease.
Note In the Format 15 Font Header for TrueType Scalable Fonts, the data in this field is contained in the “CC” (Character Complement) field in the Segmented Font Data section immediately following the descriptor data. See “Segmented Font Data” later in this chapter . Table 11-25 MSL Symbol Index Bit Field Designated Use 58-63 Reserved for Latin fonts. 55-57 Reserved for Cyrillic fonts. 52-54 Reserved for Arabic fonts. 50-51 Reserved for Greek fonts. 48-49 Reserved for Hebrew fonts.
Individually defined bits are shown in the following two tables: Table 11-27 MSL Symbol Index Character Complement Bits Bit Value 63 0 if font is compatible with standard Latin character sets (e.g., Roman-8, ISO 8859-1 Latin 1); 1 otherwise. 62 0 if font is compatible with East European Latin character sets (e.g., ISO 8859-2 Latin 2); 1 otherwise. 61 0 if font contains Turkish character sets (e.g., ISO 8859/9 Latin 5); 1 otherwise.
Table 11-28 Unicode Symbol Index Character Complement Bits 26 0 if font is compatible with character sets requiring a wider selection of accents (e.g., MC Text, ISO 8859/1 Latin 1); 1 otherwise. 25 0 if font is compatible with traditional PCL character sets (e.g., Roman-8, Legal, ISO 4 United Kingdom); 1 otherwise. 24 0 if font is compatible with the Macintosh character set (MC Text); 1 otherwise. 23 0 if font is compatible with PostScript Standard Encoding (PS Text); 1 otherwise.
Table 11-29 (continued) ‘‘ffffffff5ffffffe’’ Font indexed in Unicode and is compatible only with East Europe Latin character sets. Checksum The Checksum field is over bytes 64 through the end of the header. The checksum should contain a value which, when added to the sum of byte 64 through the reserved byte, equals a value which, when divided by 256 (modulo 256 arithmetic), results in a remainder of 0. For example, if the sum = 10,234 then, 10,234 mod 256 = 250.
Table 11-30 below shows the structure of the Segmented Font Data section. Table 11-30 Segmented Font Data Byte 15 (MSB) 8 7 x+0 First segment, Segment Identifier x+2 First segment, Segment Size x+4 M First segment, Data Segment M (LSB) 0 x+4 Second segment: Segment Identifier, Size, Data + 1st Segment seg size M M M #–6 Null Segment Identifier (FFFF - hex) #–4 Null Segment Size (0) #–2 Reserved Checksum x = Font Descriptor Size. # = Font header length (as defined in Font Header command).
Data segments with an unrecognized identifier are ignored. Segment Size (UI) For each entry in the Segmented Font Data section, the Segment Size indicates the number of bytes in the immediately following Data Segment. The size for the Null Segment is 0. Formats of Data Segments AP (Application Support Segment) The definition of this segment is reserved. CC (Character Complement) This field has the same form (i.e., 8 unsigned bytes) and function as does the Character Complement of Format 11 fonts.
The optional cvt, fpgm and prep tables, as defined in True Type Font Files, typically appear in the Global TrueType Data Segments of hinted TrueType soft fonts, but should not appear in unhinted fonts. IF (Intellifont Face Data) Reserved for future use. PA (PANOSE Description) This data segment of variable length may be used for the purpose of font selection and substitution. Its definition continues to evolve.
Font Header Examples Two examples for downloading a Font Header are provided below; one for a bitmap font and one for an Intellifont scalable font. Bitmap Example To download a bitmap font header for a portrait HP Roman-8, 10 pitch, 12 point, upright, medium, Courier font, with an ID number of one, send: E C*c1D (set Font ID to 1) E C)s#W (# = 64 bytes of font descriptor data + x bytes of optional data) An example of the bitmap header is shown on the following page.
Table 11-32 (continued) Style LSB 0 Upright, Normal Width, Solid (0,0,0) Stroke Weight 0 Medium Typeface LSB 3 Body Text Typeface MSB 0 No Font Vendor ID Serif Style 2 Serif Line Quality 0 ∅ Placement 0 ∅ -10 ∅ 3 ∅ Underline Position Underline Thickness Text Height 200 Quarter dots (50.00 Dots) Text Width 120 Quarter Dots (30.
Table 11-33 FIELD NAME DESCRIPTION Descriptor Size 80 Bytes Header Format 10 Scalable Font Format Font Type 1 Eight Bit Style MSB 0 Reserved 0 Baseline Location 5380 Y reference in Design Window Cell Width 0 ..not defined for Intellifont Cell Height 0 ..not defined for Intellifont Orientation 0 ..not defined for scalable fonts Spacing 1 Proportional Symbol Set 277 8U: Roman-8 Pitch 2602 29.63% Em Default HMI Design Height 2000 250 Points * 8 x-Height 4009 45.
Table 11-33 (continued) Placement 0 ..not defined for scalable fonts Underline Position 0 ..not defined for scalable fonts Underline Thickness 0 ..not defined for scalable fonts Text Height 0 ..not defined for Intellifont Text Width 4391 First code 33 Last Code 273 Width of En Space Compound Pieces Present (n255) Pitch Extended 0 ..not defined for scalable fonts Height Extended 0 ..not defined for scalable fonts Cap Height 5851 66.
Table 11-33 (continued) EN ....Global Intellifont Data .... }= 112 bytes added to header data ....Copyright Statement (optional) .... }= x bytes added to header data ....Application Support (optional) ....
Character Definitions Following the font header, the individual characters must be defined. Every PCL character definition contains a character descriptor and a body of character data. The character definition always consists of one or more character data blocks. Each character data block begins with its own header. The character data block header always has a size of 2 bytes. The first data block of a character definition must always have a character descriptor immediately after its 2-byte header.
Character Code Command The Character Code command establishes the decimal code that is associated with the next character downloaded. This value is used to reference the character for printing. E # Default Range Notes C *c#E =character code = 0 = 0 - 65535 For unbound fonts, the character code for a given character equals its symbol index value. For TrueType fonts, a special code must be used to download glyphs which never stand alone as characters. FFFF (hex) should be used for this purpose.
Character Definition Command The Character Descriptor and Data command is used to download character data blocks to the printer for both bitmap and scalable fonts. E C Default Range ( s # W [character descriptor and data] = N/A = 0 - 32767 The value field (#) identifies the number of bytes in the immediately following character data block. The maximum number is 32767.
Character Descriptor Formats Character definition formats for PCL Bitmap, Intellifont Scalable and TrueType Scalable fonts are shown on the following pages. Note The following notation is used to define the data type of each field in the character descriptors. Table 11-34 Character Descriptors/Data Continuation Block (B) : Boolean (0,1) (UB) : Unsigned Byte (0 . . 255) (SB) : Signed Byte (-128 . . 127) (UI) : Unsigned Integer (0 . . 65535) (SI) : Signed Integer (-32768 . .
Table 11-35 PCL Bitmap Character Descriptor and Data Format (continued) 6 Left Offset 8 Top Offset 10 Character Width 12 Character Height 14 Delta X 16 Raster Character Data: (in bytes) M Table 11-36 PCL Bitmap Continuation Character Descriptor and Data Format Byte 15 (MSB) 8 7 0 Format (4) 2 Raster Character Data: (in bytes) M (LSB) 0 Continuation (non-zero) Format (UB) This is the first byte of every character data block header.
Continuation (B) This is the second (and last) byte of every character data block header. It specifies whether the following data is the first (0) data block of a new character definition, or a continuation (1) block for a character definition which has already been received by the printer. Because the value field in a Character Definition command is limited to 32767 bytes, characters whose byte count exceed this must be sent in two or more blocks.
Class 1 - Bitmap Data Class 1 or bitmap (raster) character data is a string of bytes containing the dot-per-bit image of the character, no data compression. If a bit is set to one, the corresponding dot is printed. The data is grouped in dot rows. A row describes a one-dot-high strip of the character from left to right, in the direction of the printer’s raster scan (see the Portrait Bitmap Character Data Example, at the end of this chapter).
Figure 11-5 Class 2 Character Data EN Character Descriptor Formats 11-55
Orientation (UB) Orientation byte specifies the orientation of the character. The orientation of the character must match the orientation of the font. Table 11-39 Value Orientation 0 Portrait 1 Landscape 2 Reverse portrait 3 Reverse landscape If the orientation is not supported or is different from the orientation specified in the font header, the character is discarded.
Character Width (UI) The Character Width, used for bitmap fonts only, identifies the width of the character in dots on the physical coordinate system. Generally, this width is from the farthest left black dot to the farthest right black dot. Character width is orientation dependent. The legal range for character width is 1 to 16384 dots. Character Height (UI) Character Height specifies the height of the character in dots on the physical coordinate system. Character height is orientation dependent.
Figure 11-6 Portrait Character Example 11-58 Soft Font Creation EN
Figure 11-7 Landscape Character Example EN Character Descriptor Formats 11-59
Character Descriptor and Data Format for Intellifont Scalable Fonts The character header contains a block of bytes that identify character outline data. Table 11-40 and Table 11-41 show the format of the Intellifont scalable character descriptor and data .
Table 11-41 Intellifont Scalable Contour Data Format Contour Tree Data M XY Coordinate Data M Table 11-42 Intellifont Scalable Character Descriptors/Data Continuation Block Byte 15 (MSB) 8 7 Continuation (1)1 0 Format (10) 2 Contour Character Data, resumed: (in bytes, see Table 11-41. M #–2 (LSB) 0 Checksum2 Reserved 1. Continuation is supported for Intellifont scalable fonts for class 3 only. 2. This byte appears only on the last continuation.
Format (UB) This is the first byte of every character data block header. It specifies the format of the character descriptor and data. The format number for Intellifont scalable fonts is 10. Table 11-44 Value Format 4* LaserJet Family (Raster) 10 Intellifont Scalable 15* TrueType Scalable * These are described elsewhere in this chapter. If the format number is different from that expected by the device, the character is discarded.
Table 11-45 Value Class 1* Bitmap 2* Compressed Bitmap 3 Contour (Intellifont Scalable) 4 Compound Contour (Intellifont Scalable) 15* TrueType Scalable * These are described elsewhere in this chapter. Class 3 -Intellifont Scalable Character Contour Data Class 3 is for Intellifont scalable contour character data. The contour character data is organized as described in Table 11-41. Bytes 0-3 contain the character descriptor.
Character Intellifont Data Offset (SI) The offset to the Character Intellifont Data relative to the address of the Contour Data Size field. Contour Tree Offset (SI) The offset to the contour Tree Data relative to the address of the Contour Data Size field. XY Data Offset (SI) The offset to the XY data relative to the address of the Contour Data Size field. Metric Data For information about Metric Data refer to the Intellifont Scalable Typeface Format document.
Compound Character Escapement (SI) The escapement in design units of a compound character. Number of Components (UB) The number of components of a compound character. Component List This is a list of component descriptions. The list contains Number of Components elements. Each component descriptor consists of 6 bytes as described in Table 11-46 below.
Table 11-47 TrueType Character Descriptor (no continuation block required) Byte 15 (MSB) 8 7 0 Format (15) Continuation (0) 2 Descriptor Size Class (15) 4 [additional descriptor data may be inserted here] 2+ Desc Size Character Data Size 4+ Desc Size Glyph ID 6+ Desc Size TrueType Glyph Data #–2 Reserved (LSB) 0 M Checksum # = Character data block size as defined in Character Definition command.
Table 11-48 (continued) 6+ Desc Size beginning of TrueType Glyph Data M Table 11-49 TrueType Character Descriptor (multiple character data blocks) Byte 15 (MSB) 8 7 0 Format (15) 2 conclusion of TrueType Glyph Data (LSB) 0 Continuation (1) M #–2 Reserved Checksum # = Character data block size as defined in Character Definition command. Format (UB) This is the first byte of every character data block header. It specifies the format for character downloading.
Continuation (B) This is the second (and last) byte of every character data block header. It specifies whether the following data is the first (0) data block of a new character definition, or a continuation (1) block for a character definition which has already been received by the printer. Because the value field in a Character Definition command is limited to 32767 bytes, characters whose byte count exceed this must be sent in two or more blocks.
Character Data Size (UI) The value of the Character Data Size should equal the sum of the sizes of the Character Data Size, Glyph ID, and TrueType Glyph Data fields. This value alerts the PCL interpreter when a continuation block is needed. The minimum possible value is 4. The value of Character Data Size plus Descriptor Size plus 4 (for the Format, Continuation, Reserved and Checksum bytes) will never be less than the value # given in the character download command.
Character Definition Examples Bitmap Portrait Character Example To download a bitmap character descriptor and data for a portrait, 10 Pitch, 12 point, upright medium, Courier lower-case “p”, send: E C*c112E (112 is the decimal character code for an ASCII lower-case “p”) E Note C(s140W [character descriptor and data] Notice that the 140 appearing in the Character Definition Command accounts for 2 bytes of the Character Data Block Header, 14 bytes of Character Descriptor, and 124 bytes of Character Data.
Table 11-53 Portrait Character Data Example Dot Row Bit Map Decimal Equivalent 01 00000000 00001111 11000000 00000000 0 15 192 0 02 11111100 01111111 11111000 00000000 252 127 249 0 03 11111100 11111111 11111100 00000000 252 255 252 0 04 11111101 11110000 00111110 00000000 253 240 62 0 05 00011111 11000000 00001111 00000000 31 192 15 0 06 00011111 10000000 00000111 00000000 31 128 7 0 07 00011111 00000000 00000111 10000000 31 0 7 128 08 00011110 00000000 0000001
Table 11-53 Portrait Character Data Example (continued) 25 00011100 00000000 00000000 00000000 28 0 0 0 26 00011100 00000000 00000000 00000000 28 0 0 0 27 00011100 00000000 00000000 00000000 28 0 0 0 28 00011100 00000000 00000000 00000000 28 0 0 0 29 11111111 11111100 00000000 00000000 255 252 0 0 30 11111111 11111100 00000000 00000000 255 252 0 0 31 11111111 11111100 00000000 00000000 255 252 0 0 Bitmap Landscape Character Example To download the character descript
Table 11-55 Landscape Character Data Example Dot Row Bit Map Decimal Equivalent 01 00000000 01111110 00000000 00000000 0 126 0 0 02 00000011 11111111 11000000 00000000 3 255 192 0 03 00001111 11111111 11110000 00000000 15 255 240 0 04 00011111 10000001 11111000 00000000 31 129 248 0 05 00111110 00000000 01111100 00000000 62 0 124 0 06 00111000 00000000 00111100 00000000 56 0 124 0 07 01111000 00000000 00011110 00000000 120 0 30 0 08 01110000 00000000 00001110 00
Table 11-55 Landscape Character Data Example (continued) 25 01110000 00000000 00000000 00001110 112 0 0 14 26 01110000 00000000 00000000 00001110 112 0 0 14 11-74 Soft Font Creation EN
12 Macros Introduction A Macro is a group of PCL and H”P-GL/2 commands and/or data created by the user that is downloaded and stored in the printer. Once stored in the printer, a macro can be invoked upon request (using the assigned macro ID number), using a single command. When printing letters, for example, which include a company letterhead, the letterhead is repeated for each letter. This letterhead can be created as a macro and stored in the printer.
Hewlett-Packard provides a service to assist you by developing these custom products. For information contact: Hewlett-Packard Boise Printer Division Attention: Product Specials 11311 Chinden Blvd.
Macro Creation Designate a unique identification (ID) number prior to the definition of a macro using the Macro ID command. This number is assigned to the macro. If a macro is already associated with this ID number, the previously existing macro is deleted from user memory during the definition of the new macro. Subsequent macro operations are accomplished using the macro ID number. A macro is created in the printer in several steps.
Macros occupy a portion of user memory. The number of macros that can be stored simultaneously in user memory is limited only by the amount of available user memory. Macro Invocation There are three ways to invoke a macro: execute, call, and overlay, using the Macro Control command. When a macro is executed, it begins performing its commands using the current modified print environment.
The overlay environment consists of the current settings for the following features with the remainder of the environmental features set to their user default values: Table 12-2 PCL CONTEXT: Page length Paper source Page size Number of copies Orientation Cursor position stack Registration HP-GL/2 CONTEXT: Current Pen Position Scaling Points Hard Clip Limits Soft Clip Window Logical Page Boundaries Fill Attributes Line Attributes Refer to Chapter 3 for descriptions of environments.
Deleting Macros There are several mechanisms provided by PCL macro control for explicit deletion of macros from user memory. These include commands to delete all macros, all temporary macros, or an individual macro by reference to its macro ID number, using the Macro Control command described later in this chapter. Both temporary and permanent macros are deleted from memory whenever the printer’s power is turned off. Macro ID The Macro ID command specifies an ID number for use in subsequent macro commands.
Macro Control The macro control command provides mechanisms for definition, invocation, and deletion of macros.
ROM-Based Macros Macros can be supplied in ROM (read only memory), such as custom macro cartridges or on SIMM modules. The following considerations apply to all ROM-based macros. z ROM-based macros include the macro ID numbers for their macros. These numbers cannot be changed. It is possible for a downloaded macro to be assigned the same ID number as a ROM macro. If this occurs, the downloaded macro has precedence. To access the ROM macro, the downloaded macro must be deleted.
To enable the macro with an ID of 7 for automatic overlay, send: E C&f7y4X To delete the macro with an ID of 7, send: E C&f7y8X Macro Control Example The following illustrates the definition of a letterhead macro. Table 12-4 E C&f1Y Specify the Macro ID as one. E C&f0X Start Macro Definition. E C&a540h360V Position logo at (540, 360) decipoints in the PCL coordinate system. E C*t150R Set graphics resolution to 150 dots-per-inch. EN E C*r1A E C*b60W Start raster image of logo.
Table 12-4 (continued) Fred, Texas 83707 Text E C&a540h960V Position first rule at (540, 960) decipoints. E C*c10v4680H Set rule height and width. E C*c0P Print the first rule. E C&a540h980V Position second rule at (540, 980) decipoints. E C*c&zero;P Print second rule. E C&a54&zero;h12&zero;& zero;V Position for first line of text at (540, 1200) decipoints. E Stop Macro Definition. C&f1X This macro now can be executed, called, or enabled for automatic overlay.
13 The PCL Print Model Introduction The Print Model feature allows images and characters to be filled with any of the printer’s predefined shading or cross-hatch patterns, or with a user-defined pattern. Images include any raster graphic, such as one created with PCL raster graphics commands (as described in Chapter 15, Raster Graphics); a rectangular fill area (as described in Chapter 14, PCL Rectangular Area Fill Graphics); or a character or characters selected from any font.
Pattern The design which is “painted” through the black (“1” bits) area of the source image onto the destination image. For patterns, the Print Model uses one of the printer’s internal predefined eight shading patterns (see Figure 13-4) or one of the six cross-hatch patterns (see Figure 13-5), or a user-defined pattern. Notes When printing a page, text and raster images are printed using the current pattern. The default current pattern is 100% black.
Pattern Transparency Mode The transparency or opaqueness of the white pixels in the pattern. When set to 0 (transparent), these pixels have no effect on the destination; when set to 1 (opaque), they are applied through the black pixels of the source pattern to the destination. Figure 13-2 Opaque and Transparency Modes Figure 13-3 illustrates the effects of the source and pattern transparency modes on the final image.
Figure 13-3 Effect of Transparency Modes on Images 13-4 The PCL Print Model EN
Command Sequence The following illustration shows the Print Model Command Sequence for selecting a current pattern and using it to fill a destination image. Table 13-1 Operation Comments • • Download Page Data Prior raster and character data downloaded to the page is considered destination image.
Table 13-1 (continued) • • End of Page Data Source Transparency Mode Command The Select Source Transparency Mode command sets the source image’s transparency mode to transparent or opaque. E C*v#N # Default Range =0 - Transparent 1 - Opaque = 0 = 0, 1 (other values cause the command to be ignored) With a transparency mode of “0” (transparent), the white regions of the source image are not be copied onto the destination.
Pattern Transparency Mode Command The Pattern Transparency Mode command sets the pattern’s transparency mode to transparent or opaque. E C*v#O # Default Range =0 - Transparent 1 - Opaque = 0 = 0, 1 (other values cause the command to be ignored) A transparency mode of “0” (transparent) means that the white regions of the pattern image are not copied onto the destination. A transparency mode of “1” (opaque) means that the white pixels in the pattern are applied directly onto the destination.
Pattern ID (Area Fill ID) Command The Pattern ID command (formerly called Area Fill ID) identifies the specific shading, cross-hatch, or user-defined pattern. (This command is also used for rectangular area fill. Refer to Chapter 14, PCL Rectangular Area Fill Graphics.
Notes This command is used for both the Select Pattern and Area Fill graphics (it is also described in Chapter 14, PCL Rectangular Area Fill Graphics). It is duplicated here for convenience. For user-defined patterns, this command, sent prior to downloading a user-defined pattern, assigns an ID pattern number to the downloaded pattern. (For more information, see “User- Defined Graphics,” later in this chapter.
Figure 13-4 Shading Patterns 13-10 The PCL Print Model EN
Figure 13-5 Cross-Hatch Patterns EN Pattern ID (Area Fill ID) Command 13-11
Select Current Pattern Command The Select Current Pattern command identifies the type of pattern to be applied onto the destination. E C*v#T # =0 - Solid black (default) 1 - Solid white 2 - Shading pattern 3 - Cross-hatch pattern 4 - User-defined pattern Default Range = 0 = 0 - 4 (values outside of range are ignored) This command selects which type of pattern is applied.
User-Defined Pattern Graphics In addition to the eight shading patterns and six cross-hatch patterns, users can design their own patterns (area fill). These user-defined patterns are downloaded to the printer and controlled using three new commands: z User-Defined Pattern EC*c#W [data] z Set Pattern Reference Point EC*p#R z Pattern Control EC*p#Q > User-Defined Pattern Implementation To create a user pattern, a user defines a binary raster data image as a base pattern.
Figure 13-7 Pattern Layout Across the Printable Area Pattern Reference Point The pattern reference point is a position on the logical page at which the base pattern is positioned for tiling. The upper left corner of the base pattern is positioned at this point (see ). The default pattern reference point is position 0,0. However, it is possible to set the pattern reference point to the current cursor position. This allows the pattern to be positioned or adjusted for fill areas.
Figure 13-8 Moving Pattern Reference Point for Pattern Filling EN User-Defined Pattern Graphics 13-15
User-Defined Pattern Command The User-Defined Pattern command provides the means for downloading the binary pattern data that defines the user pattern. E C * c # W [pattern data] # =Number of pattern data bytes Default Range = 0 = 0 - 32767 (values outside the range are ignored) The value field (#) identifies the number of pattern data bytes that follow the User-Defined Pattern command.
Table 13-4 Notes Resolution-Specified User-Defined Pattern Header 4 Height in Pixels 6 Width in Pixels 8 X Resolution 10 Y Resolution 12 Pattern image M The Master X and Master Y Resolution fields can be used to specify 600 dpi resolution for a pattern originally designed at 300 dpi. However, a pattern which was designed at 600 dpi is not available for selection at 300 dpi resolution. Patterns are identified by some value (ID number). This is the current pattern ID number.
Reserved (Byte 3) This field, byte 3, is not currently used and must be set to 0. Height in Pixels (Bytes 4 and 5) This field, bytes 4 and 5, identifies the number of rows (height) of the pattern. Width in Pixels (Bytes 6 and 7) This field, bytes 6 and 7, identifies the number of pixels (width) of the pattern. Pattern Image This field contains the raster data for the pattern.
User-defined Pattern Example This example shows how the user-defined pattern command is used to create a user-defined patterns. For this example, a pattern of triangles is used. The first step is to design the base pattern triangle (in this case, using 64 bytes of data).
When using the 300 dpi User-Defined Pattern header (see Table 13-3). Set the eight bytes of header information to the following values: Byte 0 - Format = 0 (00 hex) Byte 1 - Continuation = 0 (00 hex) Byte 2 - Pixel Encoding = 1 (01 hex) Byte 3 - Reserved = 0 (00 hex) Byte 4/5 - Height in Pixels = 0 / 16 (00 / 10 hex) Byte 6/7 - Width in Pixels = 0 / 32 (00 / 20 hex) Byte eight begins the first bytes of binary data. The PCL code below downloads the user-defined pattern and assigns it an ID number of 3.
3 Send the pattern header and binary data: Table 13-6 00 FF 7F 3F 1F 0F 07 03 01 00 00 00 00 00 00 00 00 Notes 00 FF FF FF FF FF FF FF FF FF 7F 3F 1F 0F 07 03 01 01 FF FF FF FF FF FF FF FF FF FE FC F8 F0 E0 C0 80 00 00 10 00 20 FF FE FC F8 F0 E0 C0 80 00 00 00 00 00 00 00 00 There must be an even number of bytes in user-defined pattern data, hence the trailing zeros (“padding”) in the last eight data rows above.
Set Pattern Reference Point Command The Set Pattern Reference Point command causes the printer to tile patterns with respect to the current cursor position. This command also specifies whether the pattern rotates with the print direction or remains fixed. E C*p#R # =0 - Rotate patterns with print direction 1 - Keep patterns fixed Default Range = 0 = 0,1 (values outside the range are ignored) A value field of 0 rotates the patterns with changes in the print direction (see Print Direction command).
Pattern Control Command The Pattern Control command provides a means for manipulating user-defined patterns.
13-24 The PCL Print Model EN
14 PCL Rectangular Area Fill Graphics Introduction The PCL language includes commands for filling or shading rectangular areas on the page with pre-defined patterns, and allows creation and use of user-defined patterns. Pre-defined patterns include eight shading patterns and six cross-hatch patterns. Note User-defined patterns are not supported on all LaserJet family printers. Refer to the “PCL Feature Support Matrix” in the PCL 5 Comparison Guide.
Note 3 Specify width of rectangle (Horizontal Rectangle Size Command Decipoints=EC*c#H, or PCL Units=EC*c#A). 4 Specify height of rectangle (Vertical Rectangle Size Command Decipoints=EC*c#V, or PCL Units=EC*c#B). 5 Select specific shade, cross-hatch, or user-defined pattern (Pattern ID Command - EC*c#G - Chapter 13)1. 6 Fill rectangular area with pattern (Fill Rectangular Area Command - ECc#P).1 This ends the procedure and prints the patterned area.
Horizontal Rectangle Size (Decipoints) Command This Horizontal Rectangle Size command specifies the rectangle width in decipoints. E C*c#H # Default Range =Number of decipoints (1/720 inch) = 0 = 0 - 32767 (valid to 4 decimal places) The printer converts the specified width to printer dots by rounding up to an integral number of dots. For example, 5 decipoints, which corresponds to 2.08 dots in 300 dpi mode, is converted to 3 dots.
Vertical Rectangle Size (Decipoints) Command This Vertical Rectangle Size command specifies the rectangle height in decipoints. E C*c#V # Default Range =Number of decipoints (1/720 inch) = 0 = 0 - 32767 valid to 4 decimal places The printer converts the specified width to printer dots by rounding up to an integral number of dots. For example, 5 decipoints, which corresponds to 2.08 dots in 300 dpi mode, is converted to 3 dots.
Pattern ID (Area Fill ID) Command The Pattern ID command (formerly called Area Fill ID) identifies the specific shading, cross-hatch, or user-defined pattern (see Figure 14-2) to be used when filling a rectangular area.
There are six HP defined cross-hatch patterns. To specify a crosshatch pattern type, use a value between 1 and 6 to select a pattern as shown in Figure 14-2. For user-defined patterns, this command, sent prior to downloading a user-defined pattern, assigns an ID pattern number to the downloaded pattern. (For more information, see “User-defined Pattern Graphics,” in Chapter 13.
Figure 14-1 Shading Patterns EN Pattern ID (Area Fill ID) Command 14-7
Figure 14-2 Cross-hatch Patterns 14-8 PCL Rectangular Area Fill Graphics EN
Fill Rectangular Area Command This command fills (prints) a rectangular area of the specified width and height with the specified area fill. E C*c#P # Default Range =0 - Black fill (rule) 1 - Erase (white) fill 2 - Shaded fill 3 - Cross-hatch fill 4 - User-defined pattern fill 5 - Current pattern fill = 0 = 0 - 5 (values outside the range are ignored) Black fill — fills the rectangular area with black fill.
The upper left corner of the rectangular area is located at the cursor position when printing a rectangular area. After printing the rectangular area the cursor is returned to the upper left corner; the cursor position does not change positions as a result of printing a rectangular area. Rectangular areas are independent of the text area and perforation skip mode; these boundaries are ignored (rectangles are not clipped at these boundaries). Addressable rectangular areas are limited to the logical page.
Pattern Transparency for Rectangular Area Fill Pattern transparency, described in Chapter 13, under “Pattern Transparency Mode Command,” affects how a pattern is applied to the rectangular fill area. Rectangular areas are special case images for transparency mode. The pattern and pattern type are selected by the Pattern ID command (EC*c#G) and the Fill Rectangular Area (EC*c#P) command (described earlier in this chapter).
Figure 14-3 Effect of Transparency Modes on Rectangular Areas 14-12 PCL Rectangular Area Fill Graphics EN
Rectangular Area Fill Examples This section shows example usage of area fill commands to print pre-defined patterns as well as user-defined patterns. Pre-defined Pattern Examples Solid Fill (Black/White) To print a 900 by 1500 Unit black rule (3 inches by 5 inches at 300 units-per-inch), then white fill a small area inside the black rectangle, perform the following steps. 1 1. Position the cursor: E *p300x400Y C This moves the cursor to PCL Unit position (300, 400) within the PCL coordinate system. 2 2.
6 6. Specify the width and height for the smaller white fill rectangular area: E *c300a600B C 7 7. Select the white fill and print. E *c1P C Figure 14-4 Solid Fill Example Shaded Fill To print a 900 by 1500 Unit 25% shaded rectangle (3 inches by 5 inches at 300 units-per-inch), perform the following steps. 1 Position the cursor: E *p300x400Y C This moves the cursor to PCL Unit position (300, 400) within the PCL coordinate system.
3 Specify the height of the rectangle: E *c1500B C This sets the rectangle to 1500 PCL Units (5 inches at 300 units-per-inch). 4 Specify the Pattern ID: E *c25G C This sets the Pattern ID to 25.
Cross-hatch Fill To print a 900 by 1500 Unit rectangular area (3 inches by 5 inches at 300 units-per-inch), filled with a horizontal cross-hatch pattern, perform the following steps: 1. Position the cursor: E *p300x400Y C Moves the cursor to PCL Unit position (300,400) within the PCL coordinate systems. 2. Specify the width of the rectangle: E C*c900A Sets the rectangle width to 900 PCL Units (3 inches at 300 units-per-inch). 3.
This example prints the following: Figure 14-6 Patterned Fill Example User-defined Pattern Example This example shows how to print a user-defined pattern which has already been downloaded to the printer. For this example we will print the pattern of triangles which was downloaded in the example in Chapter 13, under “User-Defined Pattern Command.” The following commands define a 600 PCL Unit square rectangular area, select ID number 3, and print the user-defined pattern associated with that ID number.
Sets the rectangle width and height both to 600 PCL Units (2 x 2 inches at 300 Units/inch). 3 Specify the Pattern ID: E *c3G C Sets the Pattern ID to 3. 4 Print the user-defined pattern-filled area: E C*c5P This example prints as shown in Figure 14-7.
15 Raster Graphics Introduction A raster image is an image composed of dots. Pictures in newspapers or on television screens (also, a page printed by this printer) are examples of raster images. The PCL language includes commands for printing raster graphic images. These commands enable the LaserJet printer to receive binary data and print it as a raster image. The binary data used to create a raster image is divided into dot rows: a row describes a one-dot-high strip of the image.
several binary data compression methods, and additional reduction techniques associated with the raster area feature (see Figure 15-2). Figure 15-2 Raster Area Data compression methods include: run-length encoding, tagged image file format (TIFF), delta row, and adaptive compression. These techniques are described in detail later in this section, under the Set Compression Method command.
The final data reduction technique provided by the raster area involves the printer’s ability to fill in trailing zeros to the edge of the raster area. Any zeros following the last “1“ in the raster row to the edge of the picture area need not be sent. The printer automatically fills them. This technique eliminates the need to transmit raster data rows that are all the same length, as required in a raster image which does not use the raster area feature. The raster area represents a boundary.
Raster Graphics Command Sequence PCL raster commands include: Start Raster Graphics and End Raster Graphics commands, Transfer Raster Data by Row, Raster Compression, Raster Presentation, Raster Resolution, Raster Height and Raster Width (which define the raster area), and Raster Y Offset commands.
Raster Presentation, Raster Resolution, Raster Height, Raster Width, and Raster Compression are all true modes. Once specified, the printer remains in that mode unless explicitly changed by issuing the command again, or reset to default values by a soft reset, self test, font printout, or power cycle. Note EN Only raster data appearing within the intersection of the logical page, the printable area, the raster width, and height is printed.
Raster Graphics Resolution Command Raster graphics can be printed at various resolutions. This command designates the resolution of subsequent raster data transfers in dots-per inch. E C*t#R # Default Range = 75 - 75 dots-per-inch 100 - 100 dots-per-inch 150 - 150 dots-per-inch 200 - 200 dots-per-inch1 300 - 300 dots-per-inch 600 - 600 dots-per-inch = 75 = 75, 100, 150, 200, 300, 600 This command must be sent prior to the start graphics command. The factory default resolution is 75 dots-per-inch.
Figure 15-3 Raster Graphics Expansion - at 300 dpi Note Rectangular area fills and character data are not affected by changes in resolution. Rectangular Area fills and character data always print at the maximum resolution, regardless of the resolution setting. When configured for 600 dpi resolution, the printer automatically expands raster graphics transferred at resolutions less than 600 dots-per-inch to 600 dots-per-inch during printing.
Raster Graphics Presentation Mode Command The Raster Graphics Presentation command specifies the orientation of the raster image on the logical page. E C*r#F # Default Range =0 - Raster image prints in orientation of logical page 3 - Raster image prints along the width of the physical page = 3 = 0, 3 A value of 0 indicates that a raster row ‘will be printed in the positive X-direction of the PCL coordinate system. (The print direction translates the PCL coordinate system.
Table 15-2 (continued) 3 landscape 50 dots in from the logical page top bound 3 reverse landscape 50 dots in from the logical page top bound Figure 15-5 Raster Graphics Presentation Mode for Portrait Orientation EN Raster Graphics Presentation Mode Command 15-9
Figure 15-6 Raster Graphics Presentation Mode for Landscape Orientation 15-10 Raster Graphics EN
Raster Height Command The Raster Height command specifies the height in raster rows of the raster area. Height is the direction perpendicular to the direction that raster rows are laid down, hence, height is subject to the current raster presentation mode and print direction (see Figure 15-7).
Upon receiving an End Raster Graphics (EC*rC) command, the cursor position is set to the left graphics margin of the next raster row after the raster height boundary.
Raster Width Command The Raster Width command specifies the width in pixels of the raster area. Width is in the direction that the raster rows are laid down, hence, width is subject to the current raster presentation mode and print direction (see Figure 15-8).
Figure 15-8 Maximum Raster Width Start Raster Graphics Command The Start Raster Graphics command identifies the beginning of the raster data and also specifies the left graphics margin. E C*r#A # Default Range =0- Start graphics at default left graphics margin X-position 0). 1 - Start graphics at current cursor position (current X-position). = 0 = 0, 1 (values outside the range default to 0) A value of 0 specifies that the left graphics margin is at the default left margin of the page (X-position 0).
Once in Raster Graphics Mode, PCL commands and text imply an End Raster Graphics (EC*rC) except for the following commands: z Transfer Raster Data z Set Raster Compression Method z Raster Y Offset In addition, the following commands are ignored (i.e.
Set Compression Method Command The Set Compression Method command allows you to code raster data in one of four compressed formats: Run-length encoding, tagged imaged file format (TIFF) rev. 4.0, delta row compression, and adaptive compression. The choice of compression methods affects both the amount of code needed to generate a raster graphic image and the efficiency with which the image is printed.
Tagged Image File Format Encoding (Method 2) Tagged image file format encoding interprets raster data as TIFF “Packbits.” This format combines features of methods 0 and 1. A control byte precedes the raster data (pattern bytes). The control byte identifies whether the pattern byte(s) represent a byte that is to be repeated some number of times (up to 127), or represent some number of bytes (up to 127) which are to be printed as is (literal).
The range of numbers for the control byte is shown below. Table 15-3 Literal Pattern Values # of Bytes Binary value Decimal value 1 0000 0000 1 to to to 127 0111 1111 127 Table 15-4 No Operation Value NOP value Binary value Decimal value 128 (-128) 1000 000 128 Table 15-5 Repeated Pattern Values # of Repetitions Binary value1 Decimal value 1 (-1) 1111 1111 255 to to to 127 (-127) 1000 0001 129 1.
TIFF encoding also allows you to include a non-operative (NOP) control byte, represented by the value –128. This byte is ignored, and the subsequent byte is treated as the new control byte. Note It is more efficient to code two consecutive identical bytes as a repeated byte. If these bytes are preceded and followed by literal bytes, however, it is more efficient to code the entire group as literal bytes.
TIFF Encoding E *r1A C E *b2m6W(-3)U(0)A(-1)T or E *b2m6W(-3)U(2)ATT C C E *rC C In the TIFF encoding example above, parenthetical expressions are used to identify control bytes. For example, the byte (-3) is shown to represent the control byte for a repetition (minus value) of 3. The actual value for this position is the decimal value 253. Additional “encoded” control bytes in this sequence include: (0) for decimal 0, (-1) for decimal 255, and (2) for decimal 2.
Table 15-7 Command Byte 7 5 4 Number of bytes to replace (1-8) 0 Relative offset from last untreated byte If more than eight replacement (delta) bytes are needed, additional command byte/replacement bytes may be added, as shown below: E C*3m#W [(Command Byte)(1 to 8 Replacement Bytes)][(Command Byte)(1 to 8 Replacement Bytes)]. . . In the command byte, the upper three bits identify the number of replacement (delta) bytes (which can be 1 to 8 bytes).
As mentioned, the offset is contained in the lower five bits of the command byte allows for offset values from 0 to 31. Compression mode allows offsets larger than 31 bytes as follows: z An offset value of 0-30 indicates that the replacement bytes are offset from the 1st byte to the 31st byte. z A value of 31 indicates that the next byte following the command byte is an additional offset byte which adds to the first (32) offset value. This allows offset values larger than 31.
Repeating a Row E C*b0W When using the delta compression method, it is possible to repeat or copy the previous raster row using the Raster Data Transfer command. This is accomplished by setting the Raster Data Transfer command, value field, to zero. Printing A Zeroed Row (Setting the Seed Row to Zero) E C*b1Y It is possible to print a row of all zeros using the Raster Y-Offset command. Sending a Raster Y Offset command, with a value field of 1, sets the seed row to zero and prints the zeroed row.
Example: Delta Row Compression The following example demonstrates how to compress the following data using the delta row compression. (The bytes highlighted in italic type indicate those bytes needing replacement — those bytes that are different from the previous row, the seed row.) Table 15-8 Byte No.
Adaptive Compression (Method 5) Adaptive compression enables the combined use of any of the four previous compression methods (0 through 3), and it includes the ability to print empty (all zeros) rows or to duplicate rows. Adaptive compression interprets a raster image as a block of raster data rather than as individual rows.
For command byte values 0 - 3, the two <# of bytes/rows> bytes specify the number of bytes (row length) for the row. For command byte values 4 and 5, these bytes identify the number of empty or duplicate rows to print. The maximum value for these two bytes is 65,535; however, the image is clipped to the logical page. Thus, the value of these bytes should not exceed the maximum number of bytes/rows that can be printed on the current logical page size.
Adaptive Compression Operation Hints Note EN Some HP LaserJet printers perform internal compression techniques to support full-page graphics. Refer to Chapter 1 of the PCL 5 Comparison Guide for specifics. z The compression methods cannot be mixed within one raster row. A raster row must be compressed using only one method. z The cursor position is updated with each row of the raster block. The cursor position is also incremented when a block count of less than 3 is sent.
z For method 3 - Since delta row compression requires that the seed row be available whenever raster graphics mode is entered, the seed row is initialized to zeros upon raster graphics mode entry (EC*r#A). The seed row is also initialized upon receipt and completion of each raster block. z For method 3 - If the row length terminates the data before the control byte value is satisfied (literal byte count greater than row length), the data following the control byte (if any) is printed as text.
Transfer Raster Data Command The Transfer Raster Data command is used to transfer a row of raster data to the printer. E Default Range C * b # W [raster data] = N/A = 0 - 32767 The value field (#) identifies the number of bytes in the raster row. These bytes are interpreted as one row of raster graphics data that is printed at the current Y position at the left raster graphics margin.
Notes If the last byte indicated by the value field in the Transfer Raster Data command is a control byte, that byte is ignored. If a Transfer Raster Data command is received without an accompanying Start Raster Graphics command, any preceding start raster values are used (such as left graphics margin, raster height and width, etc.). End Raster Graphics Command The End Raster Graphics command signifies the end of a raster graphic data transfer.
Raster Graphics Example To transfer an unencoded raster graphic image (see Figure 15-11) in the shape of an arrow, perform the following steps: Table 15-10 1. Position the cursor: E C*p300x400 Y This moves the cursor to PCL Unit position (300, 400) within the PCL coordinate system. 2. Specify the raster graphics resolution: E *t75R C This sets the raster graphics resolution to 75 dots-per-inch. 3.
Table 15-11 Example of Raster Graphic Image Data (continued) 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 00000000 00000000 00000000 00000000 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 111
Figure 15-11Example of Raster Graphic Image Data EN Raster Graphics Example 15-33
15-34 Raster Graphics EN
16 Status Readback Introduction This chapter describes the PCL status readback features. PCL status is requested from the printer with the commands described in this chapter. Following a status request, the printer generates a status response. This response consists of ASCII data which is sent directly from the printer, through the I/O, back to the host.
z Flush All Pages Command z Echo Command z Status Readback Programming Hints For status readback to work, the host system must contain a bi-directional driver to receive status response data. In network operations, some printing environments do not support bi-directional communication, such as many printer sharing devices which spool data, and some network operating systems.
Table 16-1 Memory Status Request Example (continued) Status response sent from printer to host PCL INFO MEMORY TOTAL=100000 LARGEST=25000 Entity Status It is possible to request status for the printer’s entities. An entity is a font, symbol set, macro, or user-defined pattern stored in the printer. Each individual entity request is limited to one specific entity, and is further limited to a specific location.
A basic entity status request is shown in the example below. This example identifies a status request for downloaded permanent fonts. The example also includes a status readback response at the bottom. Note that this example shows only one possible request/response; for more detailed information, refer to the status readback command descriptions provided later in this chapter.
Status Response When the printer receives a status request (command), it processes that request and forms the response data. This data is then stored in an I/O status buffer. The response is saved in this buffer until it is either read (by any user) or the printer is turned off.
Status Response Syntax All status responses start with the letters “PCL” followed by a Carriage Return control code (decimal 13; ) and a Line Feed control code (decimal 10; ). In addition, each remaining line of the response is terminated by a Carriage Return and Line Feed control code. Finally, status responses are terminated by a Form Feed control code (decimal 12; ). The basic syntax for the status response is shown below.
PCL INFO FONTS SELECT=“(8U(s0p10.00h12.00v0s0b3T” SELECT=“(0N(s0p16.67h8.5v0s0b0T” SELECT=“(s1p__v1s0b4101T(78X” SYMBOLSETS=“0D,0I,0N,0S,0U,1E,1F,1G,...” SELECT=“(8U(s1p__v0s3b4148T” Notes In the example listings, “,” “,” and “” identify the Carriage Return (decimal 13), Line Feed (decimal 10), and Form Feed (decimal 12) control codes.
Set Status Readback Location Type Command The Set Location Type command sets the status location type to the specified value. Location type is used in conjunction with the location unit to identify an entity location for a status request (Inquire Status Readback Entity command).
Set Status Readback Location Unit Command The Set Location Unit command sets the status location unit to the specified value. Location unit is used in conjunction with the location type to identify an entity location for a status request (Inquire Status Readback Entity command). Note that the unit value is interpreted differently, depending on the location type specified.
A value of 0 indicates all units of the location type. A printer reset (ECE) returns the location unit to its default value, 0. The printer retains the location unit setting. If this command is not sent to change the setting for an entity request, then the existing location unit setting is used. Note The location type and unit may be set in any order. Invalid combinations are not determined until the Inquire Entity command is received.
Entity Status Responses The status response for an Inquire Status Readback Entity command varies depending on the type of entity requested. The status responses for font, font extended, macro, user-defined pattern, and symbol set are described below. Font Response The status response information returned for font (inquire entity value field 0) varies. Depending on whether the printer’s font is a bitmap, unbound scalable, or bound scalable, different keywords are returned.
As mentioned, variations in the font response occur as a result of the font being a bitmap, bound scalable, unbound scalable, soft (downloaded) font, or the location type set to 1 (currently selected). These variations include slight differences in the information included in the “SELECT=” line, with the addition of different keywords (“SYMBOLSETS=” “LOCTYPE=” and “LOCUNIT=”). These variations are described in detail in the following paragraphs.
Unbound Scalable Fonts For unbound fonts, since multiple symbol sets can be associated with an unbound font, the “SYMBOLSETS=” keyword is added to list the available symbol sets and the symbol set sequence is no longer present in the “SELECT=” line. For example, the printer’s internal unbound scalable Courier (medium, fixed spaced) font and CG Times (bold italic, proportional spaced) fonts would be returned as shown below. PCL INFO FONTS SELECT=“(s0p__h0s0b4099T” SYMBOLSETS=“0D,0I,0N,0S,0U,1E,1F,1G,...
z For all fonts, if the font is a secondary font, then the “(“ characters are replaced by ”)” characters in the “SELECT=” line. “LOCTYPE=” identifies the location type of the currently selected font. The value returned corresponds to the value field of the Set Status Readback Type command. “LOCUNIT=” identifies the location unit of the currently selected font. The value returned corresponds to the value field of the Set Status Readback Unit command.
Font Extended Response The font extended response (inquire entity value field 4) provides a way to return the name and internal ID number of the font, as well as the “SELECT=” line. It is the same as a font status response (inquire entity value field 1), in that “SELECT=,” “SYMBOLSETS=,” “LOCTYPE=,” and “LOCUNIT=” are returned in the same manner. They are not re-described here; refer to the “Font Response” section for a description of their operation.
“NAME=” is returned for font extended status requests only. It identifies the name of the font, such as, Courier, Times Roman, Univers, etc., and its treatment (such as BdIt - bold italic) as listed in the font printout. For example, the font extended response for the printer’s internal bitmap Line Printer font and a downloaded unbound CG Palacio temporary font would be returned as shown below. PCL INFO FONTS EXTENDED SELECT=“(8U(s0p10.00h12.
A macro status response might appear as shown below. PCL INFO MACROS IDLIST=“1,3,8,29,32” User-Defined Pattern Response The status response for user-defined patterns (inquire entity value field 2) lists all of the user-defined pattern IDs (“IDLIST=”) for the patterns in the specified location. A user-defined pattern response might appear as shown below. PCL INFO PATTERNS IDLIST=“1,2,9,13,27,456” If the location type is set to 1 (currently selected), then “LOCTYPE=” and “LOCUNIT=” lines are added.
Symbol Set Response The response for symbol sets (inquire entity value field 3) lists all of the symbol set IDs (“IDLIST=”) for all of the symbol sets that can be bound to unbound scalable fonts in the specified location (type and unit). A symbol set response might appear as shown below. PCL INFO SYMBOLSETS IDLIST=“0U,2K,8M,8U,11U” Notes Status location type 1 (currently selected) is an invalid location for unbound font symbol sets and returns an error (“ERROR=NONE”).
Entity Error Codes If you request out-of-range values in the command value fields, or if the entity is unsupported or does not exist, or if the request is inappropriate, the printer responds with one of four possible errors: z Invalid Entity z Invalid Location z None z Internal Error ERROR=INVALID ENTITY If the entity type specified in the escape sequence is out of range or unsupported, an invalid entity error is returned.
ERROR=NONE If the entity type and location are valid, but there are no entities of the specified type in that location, or if the type is inappropriate for the specified entity (internal user-defined pattern or currently selected macro), then an error response is generated.
Free Space Command The Free Space command returns the amount of available memory. This response returns two values: the total available memory, and the largest available block of memory (refer to the “Memory Status Response” section later in this chapter for additional information). E C*s1M If a value other than 1 is sent, this command returns an error (“ERROR = INVALID UNIT,” refer to “Memory Error Response” section later in this chapter for additional information).
If you determine there is insufficient memory to hold the data to be downloaded, some action is required. One method to make more memory available is to send the Flush All Pages command. This causes the printer to clear (process) the current page data from memory without accepting any new data for processing (refer to the “Flush All Pages Command” described later in this section). Another, more comprehensive method to clear memory is to send the Printer Reset (ECE) command.
“LARGEST=” identifies the largest continuous block of available memory (in bytes). An example response is shown below: PCL INFO MEMORY TOTAL=100000 LARGEST=25000 The above example indicates that the printer has 100,000 bytes of available memory and the largest continuous block is 25,000 bytes. Memory Error Response If the Free Memory command value field is out of range (not 1), then the memory status response returns an invalid unit error.
Flush All Pages Command The Flush All Pages command suspends accepting input data until all pages currently in the printer are printed. This gives the printer time to clear some memory. E C&r#F # Default Range =0- Flush all complete pages 1 - Flush all pages = 0 = 0-1 A value of 0 indicates that only complete pages are to be processed. If a partial page exists, it is not processed. A value of 1 indicates that all page data including the partial page will be processed.
Echo Command The Echo command echoes its value field (in ASCII format) back to the host. E C*s#X # Default Range =Echo value (ASCII) = 0 = –32767 to 32767 If multiple users are requesting status, it can be difficult to distinguish one user’s status response from another. The Echo command provides the means to label status responses. Since the user-selected value for the value field is returned, this command can be used as a user identification mark or “place holder.
If the application sends the Echo command and Free Space command, the printer returns the response to the first Echo command and Free Space command, along with the response to the second request. The application will assume that the response received is the response to its last request. If the application uses random numbers in the Echo command, this type of mix-up will not occur.
Status Readback Programming Hints The following hints can assist in using the status readback feature. z PCL status readback is useful during the development of applications. Status readback allows you to determine that fonts, macros, user-defined patterns, and symbol set resources you have downloaded were accepted by the printer. z If the printer does not contain sufficient memory to accept a downloaded entity, the printer discards the data.
16-28 Status Readback EN