Printer Job Language Technical Reference Manual
Copyright and License © 2003 Hewlett-Packard Development Company, LP All Rights Reserved. Reproduction, adaptation, or translation without prior written permission is prohibited, except as allowed under the copyright laws. The information contained in this document is subject to change without notice. Publication Number: 5021-0380 Edition 12, 6/2003 Trademarks Adobe, PostScript, and the PostScript logo are trademarks of Adobe Systems Incorporated, which may be registered in certain jurisdictions.
Inside This Manual What You Can Learn From This Manual Printer Job Language (PJL) was developed by Hewlett-Packard to provide a method for switching printer languages at the job level, and for status readback between the printer and the host computer. PJL offers application programs an efficient way to remotely control Hewlett-Packard printers.
Manual Organization This manual is comprised of eleven chapters and four appendices. The first three chapters introduce you to the range of PJL features, PJL syntax and format, some rules about using PJL, and a brief description of each command. Chapter 4 explores the essential “kernel” commands—those commands that are part of almost every PJL job. Chapters 5 through 10 each describe a separate group of related commands. The remaining chapters cover programming tips and related PJL information.
Chapter 5. Job Separation Commands Chapter 5 describes the JOB and EOJ commands, which are used in combination to define job boundaries and provide job-related feedback, such as job completion. Chapter 6. Environment Commands This chapter explains setting the printer to a known state. The DEFAULT, INITIALIZE, RESET, and SET commands are explained here. Chapter 7.
Chapter 11. Programming Tips for Using PJL This chapter demonstrates how to create well-formed jobs and discusses common problems and things to watch for when using PJL commands. Samples are included to demonstrate different types of applications. Appendix A. Product-Specific Feature Support This chapter lists all of the PJL commands and shows which commands are supported by the different PJL printers.
Related Documents The following documents provide related information about Hewlett-Packard PCL 5 printers. PCL 5 Printer Language Technical Reference Manual The PCL 5 Printer Language Technical Reference Manual provides a description of the printer command language that controls PCL 5 printers. The manual provides explanations of each PCL command, and examples demonstrating how the commands are used to control the printer.
Manual Conventions This manual uses the following conventions: • Items in italics indicate names of variables. • Items in UPPERCASE letters indicate PJL command names and words you type verbatim. PJL command names referred to in text are also in uppercase. • Items in square brackets [ ] indicate optional parameters. The brackets themselves are not typed. • Items in brackets < > indicate a control code character (for example, for carriage return) or a special defined identifier.
Contents Printer Job Language Technical Reference Manual Inside This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-iii Manual Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-iv Related Documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-vii Manual Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Job Separation Commands JOB Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 EOJ Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 PJL Job Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Password Protection of Default Feature Settings . . . . . . . . . . . . . . . . . . . 5-10 Control Panel Lock . . . . . . . . . . . . . . . .
After Job Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-44 8 Device Attendance Commands RDYMSG Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 OPMSG Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 STMSG Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
HP LaserJet 5Si/ 5SiMx/5Si Mopier Comments . . . . . . . . . . . . . . . . . . . . . . . HP LaserJet 5Si Mopier Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HP LaserJet 4000 and 5000 Series Comments . . . . . . . . . . . . . . . . . . . . . . . HP LaserJet 1100 Series Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HP LaserJet 2100 Series Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HP Color LaserJet 4500 Series Comments . . . . .
1 Introduction to PJL What is PJL? Hewlett-Packard's Printer Job Language (PJL) was developed to give software applications more job-level printer control, and to provide printer status information to applications. PJL provides for the special needs of networks and other multi-user systems, in addition to enabling applications to simulate control panel functions that previously could not be controlled without pressing control panel keys.
Figure 1-1 PJL Resides Above Other Printer Languages Note Some HP printers, such as the LaserJet 4L, 5L, 6L, or 1100 Series printers, do not support printer language switching or job separation. See Appendix A for feature support information. Using PJL, software applications can request information such as printer model, configuration, and status.
The Benefits of PJL Listed below are some of the benefits PJL provides: • Programmatic printer language switching. PJL provides fully reliable switching between printer languages, such as PCL, Epson, IBM ProPrinter, and PostScript, directly from within applications. • Printer status readback. Printer model information, configuration, printer feature settings, and other printer status information can be obtained using PJL. • Programmatic front panel control.
Compatibility With Non-PJL Printers Because all HP printers do not support PJL, it is important to know what happens when PJL commands are sent to a non-PJL printer.
PCL Jobs When non-PJL printers receive PCL jobs, any PJL commands that precede the initial PCL printer reset command (E) print as ASCII text. When the initial printer reset command is received, it causes a page eject and the PCL job begins on a new page. The end result is a page or more of PJL commands followed by the PCL job, and possibly followed by more PJL commands.
1-6 Introduction to PJL EN
2 PJL Command Syntax and Format Introduction This chapter explains the conventions used to describe PJL command syntax. This chapter also describes the several different formats that PJL commands may take, giving examples of each. The chapter provides an explanation of how PJL-compatible printers handle illegal commands.
Syntax Conventions The following syntax conventions are used to describe the PJL commands in this manual: variables Items in italics indicate names of variables. COMMANDS Items in uppercase letters indicate PJL command names and words that you type verbatim. PJL command names referred to in text are also in uppercase. [] Items in brackets [ . . . ] indicate optional parameters. The brackets themselves are not typed.
The following illustration is an example of a PJL command line containing the ENTER command: The table below lists the control codes and special identifiers used in this manual: EN Horizontal tab character (ASCII 9). Line feed character (ASCII 10). Carriage return character (ASCII 13). Space character (ASCII 32). Escape character (ASCII 27). Form feed character (ASCII 12). White space, a result of one or more or .
Format of PJL Commands All PJL command lines follow one of the following four formats. Each format defines how commands using that format are structured. Format #1 %–12345X The only command that uses this format is the Universal Exit Language (UEL) command. Format #2 @PJL [] This format allows a PJL line with no command, and is used to add clarity to PJL command listings. You can use one or more of these commands to visually break up several lines of PJL commands.
[LPARM : personality]|[IPARM : port] variable = value [] , you can use either the LPARM command modifier or the IPARM command modifier, but not both. [option name [ = value ] ] — The option parameter specifies an option or sets a command option to a certain value. Examples include “@PJL INQUIRE COPIES” and “@PJL ENTER LANGUAGE = personality.” The range of values varies with each specific command and each printer model. A PJL command may have no options, or one or more options (an unlimited number).
• The placement of white space in PJL commands depends on its location within the command. Some white space is required and some is optional: • White space is required between the @PJL prefix and the PJL command name, and between the PJL command name and command modifiers. For example: @PJL OPMSG DISPLAY or @PJL ENTER LANGUAGE = personality • If white space is shown in any other place in the command, it is optional (see the examples below).
Types of Variables PJL uses alphanumeric variables, numeric variables, and strings. The following explains the three types of variables and their ranges. • Alphanumeric variables. Any combination of letters and digits, with the stipulation that the first character always must be a letter. Letters consist of the uppercase letters (Roman-8 characters 65 through 90) and lowercase letters (97 through 122). Digits consist of numbers 0 through 9 (characters 48 through 57).
• Strings. Enclosed in quotation marks, strings consist of any combination of characters from Roman-8 character 32 through 255, plus character 9 (horizontal tab), excluding character 34 (quotation marks). Examples of valid strings include: "This is a valid string." (Tabs are allowed in strings) "Print job #4655" Examples of invalid strings include: "This is not a valid" string." (Strings cannot contain quotation marks) "This is also notvalid.
Processing Invalid Commands There are two general types of invalid commands: those commands with syntax errors, and those that have syntax or semantic warnings. Each type is handled differently. • Syntax errors cause the printer to ignore the entire PJL command, and include errors such as unrecognized commands and command modifiers, strings missing closing double-quotes, numeric values missing digits before the decimal point, and numeric values encountered when alphanumeric values are expected.
Note Any errors that occur during PJL parsing can be received by enabling device status as described in Chapter 7 (send the @PJL USTATUS DEVICE = VERBOSE command). Appendix D lists the status codes that are received by the host when an invalid command is received and unsolicited verbose device status is enabled.
3 Using PJL Introduction This chapter describes how PJL commands are used. After reading this chapter, you can create basic jobs and perform simple PJL tasks, such as printer language switching and changing some PJL feature settings. To give you an understanding of where to look for more PJL information, this chapter explains how the manual categorizes PJL commands into groups of related commands. Each command has a brief description of its function to help familiarize you with the PJL language.
PJL Code Figure 3-1 3-2 Using PJL PCL Job PJL Code PostScript Job PJL Code PJL Commands Encapsulate Print Jobs EN
PJL Job Requirements PJL has certain job requirements that must be met to work correctly. Jobs that satisfy the following requirements are “well-formed” and work well with all PJL printers, both in single-computer/single-printer environments and network environments. Here are the requirements: • All PJL jobs must begin and end with a UEL command (%–12345X). This command exits the current printer language and returns control to PJL.
Some Sample PJL Jobs This section consists of two basic PJL jobs that illustrate how to use PJL. The first job changes a few printer control panel settings and prints a PCL file. The second job prints a PCL file followed by a PostScript file. (The ~ symbol indicates that the command line is actually part of the previous line.) Example: Changing Control Panel Settings This example simulates using PJL to control printer features that are not available in a particular application program.
What's Next? Now that you have learned the PJL requirements and have seen how to use PJL commands in the sample programs described on the previous page, look through the following “Command Groupings” table. It can help you find the information you need to add PJL capabilities to your application. If your application only uses PJL to switch printer languages, you may need to read only Chapter 4.
Command Groupings by Functionality This manual categorizes the PJL commands into related groups. Each group of commands is covered in a separate chapter, as indicated in the following table. This table lists each command and gives a short description of each. Command Group Kernel Commands (Chapter 4) Command Command Description Universal Exit Language (UEL) Exits current printer language and returns control to PJL. COMMENT Causes PJL to accept the command line as a comment.
Command Group Status Readback Commands (Chapter 7) EN Command Command Description INQUIRE Requests the current value for a specified environment variable. DINQUIRE Requests the default value for a specified environment variable. ECHO Returns the portion of the command to the host computer.
Command Group Device Attendance Commands (Chapter 8) PJL File System Commands (Chapter 9) 3-8 Using PJL Command Command Description RDYMSG Specifies a message that replaces the READY message on the printer control panel. Does not affect online state. OPMSG Displays specified message on printer control panel and takes printer offline. STMSG Displays specified message on printer control panel and takes printer offline.
EN Using PJL 3-9
3-10 Using PJL EN
4 Kernel Commands Introduction This chapter explains the following three PJL commands: • Universal Exit Language (UEL) command — exits the current printer language and returns control to PJL. • ENTER command — selects a printer language for processing the current job. • COMMENT command — enables developers to add comments to their PJL commands. Together, these commands provide a minimum set of tools necessary to implement job control.
Universal Exit Language (UEL) Command The Universal Exit Language (UEL) Command causes the printer to exit the active printer language. The printer then returns control to PJL. Note Use the UEL command at the beginning and end of every PJL job. You do not need a UEL command before every PJL command. The examples demonstrate using this command. Syntax: %-12345X Parameters: The UEL command does not use any parameters.
the “Methods of Printer Language Switching” later in this chapter). Instead of relying on implicit switching, use the ENTER command to specify the printer language, even if the printer has only one printer language. The following example demonstrates the use of the UEL command. Example: Using the UEL Command This example enters PCL and prints a PCL job. Notice how the job begins and ends with the UEL command, and how the first UEL command is followed immediately by the @PJL prefix.
ENTER Command The ENTER command enables the specified personality (such as PCL or PostScript). Use this command to select the printer language for printing subsequent data. Syntax: @PJL ENTER LANGUAGE = personality [] Parameters: Parameter Range personality PCL, POSTSCRIPT, ESCP, Others * * Other personalities might be supported. • personality — The personality variable must be set to PCL, POSTSCRIPT, ESCP, or one of the other supported personalities.
Note To select the ESC/P personality, always be sure to use the @PJL ENTER LANGUAGE = ESCP command to explicitly select it. For any job containing personality-specific data, send the ENTER command if the intended printer language is known, instead of relying on the printer's ability to switch to the default printer language. This is true even if there is only one available personality. When a printer language is specified, that language currently must be installed in the printer.
COMMENT Command The COMMENT command enables you to add a line of information as a comment. Use this command whenever you want to add an explanation to PJL commands. Syntax: @PJL COMMENT remarks [] Parameters: Parameter Range remarks Roman-8 character codes 33 through 255 and , starting with a printable character. Comments: The COMMENT command is useful for documenting lines of PJL commands.
@PJL @PJL JOB NAME = "Using Comments" @PJL @PJL @PJL COMMENT **** TURNING OFF **** @PJL COMMENT **** RESOLUTION **** @PJL COMMENT **** ENHANCEMENT **** @PJL SET RET = OFF @PJL @PJL COMMENT ***** ENTERING PCL ***** @PJL ENTER LANGUAGE = PCL E . . . . PCL Job . . . .
particular printer language. Once it recognizes the printer language, the printer backs up to the beginning of the sampled print data and switches to the printer language determined to be most appropriate. Then it begins to parse the data in the newly selected printer language. Note HP LaserJet 4V and 4MV printers cannot properly context-switch into the ESC/P personality by sensing the data stream. Developers who use ESC/P must use explicit or implicit switching.
5 Job Separation Commands Introduction This chapter explains the JOB and EOJ commands. These commands are used to describe the boundaries of a job, indicating where the PJL job begins and ends. The commands can be used to name a job, and they support a non-printing mode for printing selected pages within a job. When used in combination with status readback, the printer also can send status information regarding when the printer starts processing the job and when the job is complete.
JOB Command The JOB command informs the printer of the start of a PJL job and synchronizes the job and page status information. It also is used to specify which pages of a job are printed. Use the JOB/EOJ commands for spooling and related applications to monitor printing status, name a job, print portions of a job, or to mark job boundaries to keep the printer from treating a single print job as multiple jobs (for example, when printing a job with a banner page).
• NAME = "job name" — The command option NAME tags the print job with a job name. The variable job name can be any combination of printable characters and spaces or horizontal tab characters, with a maximum of 80 significant characters. The job name variable is a string and must be enclosed in double quotes, as shown in the command syntax. If the NAME option is included, the unsolicited job status includes the job name (if unsolicited job status is enabled).
• DISPLAY="display text " — The command option DISPLAY is used to display a job message on the control panel display. The message is displayed when the printer begins to work on this job and is removed when the last page of this job reaches the output bin. The variable "display text" can be any combination of printable characters and spaces or horizontal tabs, with a maximum of 80 characters. The actual number of characters displayed depends on the printer.
JOB commands can be nested. For example, a spooling application can send a PJL job that uses the JOB command to another spooler that encapsulates the spooled job with another JOB/EOJ command pair. When this is done, note that the job name from the outer JOB command is cleared or overwritten by the inner command. Example: Using the JOB Command to Print Selected Pages You can use the JOB command with the START and END options to print selected pages of a job.
Example: Using the JOB Command to Monitor Job Status This example demonstrates a PostScript print job that is spooled before printing. The job actually consists of three separate sections (notice the UEL commands that bound the three sections—the first section does not need a closing UEL command since the printer is already in PJL mode): • The first section is sent by the spooler. These lines name the print job and send the USTATUS command so the spooler can monitor job status.
Example: Nested JOB Commands This example shows a PCL job that was sent to spooler 1, which in turn was sent to spooler 2 (the nested jobs are indented). Note that the first job name is overwritten by the second job name (“Spooler 1 Job”) when the second JOB command is processed.
EOJ Command The EOJ command informs the printer that the job has completed. Use this command whenever you use the JOB command. Note The JOB and EOJ commands are always used in pairs. Do not use one without the other. Syntax: @PJL EOJ [NAME = "job name"] [] Parameters: Parameter NAME = "job name" Functional Range Roman-8 characters 33 thru 255, , Default N/A • NAME = "job name" — Using the EOJ command, you can name your print job.
• Terminates the non-printing mode (enabled by using the START/END options). The non-printing mode, if enabled by the last JOB command, only applies to the previously received data, and does not effect any future pages until another JOB command enables the non-printing mode again. Effect on Unsolicited Job Status When the printer receives this command, it returns unsolicited job status information, if enabled, when the last page of the job exits the printer and is in the output tray.
PJL Job Security HP LaserJet 2100 series, 4000 series, 4500 series, 5000 series, 8000 series, 8100 series, 8500 series, 4/4M Plus, 4V, 4MV, 4Si, 4SiMx, 5, 5M, 5Si, 5SiMx, 5Si Mopier, 5P, 6P, and 6MP printers support the following types of PJL security: • Password protection of default feature settings—this type of security prevents applications from modifying the printer's default feature settings unless the correct password is specified.
Control Panel Lock You can “lock” the control panel by sending the @PJL DEFAULT CPLOCK = ON command. When the control panel is locked, the user cannot change any control panel settings. If the user tries to change any control panel settings, the message “MENUS LOCKED” appears on the control panel display for about 5 seconds. The CPLOCK variable can only be changed from within “secure” PJL jobs (jobs with the correct non-zero PASSWORD value in the JOB command).
Example: Using PJL Security This example demonstrates how to set a password and to lock the control panel so users cannot modify control panel settings. It is assumed the password value at the start of job is 7654. The example changes the password to 1776.
Job Cancellation HP LaserJet 2100 series, 4000 series, 4500 series, 5000 series, 8000 series, 8100 series, 8500 series, 5, 5M, 5Si, 5SiMx printers and the LaserJet 5Si Mopier support job cancellation using the printer control panel.
End of Job Notification Near the end of the PJL job, the application should send the EOJ command as described in this chapter. If unsolicited job status is enabled when the last page of the job is delivered to the output bin, the printer responds to the EOJ command with an @PJL USTATUS JOB END response. If JOB ID reporting is enabled, the response includes a printer-generated ID number associated with the PJL job name provided in the EOJ command. The response also contains a RESULT field.
Job Cancellation Unsolicited Status As soon as the printer receives notification that a job is cancelled, the printer provides the @PJL USTATUS JOB CANCELED message to the driver/spooler if unsolicited job status is enabled.
5-16 Job Separation Commands EN
6 Environment Commands Introduction Hewlett-Packard printers have many features you can set using printer commands or by pressing control panel keys. Since previous jobs can change feature settings to unwanted values, applications should set printer features affecting the print job to a desired state at the beginning of the job. Setting features to a desired state is easily accomplished using a combination of PJL and printer language commands.
Print Environments At any time during printer operation, the printer's current feature settings are referred to collectively as the print environment. When certain printer events occur, such as the incidence of a printer language reset, RESET command, or other PJL reset condition, the print environment settings can default to the settings of other stored environments.
• User Default Environment — This environment contains the values that are set using the DEFAULT command or the control panel keys. These values are stored in non-volatile RAM (in those printers containing NVRAM). Following any PJL reset condition, these values are placed into the PJL Current Environment. If the printer has a control panel, the User Default values are displayed on the control panel under the appropriate menu.
Figure 6-1 How Environments Affect the Print Job 6-4 Environment Commands EN
Changing Environment Settings The following scenario elaborates on how the print environment changes during printer operation. The “number of copies” feature is used to show feature changes as events occur. 1 The first time the printer is turned on after it leaves the factory (or after the INITIALIZE command), the number of copies feature is set to the factory default value of 1 copy.
Example: Changing Environment Settings This example shows the values stored in the different environments when commands are issued. The example begins with the number of copies set to 1 in all environments (the Factory Default Environment setting). The table reflects the current settings after each command.
Factory Default Environment Stored permanently in printer memory—settings cannot be modified. User Default Environment The User Default Environment is set to the factory default values when the printer initially is powered on—before printer commands are sent from an application or any control panel settings are changed. Factory default settings cannot be read programmatically, but they are listed in the PCL 5 Comparison Guide.
PJL Reset Conditions 6-8 Environment Commands EN
“PJL reset conditions” are listed below. Note that PJL reset conditions differ from printer language resets (such as E). Printer language resets load the PJL Current Environment values into the Modified Print Environment. PJL reset conditions are more powerful. They load the User Default values into the PJL Current Environment, and also into the Modified Print Environment.
Key Points to Remember About Environments When using PJL to set the printer to a desired state, remember the following points. • At the beginning of a PJL job, the current feature settings are the same as the control panel values or those features set with the DEFAULT command. • When a printer language is entered, the current feature settings (Modified Print Environment) become the same as the PJL Current Environment. From this starting point, the printer language commands modify the feature settings.
PJL Environment Variables This section lists the PJL environment variables. General PJL environment variables (those not printer language-specific) are listed first, followed by printer language-specific variables. For most variables except the read-only variables, value settings can be modified using the following commands: • SET — sets PJL Current Environment settings that remain active until the next “PJL reset condition” (e.g. JOB, EOJ, RESET, INITIALIZE commands—see page 6-8).
General PJL Environment Variables The following table lists the PJL environment variables that are not printer language-specific. When you use these variables, do not use the LPARM : personality option. The range of values for each variable may differ for the various printer models. Appendix A lists the environment variables and indicates which printers support each variable.
General PJL Environment Variables (continued) Variable BITSPERPIXEL Description Sample Value Range 2, 1 For PCL 6 only, this variable controls the number of bits per pixel used when printing grayscale or color images. The valid values are dependent on the current setting of RESOLUTION. If RESOLUTION is 300 or 1200, the only valid BITSPERPIXEL value is 1. If RESOLUTION is 600, the only valid BITSPERPIXEL values are 1 and 2.
General PJL Environment Variables (continued) Variable Description Sample Value Range COPIES Number of uncollated copies for each page of the job. 1 to 999 COURIER Sets the version of the Courier font. REGULAR, DARK CPLOCK Sets the default control panel lockout state. If CPLOCK is set to ON, users cannot modify feature settings using the control panel keys. CPLOCK can only be set by a secure job using the DEFAULT command, and can be read using the INQUIRE or DINQUIRE commands.
General PJL Environment Variables (continued) Variable Sample Value Range Description FORMLINES Number of lines per page. This variable 5 to 128 is tied to both the PAPER and ORIENTATION variables. If the value of either of those variables is changed, then the FORMLINES variable automatically is updated to maintain the same line spacing.
General PJL Environment Variables (continued) Variable Description Sample Value Range INTRAY2 Returns the auto-selection lock status LOCKED, for tray 2 (usually the standard cassette UNLOCKED or lower cassette, depending on the printer). INTRAY3 Returns the auto-selection lock status LOCKED, for tray 3 (usually the optional cassette UNLOCKED or envelope feeder, depending on the printer). INTRAY3 is a valid variable only if installed.
General PJL Environment Variables (continued) Variable Sample Value Range Description LETTER, LEGAL, A4, A3, LEDGER, JISB4, JISB5, EXECUTIVE, CUSTOM INTRAY5SIZE Returns the size of the paper currently installed in the first optional input tray. INTRAY5SIZE is a valid variable only if the optional tray currently is installed. If it is not installed, the printer returns “?” instead of a tray size, indicating the variable is unknown.
General PJL Environment Variables (continued) Variable Description Sample Value Range JOBNAME “jobname string” Assigns a job name to a “Proof and Hold” job. This is different than the NAME variable associated with the JOB command. JOBOFFSET Sets the default job offset state. LANG Sets the default display language for the ENGLISH, display panel and unsolicited status FRENCH, feedback display panel messages.
General PJL Environment Variables (continued) Variable Sample Value Range Description MPTRAY Returns the configuration value of the multi-purpose tray. CASSETTE, MANUAL, FIRST ORIENTATION Page orientation. PORTRAIT, LANDSCAPE OUTBIN Sets the default output bin. (For HP LaserJet 4Si, 4SiMx, 4000 series, 5Si, 5SiMx, 5Si Mopier printers, the UPPER output bin is a face-down, correct-order bin. The LOWER output bin is a face-up reverse-order bin.) UPPER, LOWER, OPTIONALOUTPUTBIN1, . . .
General PJL Environment Variables (continued) Variable Description Sample Value Range PAGEPROTECT OFF, LETTER, Page protection configuration. The LEGAL, A4, AUTO, page protection feature reserves a ON block of printer memory to prevent printer overrun errors (error 21) when formatting very dense or complex images, especially HP-GL/2 images. The variable can be set to any legal value at any time, regardless of the current amount of free memory or the currently set resolution.
General PJL Environment Variables (continued) Variable Sample Value Range Description PAPERLENGTH Sets the length of the paper in decipoints (1/720th of an inch). 0 to 432000 PAPERWIDTH Sets the width of the paper in decipoints 0 to 432000 (1/720th of an inch). PARALLEL Sets the speed of the parallel port. This FAST, SLOW will not take effect until the next power cycle. PASSWORD Default password for PJL security.
General PJL Environment Variables (continued) Variable Description Sample Value Range PLANESINUSE Defines the number of planes of data in 3, 1 a job. A value of 1 indicates a monochrome job, while a value of 3 indicates a color job. POWERSAVE Enables or disables power-saving feature. POWERSAVETIME Sets the time (in minutes) the printer will 1, 15, 30, 60, 120, remain idle before it enters powersave 180, 240, 280,480 mode if powersave is on.
General PJL Environment Variables (continued) Variable Description Sample Value Range REFILLTHRESHOLD Specifies as a percentage the level of 5 to 100 ink remaining in the pen before a refill is started. 100% means that refilling takes place when there is no usable ink remaining in the pen. Lower threshold values cause the printer to analyze the density of colors of the next swaths. If the density is increasing, the refill is done as soon as the threshold value is reached.
General PJL Environment Variables (continued) Variable Description Sample Value Range RESOLUTION Print resolution in dots per inch. When a 300, 600 job is sent, if there is not enough memory to run with the current resolution and page protection configuration, the system temporarily overrides the resolution and/or page-protect values to run the job.
General PJL Environment Variables (continued) Variable Description Sample Value Range TIMEOUT Duration of I/O timeouts in seconds. If 5 to 300 the printer waits longer than the timeout value without receiving any data, it ends the print job and begins accepting data from other I/O ports, if any. In most cases, do not adjust this feature unless the printer times out during normal operation, in which case you can try extending the timeout duration. (See the “Timeouts” description in Appendix A.
Port-Specific Variables (LaserJet 4PJ Only) The following variable is I/O port-specific in the HP LaserJet 4PJ printer, and can be set and requested using PJL. This variable must be set using the IPARM : port option. For the HP LaserJet 4PJ, the valid values for port are SERIAL and PARALLEL.
PCL-Specific Variables The following variables are PCL-specific and can be set and requested using PJL. These variables must be set using the LPARM : PCL option. A sample value range is shown in this table. See Appendix A for the actual value range for each PJL printer, or use the INFO VARIABLES command to request these values from the printer. Note These variables are listed in alphabetical order, not the order they are used.
PCL-Specific Variables (continued) Variables FONTNUMBER (continued) Description Sample Value Range 0, 1, 2, . . . n If the value of the FONTSOURCE changes, then the FONTNUMBER variable automatically is changed to the lowest numbered font in the new font source (0 if the new font source contains a default-marked font; 1 if it does not). If the SYMSET variable changes, the FONTSOURCE and FONTNUMBER default to the highest priority default-marked font (lowest numbered font).
PCL-Specific Variables (continued) Variables FONTSOURCE Sample Value Range Description The valid values for FONTSOURCE are: z I (Internal Fonts) z C, C1, C2 (Cartridge Fonts) z S (Permanent Soft Fonts) z M1, M2, M3, M4 (Fonts stored in one of the printer's ROM SIMM slots) I, M1, M2, M3, M4, C, C1, C2, S (the number of cartridge and SIMM slots varies by printer) The valid values for this variable depend on the currently installed font base.
PCL-Specific Variables (continued) Variables LINETERMINATION Description Sets the default PCL line termination value: Sample Value Range 0, 1, 2, 3 0: CR = CR, LF = LF, FF = FF (no change) 1: CR replaced by CR-LF, LF = LF, FF = FF 2: CR = CR, LF replaced by CR-LF, FF replaced by CR-FF 3: CR replaced by CR-LF, LF replaced by CR-LF, FF replaced by -->CR-FF PITCH 0.44, 0.45, . . . Pitch of the default font in units of 99.99 characters per inch (the default font must be a fixed-pitch scalable font).
PostScript-Specific Variables The following table lists the currently defined PostScript-specific variables. These variables can be set using the LPARM : POSTSCRIPT option. Variable ADOBEMBT Sample Value Range Description Normally, when PostScript formats a page in OFF, ON, AUTO memory for printing, it formats a full page (full frame). This is the normal operation for PostScript (Adobe MBT set to OFF). In order for the printer to format full frame it must have sufficient memory to store the full page.
ESC/P-Specific Variables The following table lists the currently defined ESC/P-specific variables which are valid only for HP LaserJet 4PJ and 4LJPro printers, and optionally for HP LaserJet 4V and 4MV printers. These variables can be set using the LPARM : ESCP option. Note that HP LaserJet 4PJ, 4V, and 4MV factory defaults for these variables are in parentheses.
Variable Sample Value Range Description CARRIAGERETURN (CR), CRLF Controls how ESC/P interprets the carriage return (CR) control character. The valid values for CARRIAGERETURN are: CR–CR maps to carriage return;CRLF–CR maps to carriage return and linefeed. CHARACTERSET Default character set used for 1-byte printing. Valid values for CHARACTERSET are: KANA– Use katakana character set; EG–Use extended graphics character set.
Setting the Printer to a Desired State At the beginning of each print job, printer features which affect the printed output must be set to a desired state to print the job as expected. This can be accomplished in two ways: • If the printer has a control panel, the user sets the control panel to values that are appropriate for all users sharing the printer. • For features that must be set on a job-by-job basis, use printer language commands. If a feature cannot be set with a printer language, use PJL.
Example: Setting the Printer to a Desired State The following example demonstrates setting HP LaserJet 4 and 4M printers to a known state. For the specific printer you are configuring, consider which environment features you can modify.
DEFAULT Command The DEFAULT command sets the User Default Environment value for the specified environment variable. This value is stored in non-volatile RAM (if the printer has NVRAM) and is activated following a PJL reset condition. The DEFAULT command does not affect the current print environment, but takes effect when a PJL reset condition occurs. Use this command to change the default value for any environment setting.
• IPARM : port — This optional parameter is used to set port-specific variables. The HP LaserJet 4PJ is the only printer which supports port-specific variables. • IPARM : port — This option must be used when setting port-specific variables. Valid values for port for the HP LaserJet 4PJ printer are SERIAL and PARALLEL. • variable = value — This parameter sets one of the environment variables to the specified value.
PRTPSERRS, must be set using this option. Variables that are not personality-specific cannot be set using the LPARM : personality option. All port-specific variables must be set using the IPARM: port option. Variables that are not port-specific cannot be set using the IPARM : port option. Default values set with this command affect the printer control panel value and the feature setting stored in non-volatile RAM (in those printers that have a control panel and NVRAM).
INITIALIZE Command The INITIALIZE command resets the PJL Current Environment and the User Default Environment variables to their Factory Default values. This command does not affect the I/O configuration values, some of the configuration values, and the unsolicited status settings. Use the INITIALIZE command to set the printer environment values to their factory default state, such as when you move the printer to a new installation site.
Variable Names BINDING ORIENTATION COPIES OUTBIN CPLOCK PAGEPROTECT DISKLOCK PAPER DUPLEX PASSWORD ECONOMODE PERSONALITY FINISH QTY FORMLINES REPRINT IMAGEADAPT RESOLUTION JOBOFFSET RET MANUALFEED TIMEOUT PCL-Specific Variables FONTNUMBER PTSIZE FONTSOURCE SYMSET PITCH PostScript-Specific Variables JAMRECOVERY PRTPSERRS ESC/P-Specific Variables ANKCONDENSE FONT CARRIAGERETURN TOPMARGIN CHARACTERSET Note The environment variables may vary with different HP LaserJet printer mo
Example: Using the INITIALIZE Command This example initializes the printer: %-12345X@PJL @PJL COMMENT Initialize settings to @PJL COMMENT factory defaults @PJL INITIALIZE %-12345X Related Commands: DEFAULT, RESET, SET EN Environment Commands 6-41
RESET Command The RESET command resets the PJL Current Environment variables to their User Default values. This command has the same effect on the PJL Current Environment as power-cycling the printer. Use this command at the end of PJL jobs that use the SET command to set the printer back to its default state. Syntax: @PJL RESET [] Parameters: The RESET command has no parameters.
Variable Names BINDING ORIENTATION COPIES OUTBIN CPLOCK PAGEPROTECT DISKLOCK PAPER DUPLEX PASSWORD ECONOMODE PERSONALITY FINISH QTY FORMLINES REPRINT IMAGEADAPT RESOLUTION JOBOFFSET RET MANUALFEED TIMEOUT PCL-Specific Variables FONTNUMBER PTSIZE FONTSOURCE SYMSET PITCH PostScript-Specific Variables JAMRECOVERY PRTPSERRS ESC/P-Specific Variables ANKCONDENSE FONT CARRIAGERETURN TOPMARGIN CHARACTERSET EN Environment Commands 6-43
Example: Using the RESET Command The following example uses a RESET command after the print job to return the features to their previous state: %-12345X@PJL @PJL COMMENT Resets variables to @PJL COMMENT control panel settings @PJL SET RESOLUTION = 600 @PJL SET RET = MEDIUM @PJL ENTER LANGUAGE = PCL E . . . PCL job . . .
SET Command The SET command enables you to change the value of PJL Current Environment variables for the duration of a PJL job, or until a PJL reset condition defaults the value. Use this command to create a job-specific environment. Note When the SET command changes the PAGEPROTECT or RESOLUTION status, printer memory is reconfigured (except for printer memory in the HP LaserJet 4L printer). This erases all downloaded fonts, PCL macros, and PostScript dictionaries, however no I/O data is lost.
• variable = value — this parameter sets one of the environment variables to the specified value. For example, the @PJL SET RESOLUTION = 600 command sets the current resolution to 600 dots per inch. See the table below for all valid variables and values. If you require a more detailed description of a particular variable, see the “Environment Variables” section earlier in this chapter.
Comments: The SET command enables you to specify either general variables which are used by all personalities, or printer language-specific variables. Printer language-specific variables must be specified using the LPARM : personality option. Features that are not printer language-specific cannot be specified with the LPARM option. All port-specific variables must be set using the IPARM : port option. Variables that are not port-specific cannot be set using the IPARM : port option.
Example: Using the SET Command This example uses the SET command to create a desired state before sending a PostScript job. The SET command is used only to set those features that affect the printed output and that cannot be set using the desired personality. After the job has been sent, the RESET command is issued to return all features to their default values.
7 Status Readback Commands Introduction PJL allows applications to request configuration and status information from the printer. The printer also can be programmed to send unsolicited status information to the application when printer events occur. For example, the printer can send status information indicating the printer door is open, toner is low, online/offline status, the text displayed on the control panel, and other pertinent information.
Note For information about products newer than those included in this book, see the Printer Job Language Technical Reference Addendum, which includes product-specific information about newer products, as well as commands and variables added to PJL to support these newer products.
Printer Status Requirements To receive status information from the printer, the application must have program code that handles the status information sent from the printer. Synchronizing Status Readback Responses Status responses are directed to the printer's I/O port from which the request is received. When using status readback, applications must synchronize status messages to ensure that status responses are indeed the requested status.
Format of Status Readback Responses When PJL sends printer status information to the host, the response is in a readable ASCII format that always begins with the @PJL prefix and ends with a character. For example, the readback response for the INQUIRE command is: @PJL INQUIRE [LPARM:personality | IPARM:port] ~variable value Your application should be able to read all the data between the “@PJL” header and the control code.
INQUIRE Command The INQUIRE command is used to obtain the current value of a specified PJL environment variable, including read-only variables. Use the INQUIRE command to find out the setting for a particular PJL feature, such as ORIENTATION.
Note The permissible variables and range of values for each variable may not be the same in all HP LaserJet printer models. See Appendix A for a list of valid variables, or send the @PJL INFO VARIABLES command to request this information directly from the printer. • value — This parameter is the returned value of the requested variable. For example, if you send the @PJL INQUIRE COPIES command, and the PJL Current Environment setting is 65, the returned value is 65, indicating 65 copies.
If a printer language-specific variable is not available because that printer language is not installed or is invalid, or if a port-specific variable is not available because that port is not supported, the command will return an appropriate error code if USTATUS DEVICE=VERBOSE is enabled. Note The LPARM : personality option must be used when requesting printer language-specific information. The IPARM : port option must be used when requesting port-specific information.
@PJL ECHO 02:18:23.9 05-30-92 @PJL INQUIRE RET MEDIUM @PJL INQUIRE PAGEPROTECT OFF @PJL INQUIRE RESOLUTION 600 @PJL INQUIRE PERSONALITY AUTO @PJL INQUIRE TIMEOUT 15 Example: Using INQUIRE for Printer Language-Specific Variables This example requests the PCL settings for pitch, point size, and symbol set.
@PJL ECHO 12:22:23.9 11-05-92 @PJL INQUIRE LPARM:PCL PITCH 10.00 @PJL INQUIRE LPARM:PCL PTSIZE 12.
DINQUIRE Command The DINQUIRE command is used to obtain the default value of a specified PJL environment variable. Use the DINQUIRE command to find the User Default Environment setting for any environment variable, including read-only variables.
Note The supported variables and range of values for each variable may not be the same in all PJL printer models. See Appendix A for a list of valid variables for each printer, or send the @PJL INFO VARIABLES command to request this information directly from the printer. • value — This parameter is the returned value of the requested variable.
Comments: If your application has status readback capability, you can request the default setting of any valid environment variable. The returned value indicates the User Default Environment value for the feature. Since the DINQUIRE command returns only the value for one feature, you must send multiple DINQUIRE commands for data about more than one feature.
@PJL ECHO 08:10:33.7 04-17-93 @PJL DINQUIRE RESOLUTION 600 @PJL DINQUIRE PERSONALITY AUTO Example: Using DINQUIRE for Printer Language-Specific Variables This example requests the default PCL pitch and symbol set using the DINQUIRE command. The printer returns values of 10.00 and ROMAN8. %-12345X@PJL @PJL COMMENT Inquiring Default PCL Settings ~ @PJL ECHO 11:03:05.
ECHO Command The ECHO command prompts the printer to return a specified message to the host computer. Use the ECHO command to synchronize the printer with the host computer to ensure that the status received is the requested status information.
Use the ECHO command to synchronize status so that you know the status you are receiving is the requested status. To do this, send an ECHO command to the printer, and then discard the incoming status messages until your message is echoed back. Eliminate all data received from the printer up to the echoed response string. For the remainder of your print job, you can be sure that all status messages you receive after your echoed message were requested by your application.
INFO Command The INFO command requests a specified category of information (see table below). Use this command to find the printer model, configuration, memory available, page count, status information, PJL file system information, and a list of the printer variables, including environmental, printer language-dependent, and unsolicited status variables.
Comments: When the printer receives the INFO command, it returns the requested information. Only one category can be used for each INFO command. Each category is described below, with the format of the printer's response. If the printer does not support the specified category, the returned information is as follows: @PJL INFO category "?" ID Category The INFO ID command provides a way to identify the type of printer used.
Variables appear in the response only if they are installed in the printer. For example, if a HP LaserJet 4 printer does not have the lower paper cassette installed, the INTRAY3 option is not returned in the response. The general format of the returned information is: @PJL INFO CONFIG feature[=value][ feature information] [returned option[ attribute]] . . . . . .
Parameter Format Description feature Name of a printer feature, such as alphanumeric value (any combination of letters [ASCII DUPLEX or FONT CARTRIDGE SLOTS. 65-90 or 97-122] and/or digits [ASCII 48-57], beginning with a letter) value numeric value Indicates a feature value, such as MEMORY=500000, or how many and what type of options follow, such as [2 ENUMERATED].
%-12345X@PJL @PJL COMMENT Using @PJL INFO CONFIG @PJL ECHO 09:51:48.3 12-24-92 @PJL INFO CONFIG %-12345X A sample HP LaserJet 4 printer response for this example is shown on the following page. Other printers may respond differently. @PJL ECHO 09:51:48.
FILESYS Category The INFO FILESYS command returns the following information for each volume intialized on the PJL file system: • Total capacity • Volume label • Free space • Volume read/write status • Location Example: Using the INFO FILESYS Command %-12345X@PJL @PJL COMMENT Using @PJL INFO FILESYS @PJL ECHO 11:33:42.3 9-20-96 @PJL INFO FILESYS %-12345X A sample HP LaserJet 5 printer response for this example is shown below.
MEMORY Category The INFO MEMORY command returns the total number of bytes of free memory space and the largest free memory block. Note To determine the amount of memory available for a particular personality, use the personality command instead of the INFO MEMORY command. For example, to find the amount of memory available for PCL 5, use the Free Space command (*s1M). See the PCL 5 Printer Language Technical Reference Manual for more information about PCL status readback.
PAGECOUNT Category The INFO PAGECOUNT returns the number of pages printed by the current print engine. This returned number is an indication of printer usage. Example: Using the INFO PAGECOUNT Command %-12345X@PJL @PJL COMMENT Using PJL INFO PAGECOUNT @PJL ECHO 06:53:29.3 1-25-93 @PJL INFO PAGECOUNT %-12345X A sample HP LaserJet 4ML printer response for this example is shown here. Some printers do not return the label “PAGECOUNT=” in front of the page count.
STATUS Category The INFO STATUS command returns online status (TRUE=online, FALSE=offline), the message currently displayed on the control panel, and a status code. In the following example, the status code is 10001, which means the printer is ready. (See Appendix D for a list of all printer status codes.) Only the “string” portion of the “DISPLAY =” status message is localized; the same message as that displayed on the control panel appears in whichever language is used.
VARIABLES Category The INFO VARIABLES command returns a list of the environment and printer language-dependent variables. Use this command to find a list of the variables, the current setting for each, and the possible values. The set of printer language-specific variables returned by the printer depends on the current environment and the printer languages installed. Each add-on printer language has its own specific variables.
%-12345X@PJL @PJL COMMENT Using the @PJL INFO @PJL COMMENT VARIABLES Command @PJL ECHO 07:22:03.8 12-03-92 @PJL INFO VARIABLES %-12345X A sample HP LaserJet 4 printer response for this example is shown below. Other PJL printers may provide a somewhat different response: @PJL ECHO 07:22:03.8 12-03-92 @PJL INFO VARIABLES COPIES=1 [2 RANGE] 1 999 PAPER=LETTER [9 ENUMERATED] LETTER LEGAL A4 . . .
RET=MEDIUM [4 ENUMERATED] OFF LIGHT MEDIUM DARK PAGEPROTECT=OFF [4 ENUMERATED] OFF LETTER LEGAL A4 RESOLUTION=600 [2 ENUMERATED] 300 600 PERSONALITY=AUTO [3 ENUMERATED] AUTO PCL POSTSCRIPT TIMEOUT=15 [2 RANGE] 5 300 MPTRAY=CASSETTE [3 ENUMERATED] MANUAL CASSETTE FIRST INTRAY1=UNLOCKED [2 ENUMERATED] UNLOCKED LOCKED INTRAY2=UNLOCKED [2 ENUMERATED] UNLOCKED LOCKED INTRAY3=UNLOCKED [2 ENUMERATED] UNLOCKED LOCKED CLEARABLEWARNINGS=ON [2 ENUMERATED READONLY] JOB ON AUTOCONT=OFF [2 ENUMERATED READONLY] OFF ON EN
DENSITY=3 [2 RANGE READONLY] 1 5 LOWTONER=ON [2 ENUMERATED READONLY] OFF ON INTRAY1SIZE=LETTER [9 ENUMERATED READONLY] LETTER LEGAL A4 EXECUTIVE COM10 MONARCH C5 DL B5 INTRAY2SIZE=LETTER [4 ENUMERATED READONLY] LETTER LEGAL A4 EXECUTIVE INTRAY3SIZE=LETTER [4 ENUMERATED READONLY] LETTER LEGAL A4 EXECUTIVE INTRAY4SIZE=COM10 [5 ENUMERATED READONLY] COM10 MONARCH C5 DL B5 LPARM:PCL FONTSOURCE=I [1 ENUMERATED] I LPARM:PCL FONTNUMBER=0 [2 RANGE] 0 50 LPARM:PCL PITCH=10.00 [2 RANGE] 0.44 99.
LPARM:PCL PTSIZE=12.00 [2 RANGE] 4.00 999.75 LPARM:PCL SYMSET=ROMAN8 [31 ENUMERATED] ROMAN8 ISOL1 ISOL2 . . . . . . WIN30 LPARM:POSTSCRIPT PRTPSERRS=OFF [2 ENUMERATED] OFF ON USTATUS Category The INFO USTATUS command lists each type of unsolicited status supported by the printer, such as DEVICE, JOB, PAGE, and TIMED (see the “USTATUS Command” discussion on the next page for information about unsolicited status).
A sample HP LaserJet 4 printer response for this example is shown below. Responses for other PJL printers may vary. @PJL ECHO 08:10:09.
USTATUS Command The USTATUS command is used to enable or disable unsolicited printer status. Unlike the status information solicited by sending the INQUIRE, DINQUIRE, or INFO commands, unsolicited status is sent automatically when the status changes.
Parameters: Variable DEVICE JOB PAGE TIMED Value Description ON Enables unsolicited device status for all status changes (see the “DEVICE Variable” description below) VERBOSE Enables unsolicited device status for all status changes plus notification of all PJL parser warnings and errors. The VERBOSE value should only be used during application development.
Comments: Unsolicited status allows you to automatically receive device, job, page, or timed status without requesting it. Each type of unsolicited status provides different information and is described on the following pages. Some printer models may have more (or fewer) types of unsolicited status than DEVICE, JOB, PAGE, and TIMED. You can have the printer list the various types of unsolicited status by issuing the INFO USTATUS command. See “Example: Using the INFO USTATUS Command” for an example of this.
Note For those printers supporting Japanese printing, when the language is set to Japanese, strings which correspond to a control panel message are displayed on the control panel using the JIS X0201-76 character set. Status Category Description 10 Informational messages which do not indicate errors, such as (10-000 to 10-999) “Device was put online and is ready” or “device was put offline.
Status Category Description 35 Messages indicating that operator intervention may be required. (35-000 to 35-999) The printer stays online and continues printing, with the potential for reduced capability. Data may be lost. 40 Messages indicating that operator intervention is required. (40-000 to 40-999) Printing halts until the condition is resolved. Examples include paper jam, out of paper, and printer open conditions. 41 This category of messages indicates a foreground paper mount.
JOB Variable The USTATUS JOB = ON command is used to notify the application every time a JOB command is encountered, when the final page of a job is in the output tray and an EOJ command has been received, and when a job has been canceled (only for those printers that support job cancellation such as the HP LaserJet 4000 series and 5000 series printers). This is useful for spooling applications requiring feedback indicating that a particular job has started or completely printed.
Note Some HP LaserJet printers support job cancellation. For information about unsolicited job status during job cancellation, see the “Job Cancellation” section in Chapter 5. Example: Using Unsolicited Job Status This example turns on unsolicited job status so that the spooler can be notified when the job starts and completely finishes. A job name is included so that the spooler can match the status information with the correct job.
The printer sends the unsolicited status associated with the JOB command when the JOB command is parsed. The printer sends the unsolicited status associated with the EOJ command when all of the pages received before the EOJ command have been printed. To maximize performance, HP printers start processing the next job before the last page of the current job has been printed. Therefore, the printer may return unsolicited JOB and EOJ status messages in an order different than sent by the application or spooler.
A sample HP LaserJet 4 printer response for unsolicited page status is shown here. Other PJL printer responses may vary.
TIMED Variable The TIMED variable allows “automatic polling” of the printer without host intervention and without exiting the current printer language (back to PJL). Values from 5 to 300 indicate the time interval between status messages in seconds. This feature is turned off by setting the value to 0. The status message returned when this command is enabled is similar to that solicited by the INFO STATUS command.
A sample HP LaserJet 4 printer response is shown below. Other PJL printers may respond differently.
USTATUSOFF Command The USTATUSOFF command turns off all unsolicited status. This command eliminates the need to send several commands to turn off different types of USTATUS. Syntax: @PJL USTATUSOFF [] Parameters: There are no parameters for this command. Example: Using the USTATUSOFF Command This example uses the USTATUSOFF command to disable all unsolicited status before specifying the desired unsolicited status, which in this case is DEVICE status.
Job Recovery PJL provides job recovery capability using the following combination of commands: • The JOB and EOJ commands are used to reset the page count and inform the printer of the boundaries for the job—its beginning and end. • The USTATUS PAGE command is used to determine how many pages are completely printed. If you must reprint a portion of a job, the spooling application can re-issue the job using the START option to specify the remaining portion of the job.
After Job Failure Once the spooler senses that the job failed (in this case, due to a power failure), the job can be recovered by resending it using the JOB command with the START option. Set the page number in the START option to the number of the last page printed plus 1. For instance, in the previous example, if a power failure occurred after page 25 completely printed, you set the START option to start printing on page 26 (see below).
Additional page status messages are sent after each succeeding page lands in the output tray. After the remaining 75 pages of the job are completely printed the host receives unsolicited page and job status as follows: @PJL USTATUS PAGE 100 @PJL USTATUS JOB END NAME="End of Recovery" PAGES=75 The unsolicited page status indicates that the 100th page printed (25 processed in non-printing mode and 75 printed pages).
7-46 Status Readback Commands EN
8 Device Attendance Commands Introduction PJL enables you to change messages displayed on the printer control panel. This capability is useful for alerting operators to perform specific actions, such as loading paper or pressing keys. This chapter describes the following three device attendance commands: • RDYMSG specifies a “ready message” that replaces the “00 READY” message on the printer control panel. The RDYMSG command does not affect the online state.
RDYMSG Command The RDYMSG command replaces the control panel's “ready” message with the specified message. Use the RDYMSG command to modify the displayed message while keeping the printer online.
Note This command replaces the lowest priority 00 READY message. If any higher priority message is displayed (for example, toner low), the new ready message does not appear until these outstanding conditions are cleared. For HP LaserJet 4PJ, 4V, 4MV, 5Si, 5SiMx, and 5Si Mopier printers, if the LANG variable is set to Japanese, the message is displayed using the JIS X0201-76 character set.
%-12345X@PJL @PJL JOB NAME = "Terry's Job" @PJL JOB DISPLAY = "Terry's Job" @PJL RDYMSG DISPLAY = "TERRY'S JOB" %-12345X@PJL @PJL ENTER LANGUAGE = PCL E . . . PCL Job . . .
OPMSG Command The OPMSG command prompts the printer to display the specified message and go offline. Use this command to display a message and halt printing until the operator presses the On Line, Continue, or Reset key.
Note For HP LaserJet 4PJ, 4V, 4MV, 5Si, 5SiMx, 5Si Mopier printers, if the LANG variable is set to Japanese, the message is displayed in the JIS X0201-76 character set. For the LaserJet 4000, 5000, 8000, and 8100 series printers, if LANG is set to POLISH, CZECH, or HUNGARIAN, messages are displayed using the Latin 2 (ISO 8859/2) character set. If LANG is RUSSIAN, messages are displayed using Cyrillic (ISO 8859/51). For LANG=TURKISH, the display is in Latin 5 (ISO 8859/9).
STMSG Command The STMSG command prompts the printer to display the specified message, go offline, and return a status message indicating which key the operator pressed to return the printer online. Use this command to display a customized message, to halt printing until the operator presses the On Line, Continue, or Reset key, and to take a different action depending on which key the user presses.
For the LaserJet 4000, 5000, 8000, and 8100 series printers, if LANG is set to POLISH, CZECH, or HUNGARIAN, messages are displayed using the Latin 2 (ISO 8859/2) character set. If LANG is RUSSIAN, messages are displayed using Cyrillic (ISO 8859/5). For LANG=TURKISH, the display is in Latin 5 (ISO 8859/9). This is also true for the HP Color LaserJet 4500 printer, except there is no support for Turkish or Hungarian on this printer.
Example: Using the STMSG Command This example prompts the printer to display “LOAD FORM 1040” and goes offline. The printer returns the name of the key that is pressed to resume operation—in this case, the Continue key. %-12345X@PJL @PJL @PJL STMSG DISPLAY = "LOAD FORM 1040" @PJL @PJL ENTER LANGUAGE = PCL E . . PCL job . .
8-10 Device Attendance Commands EN
9 PJL File System Commands Introduction Several HP LaserJet printers have mass storage capabilities for storing fonts, macros, electronic forms, and other information. Printers such as the HP LaserJet 4000 and 5000 series printers have an optional disk drive. The HP LaserJet 4000, 5000 series and some other printers support flash memory, which is non-volatile memory contained in modules that are inserted into the printer's SIMM/DIMM slots.
The PJL file system consists of eight commands: z FSAPPEND z FSINIT z FSDELETE z FSMKDIR z FSDIRLIST z FSQUERY z FSDOWNLOAD z FSUPLOAD These commands are described on the following pages. For feature support information, see Appendix A.
FSAPPEND Command The FSAPPEND command appends data to an existing file, or if the file doesn't exist, creates the file and loads it with the given data. Syntax: @PJL FSAPPEND FORMAT:BINARY SIZE=integer ~NAME = "pathname" [] %-12345X Parameters: Parameter Functional Range Default SIZE=integer 0 to 231 – 1 N/A NAME = "pathname" Roman-8 characters 01 thru 255 N/A • SIZE = integer — The size variable indicates the number of bytes in the file to be appended.
Examples of valid pathnames include: 0: Volume 0 0:\ Root directory on volume 0 0:\MyDir \MyDir directory 0:\My/Dir\Gen/Dir \Gen/Dir directory in \My/Dir directory 0:\dir0\file1 file1 file in \dir0 directory 0:\DIR1\DIR2\File1 File1 file in \DIR2 directory in \DIR1 directory 0:\DIR1\Prefix/Suffix Prefix/Suffix file in \DIR1 directory • — This is the binary file data to be appended or used to create a new file.
FSDIRLIST Command The FSDIRLIST command returns a list of files and directories which exist within the specified directory on the printer's file system. This command is similar in function to the DOS DIR command. The ENTRY and COUNT parameters are used to limit the amount of data returned to the host.
example, to display the directory listing beginning with line 5, you would use ENTRY=5. The entry value must be greater than 0. Also, if the entry value is larger than the actual number of entries, the response will not include any entries. • COUNT = integer — The count variable specifies the number of entries to be returned. If the specified count is greater than the actual number of entries in the specified range, the actual number of entries will be displayed.
FSDELETE Command The FSDELETE command is used to delete files or empty directories from the printer's file system. Syntax: @PJL FSDELETE NAME = "pathname" [] Parameters: Parameter NAME = "pathname" Functional Range Roman-8 characters 01 thru 255 Default N/A • NAME = "pathname" — For a complete description of the NAME parameter, see the NAME = "pathname" description on pages 9-2 and 9-3.
FSDOWNLOAD Command The FSDOWNLOAD command downloads a file to the printer file system. If a file with the same name exists, the downloaded file overwrites it. Syntax: @PJL FSDOWNLOAD FORMAT:BINARY SIZE=int ~NAME = "pathname" [] %-12345X Parameters: Parameter Functional Range 31 Default SIZE=integer 0 to 2 –1 N/A NAME = "pathname" Roman-8 characters 01 thru 255 N/A • SIZE = integer — The size variable indicates the number of bytes in the file to be downloaded.
FSINIT Command The FSINIT command is used to initialize the printer's mass storage file system. This FSINIT command must be part of a secure job. Syntax: @PJL FSINIT VOLUME = "pathname" [] Parameters: Parameter VOLUME = "pathname" Functional Range 0:, 1:*, 2:* Default N/A * Volumes 1: and 2: are only supported on the HP LaserJet 4000 and newer printers. • VOLUME = "pathname" — The variable pathname must be a volume.
FSMKDIR Command The FSMKDIR command creates the specified directory on the printer file system. Syntax: @PJL FSMKDIR NAME = "pathname" [] Parameters: Parameter NAME = "pathname" Functional Range Roman-8 characters 01 thru 255 Default N/A • NAME = "pathname" — For the FSMKDIR command, "pathname" must be a file (not a directory). For a complete description of the NAME parameter, see the NAME = "pathname" description on pages 9-2 and 9-3.
FSQUERY Command The FSQUERY command is used to determine if a given entry exists within the file system, the type of entry (file or directory), and if it is a file, the file size in bytes.
Printer Responses The printer response indicates the number of bytes in the queried files. If the pathname is invalid, a FILEERROR number is returned. The returned number is equivalent to the PJL File System errors (32xxx) listed in Appendix D, only without the 32 and the leading zeros. For example, if the printer returns FILEERROR=7, the error is equivalent to status code 32007 (Illegal name), meaning the FSQUERY command contained an illegal NAME variable.
FSUPLOAD Command The FSUPLOAD command uploads a file, or a part of a file, from the printer file system to the host.
• SIZE = integer — The size variable indicates the number of bytes to be uploaded. If the amount of data in the file after OFFSET is less than the specified size value, the remainder of the file is returned and the SIZE value in the response indicates the actual amount of uploaded data. Printer Responses If the pathname is invalid the printer response includes an error number.
File System Example The following is a sequence of commands that can be sent to any printer with flash memory or a hard disk. The example downloads and calls a macro from the flash memory or hard disk. See the sections following this example for a description of each command.
This PJL command creates the macros sub-directory under the pcl directory. Fourth Command @PJL FSDOWNLOAD FORMAT:BINARY ~NAME ="0:\pcl\macros\a_macro" SIZE=29 *p900x1500YThis is the macro ~%-12345X This PJL command does several things. First, it specifies the download format to be binary (FORMAT:BINARY). Second, it specifies the macro's pathname on the file system (NAME = “0:\pcl\ macros\a_macro”). Third, it specifies the number of bytes to be downloaded for this macro file (SIZE=29).
The Alphanumeric ID command needs to know the number of bytes being sent after the terminating W. In this example, we are sending 8 bytes. The first byte, which is the ♣ symbol, is the control-byte (The ♣ symbol is the character with a decimal value of 005). This control byte indicates that the Alphanumeric ID command will be used to associate the current macro ID to the string ID. The other 7 bytes are the characters that make up the string ID (a_macro).
Example Summary The FSDOWNLOAD command downloads data to printers which support this command. This command allows data to be downloaded to either the printers internal disk (such as available in HP LaserJet 4000 series, 5Si, 5SiMx, and 5Si Mopier printers) or flash memory (such as available in HP LaserJet 5, 5M, and 4000 series printers). To identify what is stored on the disk or in flash memory, you can print a directory listing for that memory device.
10 Job Management Introduction Some printers, such as the HP LaserJet 8100 and 8500 series, provide the capability for storing print jobs on the printer's hard disk. These jobs can be accessed and printed using PJL commands as described in this chapter.
z HOLDKEY z HOLDTYPE z USERNAME Each variable is described in the following paragraphs. The variable descriptions are followed by a job management example. HOLD Variable Specifies the retention classification of the job, indicating whether the job is printed immediately or stored. Values Value Description (OFF) The job is printed but not retained on the disk after printing. This is the default. ON The requested number of copies are printed and the job is temporarily stored on disk.
HOLDTYPE Variable The HOLDTYPE variable specifies the privacy level of the job. Valid values are PUBLIC and PRIVATE. Value Value Description PUBLIC The job does not require a HOLDKEY value in order to be released for printing. This is the default value. PRIVATE The job requires a HOLDKEY value in order to be released for printing. If the HOLD-TYPE is set to PRIVATE, a HOLDKEY value must be specified. If no HOLDKEY is specified, the job will be considered PUBLIC.
USERNAME Variable This variable is the user name that is obtained from user input or by the driver through some internal method. If the job stream does not contain a USERNAME the default value will be "NO USER NAME". The driver is responsible for determining the size of the printer's control panel and sending a string of appropriate length. Value "username string" Value Description This string is limited by the size of the printer's control panel display. The default value is "NO USER NAME".
HP LaserJet 8500 Printer The HP LaserJet 8500 printer implements job management in a different way than the HP LaserJet 8100 printer. For this printer, only the HOLD = JOB option is supported for the HOLD command. The HOLDTYPE and HOLDKEY variables are not supported. (See the descriptions of the HOLD, JOBNAME and USERNAME variables for more information about their limitations.
HOLD Variable Specifies the retention classification of the job, indicating whether the job is printed immediately or stored. Values JOB Value Description Notifies printer to hold the job until all copies have been printed. JOBNAME Variable This variable is the job name that may be generated by the driver or obtained from user input. This value may be used in conjunction with the USERNAME to select a job from the control panel.
Example: Job Management HP LaserJet 8500 The following PJL example demonstrates job management for the HP LaserJet 8500 printer. It creates a secure Proof and Print job that prints one copy and then is held until the user selects it for printing via the control panel.
10-8 Job Management EN
11 Programming Tips for Using PJL Introduction When using most printer languages, there is usually more than one way to perform a certain printing function. PJL is no exception. Properly formed PJL jobs provide the developer with the desired features while eliminating glitches. This chapter provides tips for creating efficient PJL jobs that eliminate potential problems.
PJL Services This section segments applications into three types based on the services provided. Applications using PJL can be categorized as one of the following: • Print Data Generators—Applications that generate print jobs, such as Lotus 1-2-3, Microsoft Word, and WordPerfect. • Printer Utilities—Applications that control printer features, or request and provide printer status. These applications also can monitor the current state of the printer.
Print Data Generators Print Data Generators are applications used to create and print information. Examples include WordPerfect, Harvard Graphics, and Lotus 1-2-3. Software applications of this type should work properly when the printer is under the direct control of the application, and also when there is a spooler between the application and the printer. This is accomplished by using the ENTER command to select the proper printer language before sending print data to the spooler or printer.
Print Data Generator Examples The following two examples demonstrate how applications categorized as “Print Data Generators” should use PJL. Both examples work well if sent directly to the printer or through a spooler. Jobs That Select a Printer Language This example selects a printer language using the ENTER command. It is the most common job format for Print Data Generators. %-12345X@PJL @PJL ENTER LANGUAGE = POSTSCRIPT %!PS-ADOBE ... PostScript code ...
Printer Utilities Printer utilities are those applications that perform one or more of the following functions: • Control printer resources—These programs set printer features such as the print resolution and number of copies using the SET, RESET, DEFAULT, and INITIALIZE commands. • Request information from the printer—Printer status and feature settings can be requested from the printer using the ECHO, INFO, INQUIRE, and DINQUIRE commands.
Commands Used by Printer Utilities UEL Use before and after every PJL job. COMMENT Use to add explanations within PJL code. SET To modify a printer feature until the next PJL reset condition. RESET To set the printer to its user default feature settings. DEFAULT To modify the user default value of a printer feature. (NOTE: In shared environments, this feature should be used by system administrators only.) INITIALIZE To set the printer to its factory default settings.
Printer Utility Examples The following three examples demonstrate the kind of PJL jobs used by Printer Utilities: • Jobs that request information and perform printer setup • Jobs that request information, set features, and print existing files • Jobs that monitor printing status Jobs that Request Information and Perform Print Setup The following example demonstrates a job setup utility that first asks for printer information, then sets default features to a desired state.
(Changing the Default Values) %-12345X@PJL @PJL COMMENT Set desired values @PJL DEFAULT RET = DARK @PJL DEFAULT RESOLUTION = 600 @PJL COMMENT Reset PJL to ensure default ~values take effect @PJL RESET %-12345X Jobs That Request Information, Set Features and Print Existing Files The following example requests information using the INQUIRE command, sets printer features using the SET command, and then sends an existing application print file to
Figure 11-1 EN Sample Printing System Components Programming Tips for Using PJL 11-9
Jobs That Monitor Printing Status The following example enables unsolicited printer status using the USTATUS DEVICE command. After unsolicited device status is enabled, the printer automatically sends a status response whenever the printer's status changes. %-12345X@PJL @PJL ECHO Acme #17 8-28-92 5:39:02.
Spoolers Spoolers are applications that control and/or monitor print jobs generated by other applications. Spooling applications should use only PJL job-related commands when controlling the flow of print jobs to the printer. Encapsulate each print job with the JOB command at the beginning and the EOJ command at the end (the UEL command is always the first and last command in all PJL jobs).
• Print selected pages of jobs—Use the JOB command with the START and END options to specify which pages you want to print. Commands Used by Spoolers UEL Use before and after every PJL job. COMMENT Use to add explanations within PJL code. DEFAULT To modify the default value of a printer feature. (NOTE: In shared environments, this feature should be used by system administrators only.) ENTER Use if responsible for printer language selection or banner printing.
Spoolers equipped for bi-directional communications can monitor printer status using the following commands: ECHO To synchronize status readback information. The application should send an ECHO command before any other status readback commands; all status responses before the returned ECHO response should be discarded to ensure proper synchronization. STMSG To display a customized message and take the printer off-line until the operator presses the On Line, Continue, Job Cancel, or Reset key.
Jobs That Monitor Job Progress and Confirm Job Completion This example enables the spooler to receive notification as each page is finished printing, and when the entire job has finished. The USTATUS JOB = ON command enables unsolicited job status and the USTATUS PAGE = ON command enables page status. %-12345X@PJL @PJL COMMENT Monitoring Job Progress @PJL COMMENT and Completion @PJL ECHO 12:07:54.5 07-26-92 [.
When USTATUS PAGE = ON, the first unsolicited page status message is sent after page 1 lands in the output tray: @PJL USTATUS PAGE 1 Additional page status messages are sent after each succeeding page lands in the output tray. After the job is completely printed, the host receives unsolicited page and job status as follows (assuming a 38-page job): @PJL USTATUS PAGE 38 @PJL USTATUS JOB END NAME="End of Monitor Job" PAGES=38 The unsolicited page status indicates that the 38th page printed.
Jobs That Notify the User to Load Specific Forms or Paper This example displays a message to “LOAD FORM 1040” and takes the printer off-line. When the form is loaded and the On Line or Continue key is pressed, the form is printed. %-12345X@PJL @PJL JOB NAME = "Job #65432" @PJL OPMSG DISPLAY = "LOAD FORM 1040" %-12345X@PJL @PJL ENTER LANGUAGE = PCL E ... PCL print data ...
Spooler Job That Prints a Banner Page Followed by an Application-Generated Job (Application specifies printer language) The following example demonstrates a spooling application that prints a banner page, and then prints a PostScript job. The application that produced the print file specifies the printer language. %-12345X@PJL @PJL COMMENT Spooling Job with Banner @PJL JOB NAME = "Spooler #1" @PJL ENTER LANGUAGE = PCL E . . . Banner Page Data . . .
Requesting Printer Status When querying the printer for status, the response is not immediate. Wait a fixed amount of time for a response and then time out. If the printer is still working on a previous print job, it may take a while before a response is received. Your application should be able to discard unexpected status, such as unsolicited status, and discard unrecognizable lines.
Example Printing System Figure 11-1 contains an example printing system. The print system contains one I/O-switching LaserJet printer which is connected to seven computers. Host computer #1 is connected via the serial I/O interface. Host computers #2 and #3 are connected through an external printer sharing box that also buffers print job data. The printer sharing box is connected to the printer through the IEEE-1284compatible I/O interface.
printer's response. The simplest solution for printer sharing boxes is to forward all data received from the printer to all attached host computers, and let the applications on each host computer ignore any impertinent data, as described in the “Handling Unexpected Printer Responses” section in this chapter. The printer in this example is also attached directly to a network via a network interface card installed into the printer's MIO interface.
Printer Status Readback Usage Applications use printer status readback for two primary purposes (although there are other uses): printer driver configuration and monitoring device status. Since printer configuration does not change often (i.e., the amount of installed printer memory does not change frequently) using printer status readback to assist in initial configuration (or when the printer's configuration changes) is straightforward.
However, under some conditions the application will send, or attempt to send, a PJL ECHO command and not receive a timely response because of one of two reasons: the printer may not be accepting data (due to the printer processing a print job from a different I/O interface or the printer being off-line), or the printing system does not support printer status readback to the application.
When processing a job, I/O switching paces off all I/O interfaces except for the one which is providing the current print job. However, it is possible for an application to get a few bytes of data into the inactive I/O interface before the printer paces off that I/O interface.
To keep the I/O interface from timing out, the application can either send data to the printer more frequently than the timeout setting or can cause the printer to use a different setting by sending a PJL JOB command. When I/O-switching printers receive the PJL JOB command, the printer uses an I/O timeout value equal to ten times the TIMEOUT environment variable setting or five minutes, whichever is greater.
When the printer discards responses, the printer inserts the PJL unsolicited “printer to host data buffer overflow” message: CE CODE=10010 DISPLAY="00 READY" Note Refer to the “HP LaserJet 4 and 5 Family Comments” section in Appendix A under “Printer Status Readback” for the exact “printer to host buffer overflow” message sent by HP LaserJet 4 and 5 printer families.
device to properly route since the unsolicited status response may be received by the printer sharing box hours after sending the data from the host computer to the printer that enabled unsolicited status. Manufacturers of printer sharing devices can choose from the following options to solve this printer-to-host data routing problem. 1 A printer sharing device that is a uni-directional device and does not support printer-to-host data transfer.
Application Design Ideas The previous pages have described various printing system topologies and how components in those topologies can operate so each printer system component can receive printer status readback responses. This section discusses application design ideas that handle the complexities involved with using printer status readback information. The obvious design approach of querying the printer and waiting for an answer to that query is sure to lead to failure.
Given the above structure for sending queries and processing responses, applications should adhere to the following guidelines: 1 If the application sends data to the printer in blocks, followed by long pauses between blocks (i.e., greater than five seconds), then it should cause the printer to use a larger I/O interface idle time value by using the PJL JOB command as described in the “Printer Status Readback and Printer I/O Switching” section.
A Product-Specific Feature Support Introduction This appendix helps you compare the differences in PJL support for all PJL printers. It includes a list of all the PJL commands, showing which commands are supported by each PJL printer. Also, a list of environment variables shows the range of environment variables supported by each printer. The final portion of the appendix describes some important product-specific information regarding the different Hewlett-Packard printers.
PJL Feature Support The following three tables list the PJL commands and show command support by each printer. “Y” indicates a command is supported; “ns” indicates it is not supported. Table A-1.
Table A-1.
Table A-1.
Table A-1.
PJL Environment Variable Support The following tables list all of the current environment variables for PJL, PCL 5 and PostScript, and show the features supported by each printer. Features for the HP LaserJet, DesignJet, and DeskJet 1600C printers are shown in Tables A-2 through A-5. The table below describes the printers covered in each table.
Table A-2.
Table A-2.
Table A-2.
Table A-2. PJL Environment Variables for HP LaserJet Printers Environment Variable Variable Values 4 4M 4 Plus 4M Plus 4V 4MV 4Si 4000 4SiMx Series 4L 4ML 4P 4MP INTRAY6SIZE Tray-dependent ns ns ns ns RO ns ns ns INTRAY7SIZE Tray-dependent ns ns ns ns RO ns ns ns INTRAY8SIZE Tray-dependent ns ns ns ns RO ns ns ns IOBUFFER1 ON ns Y Y ns Y ns ns ns OFF ns Y Y ns Y ns ns ns AUTO ns Y Y ns (Y) ns ns ns IOSIZE1 10 to max.
Table A-2.
Table A-2. PJL Environment Variables for HP LaserJet Printers Environment Variable Variable Values 4 4M 4 Plus 4M Plus 4V 4MV 4Si 4000 4SiMx Series 4L 4ML 4P 4MP PAPER LETTER4 (Y) (Y) (Y) (Y) (Y) (Y) (Y) (Y) (Letter, Legal, Ledger, A3, A4, Executive, JISB4, and JISB5 are paper sizes; Com10, C5, DL, Monarch, and B5 are envelope sizes; JPOST and JPOSTD are Japanese post card sizes; CUSTOM is for feeding other sizes, such as 3 x 5 cards and labels [for the LaserJet 4V/4MV printer, 11.
Table A-2.
Table A-2. PJL Environment Variables for HP LaserJet Printers Environment Variable Variable Values 4 4M 4 Plus 4M Plus 4V 4MV 4Si 4000 4SiMx Series 4L 4ML 4P 4MP USERNAME "username string" ns ns ns ns ns ns ns ns WIDEA4 (NO) ns ns ns ns Y ns ns ns YES ns ns ns ns Y ns ns ns PCL-Specific Variables FONTNUMBER (0) to n (maxi-mum Y value depends on the currently set font source) Y Y Y Y Y Y Y FONTSOURCE (I) Y Y Y Y Y Y Y Y M1,M2,M3 . .
Table A-2.
Table A-2.
Table A-2.
Table A-3.
Table A-3.
Table A-3.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers Environment Variable Variable Values 4PJ 4 LC 5L 4LJ Pro 6L 5P 5MP 6P 5Si 5 6MP 5SiMx, 5M Mopier 1600C INTRAY6SIZE Tray-dependent ns ns ns ns ns ns ns ns INTRAY7SIZE Tray-dependent ns ns ns ns ns ns ns ns INTRAY8SIZE IOBUFFER 1 Tray-dependent ns ns ns ns ns ns ns ns ON ns ns ns Y Y (Y) Y ns OFF ns ns Y Y Y Y Y ns AUTO ns ns (Y) Y Y Y (Y) ns 10–max.
Table A-3.
Table A-3.
Table A-3.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers Environment Variable Variable Values 4PJ 4 LC 5L 4LJ Pro 6L 5P 5MP 6P 5Si 5 6MP 5SiMx, 5M Mopier 1600C TIMEOUT 5 to 300 (15) Y Y ns Y Y Y Y Y1 USERNAME "username string" ns ns ns ns ns ns ns ns WIDEA4 (NO) ns ns ns ns Y ns Y ns YES ns ns ns ns Y ns Y ns PCL-Specific Variables FONTNUMBER (0) to n (max.
Table A-3.
Table A-3.
Table A-3.
Table A-4.
Table A-4.
Table A-4.
Table A-4.
Table A-4.
Table A-4.
Table A-4.
Table A-4.
Table A-4. PJL Environment Variables for HP LaserJet Printers Environment Variable Variable Values 1100 2100 4500 Series Series Series 5000 Series 8000 8100 8500 Series Series Series USERNAME "username string" ns ns ns ns ns Y Y WIDEA4 (NO) ns Y ns Y Y Y Y YES ns Y ns Y Y Y Y PCL-Specific Variables FONTNUMBER (0) to n (maximum Y value depends on the currently set font source) Y Y Y Y Y Y FONTSOURCE (I) Y Y (Y) Y Y Y Y M1,M2,M3 . .
Table A-4.
Table A-4.
Table A-5. PJL Environment Variables for HP DesignJets Variable Values 230 250C 330 350C 430 450C 455CA 488CA Variable1 COMPRESSRAST.
Table A-5. PJL Environment Variables for HP DesignJets Variable Values 700 750C 750C Plus 755CM 1050C 1055CM Variable1 COMPRESSRAST.
Table A-5.
HP LaserJet IIISi Comments The LaserJet IIISi printer implements the three PJL kernel commands: ENTER, COMMENT, and the UEL command. As with other PJL printers, the HP LaserJet IIISi printer performs explicit printer language switching using the ENTER command. To enable the printer for language switching, the SYS SWITCH control panel setting must be set to ON. To select a default printer language for implicit switching, set SYS = to the desired language (PCL or PostScript) from the control panel.
Comments about HP LaserJet Printers This section explains some important points that should be considered when using PJL with HP LaserJet 4, LaserJet 5, and Color LaserJet printer families, and the HP LaserJet 6P/6MP printers. Support for the features described in this section varies. HP LaserJet family printers that support a particular feature are listed at the beginning of each feature description.
Printer Status Readback Printers supporting printer status readback: HP LaserJet 4, 4M, 4 Plus, 4M Plus, 4V, 4MV, 4Si, 4SiMx, 4L, 4ML, 4P, 4MP, 4PJ, 4LJ Pro, 4LC, 4000 series, 5, 5M, 5L, 5P, 5MP, 6L, 6P, 6MP, 5Si, 5SiMx, 5Si Mopier, HP Color LaserJet, HP Color LaserJet 5, 5M, 1100 series, 2100 series, 4500 series, 5000 series, 8000 series, 8100 series, 8500 series When requesting status information from the printer, ignore all status information that you did not request.
Commands That Affect Printer Memory Printers that reconfigure memory due to PJL commands: HP LaserJet 4, 4M, 4 Plus, 4M Plus, 4V, 4MV, 4Si, 4SiMx, 4ML, 4P, 4MP, 4PJ, 4LJ Pro, 4LC, 4000 series, 5, 5M, 5P, 5MP, 6L, 6P, 6MP, 5Si, 5SiMx, 5Si Mopier, HP Color LaserJet, HP Color LaserJet 5, 5M, LaserJet 1100 series, 2100 series, 4500 series, 5000 series, 8000 series, 8100 series, 8500 series Four conditions may cause the printer to reconfigure user memory: • When the printer language changes, either implicitly or
Resource Saving Printers that support resource saving: HP LaserJet 4 Plus, 4M Plus, 4V, 4MV, 4Si, 4SiMx, 4000 series, 5, 5M, 5P, 5MP, 6P, 6MP, 5Si, 5SiMx, 5Si Mopier, 2100 series, 5000 series, 8000 series, 8100 series Resource saving is a feature that allows you to prevent loss of permanent resources (such as fonts, macros, and PostScript dictionaries) when the printer language, page protection, or resolution status changes.
• Using the control panel to perform a self test, or to print a typeface list or demo page. • A job boundary indicated by the I/O card, such as the AppleTalk end-of-file.
Backward-Compatibility Mode Printers that support the backward-compatibility mode: HP LaserJet 4, 4M, 4 Plus, 4M Plus, 4V, 4MV, 4Si, 4SiMx, 4L, 4ML, 4P, 4MP, 4PJ, 4LJ Pro, 4LC, 4000 series, 5, 5M, 5L, 5P, 5MP, 6L, 6P, 6MP, 5Si, 5SiMx, 5Si Mopier, HP Color LaserJet, HP Color LaserJet 5, 5M, 1100 series, 2100 series, 4500 series, 5000 series, 8000 series, 8100 series, 8500 series If the printer detects PCL data immediately after a job boundary, it enters a backward-compatibility mode that responds like an HP
PJL Job Security Printers that support PJL job security: HP LaserJet 4/4M Plus, 4V, 4MV, 4Si, 4SiMx, 4000 series, 5, 5M, 5Si, 5SiMx, 5Si Mopier, 2100 series, 4500 series, 5000 series, 8000 series, 8100 series, 8500 series (5P, 5MP, 6P, 6MP, 2100: password only), The printers listed above provide two PJL security features: password protection and control panel lockout. HP LaserJet 4V/4MV and 5Si/5SiMx printers also provide disk lock protection.
LaserJet Printers with Reduced-Function Control Panels HP LaserJet 4L, 4LJ Pro, 4ML, 4LC, 5P, 6P, 6MP, 5L, 6L and 1100 series printers have no control panel to specify printer settings. These printers have several features that are different than those of other PJL printers. This section describes those differences and how they affect the use of PJL. • No device attendance commands are supported—these printers rely on unsolicited status to inform the user.
Color LaserJet Printer Comments The Color LaserJet printer supports context-sensitive language switching, true end-of-job notification, job boundary recognition, and automatic I/O switching. See the PJL Feature Support table in the beginning of this chapter for a list of the PJL features supported. Note that the SET and INQUIRE commands are limited to only being used with the RET variable.
Although the printer can accurately select printer languages this way, we recommend that every job containing printable data include an ENTER LANGUAGE command to explicitly switch to the correct printer language. This method improves performance and eliminates errors in printer language switching. It also guarantees that the correct language is always selected. Note The value of the PARALLEL feature as shipped from the factory is FAST. When a front panel reset is performed, the value is defaulted to SLOW.
Variables Not Stored in NVRAM COPIES PAGEPROTECT FORMLINES PAPER MEDIASOURCE PRINTQUALITY MEDIATYPE RENDERMODE ORIENTATION RESOLUTION Printer Status Readback Printers that support printer status readback: HP DeskJet 1600C, 1600M Because the DeskJet 1600C and 1600CM do not support USTATUS or INFO, only the requested status information will come back from the printer.
Resource Saving None of the DeskJet 1200C or 1600C printer families support resource saving. Printer Specific Job Boundaries Printers that support printer specific job boundaries: HP DeskJet 1200C, 1200CM, 1600C, 1600CM Unlike the LaserJet 4 family of printers, no implicit PJL job boundaries are recognized. There are no additional conditions which will cause the User Default Environment values to be loaded into the PJL Current Environment, or (subsequently) to be loaded into the Modified Print Environment.
HP LaserJet 5Si/ 5SiMx/5Si Mopier Comments HP LaserJet 5Si, 5SiMx, and 5Si Mopier printers have several features that differentiate them from most of the other LaserJet printers. The following features should be kept in mind when writing PJL code for these printers. • Three standard paper input sources are provided (two 500-sheet paper cassettes and a 100-sheet multi-purpose tray).
HP LaserJet 5Si Mopier Comments PJL commands are used to specify the destination bin and control printer functions such as stapling and collating multiple copies. Specifying the Output Bin Documents are sent to specific output bins using the @PJL SET OUTBIN command.
Collating Multiple Copies Multiple “mopies” of a job can be printed by sending the @PJL SET QTY command, followed by one copy of the job. This saves network traffic because only one copy must be sent to the printer. The printer stores the job on the internal disk drive and then prints the desired number of collated copies without additional downloading.
HP LaserJet 4000 and 5000 Series Comments The LaserJet 4000 and 5000 series printers have a PJL feature set similar to the LaserJet 5Si/5SiMx printers. Listed below are some of the differences between the printers.
5 The software may resume sending data after it sees the printer go back online. 6 If the software does not detect the printer going offline and then back online within 5 seconds of the echo, the application may assume there is a printer error.
HP LaserJet 1100 Series Comments The HP LaserJet 1100 series printers have a PJL feature set very similar to the HP LaserJet 6L printer. Listed below are some of the differences. • The INFO VARIABLES command returns the number of pages that have been copied, printed, and scanned (COPYPAGECOUNT, PRINTPAGECOUNT, and SCANPAGECOUNT). • For the LaserJet 1100 series printers, the RESET command does not initialize the PAGECOUNT, SYMSET, and PAPER variables.
HP LaserJet 2100 Series Comments The HP LaserJet 2100 series printers have PJL features similar to the HP LaserJet 6P and 6MP printers. Some of the differences are listed below: • Instead of using the MPTRAY variable, use the INTRAY1 variable to set the default configuration of Tray 1 (the MP Tray).
HP Color LaserJet 4500 Series Comments This section describes some of the distinguishing PJL features of the HP Color LaserJet 4500 series printers. • The JOBID variable is added to enable or disable the job ID information returned in the status readback at the start and end of jobs. • HP Color LaserJet 4500 series printers may remove the JOB DISPLAY = "display text" message from the control panel display before the last page reaches the output bin.
HP LaserJet 8000 and 8100 Series Comments The PJL feature set used by the HP LaserJet 8000 and 8100 series printers is similar to that of the HP LaserJet 4000 series printers. The HP LaserJet 8100 also adds support for a few more paper sizes (ROC8K, ROC16K, and JISEXEC) and adds job management features (PROOF and HOLD jobs — see Chapter 10 for more information on job management PJL commands).
HP Color LaserJet 8500 Series Comments As part of its paper stacking flexibility, the HP Color LaserJet 8500 printer allows the user to switch the Mail Box Mode (MBM) to any of the following three settings: • Stacker • Separator • Mailbox The preferred way to change the Mail Box Mode is using the printer's control panel. This feature is usually controlled by the printer administrator and can be programmatically set using HP JetAdmin.
A-66 Product-Specific Feature Support EN
B PJL Command Summary COMMENT @PJL COMMENT [] DEFAULT @PJL DEFAULT [LPARM : personality | IPARM : port] ~variable = value [] DINQUIRE @PJL DINQUIRE [LPARM : personality | IPARM : port] ~variable [] DINQUIRE Response @PJL DINQUIRE [LPARM:personality | IPARM:port] ~variable value ECHO @PJL ECHO [] [] ECHO Response @PJL ECHO [] ENTER @PJL ENTER LANGUAGE = personality [] EN PJL Command Summary B-1
EOJ @PJL EOJ [NAME = "job name"] [] FSAPPEND @PJL FSAPPEND FORMAT:BINARY SIZE=integer ~NAME = "pathname" [] %-12345X FSDELETE @PJL FSDELETE NAME = "pathname" [] FSDIRLIST @PJL FSDIRLIST NAME = "pathname" ENTRY=integer ~COUNT=integer[] FSDIRLIST Response @PJL FSDIRLIST NAME = "pathname" ~ENTRY=integer[] filename TYPE=FILE SIZE=integer filename TYPE=DIR ...
FSQUERY @PJL FSQUERY NAME = "pathname" [] FSQUERY Response If pathname is a file: @PJL FSQUERY NAME="pathname" TYPE=FILE ~SIZE=integer If pathname is a directory: @PJL FSQUERY NAME="pathname" TYPE=DIR FSUPLOAD @PJL FSUPLOAD NAME = "pathname" OFFSET= SIZE=[] FSUPLOAD Response If the pathname is valid: @PJL FSUPLOAD FORMAT:BINARY NAME = "pathname" ~OFFSET= SIZE= INFO @PJL INFO category []
INQUIRE @PJL INQUIRE [LPARM : personality | IPARM : port] ~variable [] INQUIRE Response @PJL INQUIRE [LPARM:personality | IPARM:port] ~variable value JOB @PJL JOB [NAME="job name"][START=first ~page][END=last page][PASSWORD = number] OPMSG @PJL OPMSG DISPLAY = "message" [] PJL @PJL [] RDYMSG @PJL RDYMSG DISPLAY = "message" [] RESET @PJL RESET [] SET @PJL SET [LPARM : personality | IPARM : port] ~variable = value [] STMSG
STMSG Response @PJL STMSG DISPLAY="message" key UEL %-12345X USTATUS @PJL USTATUS variable = value [] Unsolicited Status Message (not a response, but returned when printer events occur) @PJL USTATUS variable [1 or more lines of printable characters or followed by ] USTATUSOFF @PJL USTATUSOFF [] EN PJL Command Summary B-5
B-6 PJL Command Summary EN
C Programming Examples Introduction This appendix demonstrates two examples: one PJL example using the C programming language, and one simple batch file. The first example is listed on the left-facing page in the generic format used throughout the rest of the manual. The C code is then listed on the opposite page so that you can compare the C code with the generic code.
Example: Switching Printer Languages The job in this example prints two pages: one in PCL and one in PostScript. The program first enters PCL, and then immediately enters HP-GL/2 to draw a box and print “PCL Print Job.” Next, PostScript is entered and PostScript data is sent to the printer to draw a box and print “PostScript Job.
/****************************************************/ /* SWITCH.C (Switching Printer Languages) */ /****************************************************/ #include
Example: Using RDYMSG in a Batch File This example demonstrates how to use a batch file to send PJL commands to the printer. In this example, the batch file acts as a spooler, using the RDYMSG command to display the file name while a print file is being downloaded. To send PJL commands this way, first create an ASCII file named UEL, containing only the UEL command (%-12345X).
To use this batch file, type the name of the batch file, followed by the name of the print file, as follows: PRINTPJL printfilename The printfilename is displayed while the job is being downloaded to the printer.
C-6 Programming Examples EN
D PJL Status Codes The status codes listed in this appendix are sent to the host in many of the status readback responses as “CODE = xxxxx,” where each “x” stands for a single digit 0 through 9. For example, if unsolicited status is enabled and the toner runs low, the following message is returned: @PJL USTATUS DEVICE CODE=10006 DISPLAY="16 TONER LOW" ONLINE=TRUE If you consult the status code table, code 10006 means “toner low.
• PJL File System Errors (32xxx) • Possible Operator Intervention Conditions (35xxx) • Operator Intervention Required (40xxx) • Foreground Paper Mount (41xyy) • Paper Jam Errors (42xyy) • Optional (External) Paper Handling Device Errors (43xyy) • LaserJet 4000/5000 Paper Jam Information (44xyy) • Hardware Errors (50xxx) The following pages list the status codes in numerical order, by groups. For a complete description of each control panel display string, see the user and service manuals for each printer.
Status Code EN Control Panel Display String or Code Meaning 10013 04 SELF TEST 10011 18 AUX IO INIT or 18 AUX IO NT RDY or 18 MIO INIT or 18 MIO NOT RDY or HP MIO1 INITIALIZING or HP MIO2 INITIALIZING or HP MIO1 NOT READY or HP MIO2 NOT READY or HP MIO INITIALIZING 10014 06 PRINTING TEST or PRINTING CONFIGURATION PAGE or INTERNAL TEST, then PRINTING CONFIGURATION PAGE 10015 06 TYPEFACE LIST or PRINTING FONT LIST 10016 15 ENGINE TEST 10017 06 DEMO PAGE or PRINTING DEMO PAGE 10018 09 MENU RESE
Status Code Control Panel Display String or Code Meaning 10030 Job message — a print job has been received containing the optional DISPLAY="message" token pair associated with the PJL JOB command. 10031 ENGINE CLEANING Background Paper Loading (11xyy) Background paper loading messages appear when a paper input source is out of paper, but another paper source is available and loaded with the correct paper size. The printer stays online in these situations since it can switch to the other paper source.
YY = Media Code EN Media Size 00 Unknown Paper 01 Unknown Envelope 02 Letter Paper 03 Legal Paper 04 A4 Paper 05 Executive Paper 06 Ledger Paper 07 A3 Paper 08 COM10 Envelope 09 Monarch Envelope 10 C5 Envelope 11 DL Envelope 12 Japan B4 Paper 13 Japan B5 Paper 14 B5 Envelope 15 Custom Media Paper 16 J-Postcard 17 J-RoundTrip Postcard 18 A5 Paper 19 Letter-R Paper 20 A4-R Paper 21 A5-R Paper 22 Japan B5-R Paper 23 Exec-R Paper 24 A6 Paper 25 Foolscap Pape
Background Paper Tray Status (12xyy) Background paper tray status messages occur when a tray is open or a tray is lifting. Background paper tray status messages are in the format 12xyy. The following tables list the x and y values for these messages. For example, 12301 indicates the lower cassette tray is open.
Output Bin Status (15xxy) Output bin status messages occur when an output bin is full. The messages are in the format 15xxy. The following tables list the x and y values for these messages. For example, 15031 indicates that output bin number 3 is full. XX = Output Bin 0 - 99 Tray Output Bin Number Y = Status Code Tray Status 1 Output Bin Full 2 Output Bin Open 3 Output Bin Broken PJL Parser Errors (20xxx) These status codes denote PJL parser errors. The entire PJL command line is ignored.
Status Code Display String or Code Meaning 20011 String missing closing double-quote character 20012 Numeric value starts with a decimal point 20013 Numeric value does not contain any digits 20014 No alphanumeric value after command modifier 20015 Option name and equal sign encountered, but the value field is missing 20016 More than one command modifier 20017 Command modifier encountered after an option (command modifier must precede option) 20018 Command not an alphanumeric value 20019 N
PJL Parser Warnings (25xxx) This group of status codes denote PJL parser warnings, which indicates that part of the PJL command is ignored.
PJL Semantic Errors (27xxx) This group of status codes denote PJL semantic errors. As much of the command is executed as possible, depending on the current configuration of the printer. Status Code Display String or Code Meaning 27001 Generic semantic error 27002 EOJ command encountered without a previously matching JOB command. An EOJ command does not have a matching JOB command if the number of valid EOJ commands received is greater than the number of valid JOB commands received.
Auto-Continuable Conditions (30xxx) This list specifies the set of PJL error codes and corresponding control panel display strings for auto-continuable conditions. If no action is taken, the device automatically continues if auto-continue is set to true (except for 30035 and 30036 errors).
Status Code Display String or Code Meaning 30095 41.2 BEAM DETECT MALFUNCTION 30096 41.3 IMPROPER PAPER SIZE or 41.3 UNEXPECTED PAPER SIZE 30097 41.4 NO VIDEO SYNC 30098 41.
PJL File System Errors (32xxx) This list specifies the set of error codes for the PJL file system.
Status Code Display String or Code Meaning 32023 Bad seek 32024 Internal error 32025 Write only 32026 Write protected 32027 No filename 32051 End of directory 32052 No file system 32053 No memory 32054 Vol name out of range 32055 Bad FS 32056 Hardware failure Potential Operator Intervention Conditions (35xxx) This list specifies the set of PJL error codes and corresponding control panel display strings for conditions where operator intervention may be required.
Status Code Display String or Code Meaning 35041 W8 JOB 600/OFF 35042 W7 JOB 300/LGL* 35043 W5 JOB 300/LTR* 35044 W6 JOB 300/A4* 35045 W4 JOB 300/OFF* 35073 WM CHK MEM CNFIG or MEMORY SETTINGS CHANGED 35074 WM MEM CNFIG N/A 35075 USER MAINTENANCE REQUESTED 35076 WM personality MEM FULL or XXXX MEMORY FULL, STORED DATA LOST 35078 Entered powersave mode (00 POWERSAVE) or POWERSAVE ON 35081 WM JOB 300 35082 WD DISK NOT INIT or Volume 0 NOT INIT (Volume 0 will be indicated as either DIS
Operator Intervention Conditions (40xxx) This list specifies the set of PJL error codes and corresponding control panel display strings for conditions where operator intervention is required. Printing cannot continue until the condition is resolved.
Status Code EN Display String or Code Meaning 40054 54 ERROR 40055 55 ERROR 40056 56 ERROR 40057 57 SERVICE or 57 MOTOR FAILURE, CALL SERVICE 40058 58 SERVICE or FAN MOTOR FAILURE, CALL SERVICE 40059 59 ERROR 40061 61.x SERVICE 40062 62.
Status Code Display String or Code Meaning 40096 41.3 UNEXPECTED PAPER SIZE CHECK PAPER IN TRAY 40099 56.1 ERROR PRESS SELECT KEY 40100 56.2 ERROR PRESS SELECT KEY 40102 FINISHER ALIGN ERROR [BIN NAME] 40103 FINISH LIMIT REACHED [BIN NAME] 40104 INPUT DEVICE FEED PATH OPEN 40105 OUTPUT DEVICE DELIVERY PATH OPEN 40106 INPUT OPERATION ERROR X.YY 40107 OUTPUT OPERATION ERROR X.YY 40116 Volume 1 FAILURE (Failure on Volume 1.
Foreground Paper Loading (41xyy) Foreground paper loading messages are sent when one of the paper input sources is out of paper and there is no other input source available and loaded with the correct paper size. When this occurs, the printer goes offline until someone loads paper. The messages are in the format 41xyy. The following tables list the X and Y values for these messages. For example, 41303 is a foreground paper loading message indicating to load the LC tray with legal-size paper.
YY = Media Code Media Size 11 DL Envelope 12 Japan B4 Paper 13 Japan B5 Paper 14 B5 Envelope 15 Custom Media Paper 16 J-Postcard (or JB4 paper—LaserJet 6P, LaserJet 2100) 17 J-RoundTrip Postcard (or JB5 paper— LaserJet 6P, LaserJet 2100) 18 A5 Paper (or JPostcard—LaserJet 6P 19 Letter-R Paper (or JDoublePostCard— LaserJet 6P, LaserJet 2100) 20 A4-R Paper (or A5 Paper—LaserJet 6P, LaserJet 2100) 21 A5-R Paper 22 Japan B5-R Paper 23 Exec-R Paper 24 A6 Paper 25 Foolscap Paper 26
Y = Jam Location EN Tray 0 Non-specific jam 1 Paper feed 1, paper late jam 2 Paper feed 2, paper late jam 3 Fuser output, paper late jam 4 Fuser output, paper stopped jam 5 Face down output, paper late jam 6 Face down output, paper stopped jam 7 2-Sided turn around, paper late jam 8 2-Sided turn around, paper stopped jam 9 2-Sided path, paper late jam 10 2-Sided path, paper stopped jam 11 External input device paper jam 12 External output device paper jam 13 Fuser accordion jam
Optional (External) Paper Handling Device Messages (43xyy) This category contains error messages related to any optional external paper handling devices. The messages are in the format 43xyy, where x is the number of the paper handling device and yy is the error code.
yy = Code Error Code 17 FIFO empty when expecting data 18 FIFO full when tray to send data 19 Invalid page ACK (formatter not expecting a page ACK) 20 Page ACK timeout 21 Inconsistent paper size 22 Wrong page ACK 23 Device(s) never ready during installation 24 Negative ACK of ready tray LaserJet 4000 / 5000 Series Paper Jam Messages (44xyy) This category contains unsolicited status error messages related to paper jams (for the LaserJet 4000 and 5000 series printers only).
Hardware Errors (50xxx) These status codes are sent out when a hardware problem exists and the printer is working well enough to send status messages.
Status Code EN Display String or Code Meaning 50016 57.1 FAN FAILURE CALL SERVICE or FAN MOTOR 1 FAILURE 50017 57.2 FAN FAILURE CALL SERVICE or FAN MOTOR 2 FAILURE 50018 57.2 FAN FAILURE CALL SERVICE or FAN MOTOR 3 FAILURE 50019 57.4 FAN FAILURE CALL SERVICE or FAN MOTOR 4 FAILURE 50020 UPPER INPUT TRAY LIFTER MALFUNCTION 50021 LOWER INPUT TRAY LIFTER MALFUNCTION 50022 58.3 PRINTER ERROR CYCLE POWER or MULTIPURPOSE TRAY LIFTER MALFUNCTION 50023 59.
Status Code Display String or Code Meaning 50029 64 PRINTER ERROR CYCLE POWER or VIDEO DMA TRANSFER TIMED OUT 50030 FAN MOTOR 5 FAILURE 50031 FAN MOTOR 6 FAILURE 50032 FAN MOTOR 7 FAILURE 50033 FAN MOTOR 8 FAILURE 505xx Firmware Error, Power Cycle 50599 Processor Error, Power Cycle D-26 PJL Status Codes EN
Glossary ~ This character indicates that the current command line is a continuation of the previous line. For example, “These ~words are all part of the same line.” | The vertical bar, when shown in a command, indicates that either one or the other options may be selected, but not both. Active I/O Port The I/O port which is providing the data for the current print job.
After a job boundary is encountered and there is no data available from the active I/O port, all the I/O ports are enabled and checked for available data. The first port to receive data is the new active I/O port. The other ports are temporarily disabled, the print job processed, and then the automatic I/O switching process repeats. Configuration Configuration is the process of changing printer settings. The printer is configured using the control panel or PJL.
Explicit Switching Explicit switching occurs when a printer language is activated due to processing a PJL ENTER command. Factory Default Factory defaults refer to the feature settings that are programmed into the printer at the factory. These values are stored in read-only memory and cannot be changed. Factory default settings are in use unless you override them using either the control panel or by sending printer commands.
Non-Printing Mode Printing selected pages in a print job by sending the entire print job, the desired starting page number, and the ending page number. The PJL JOB command options START and END are used to provide the starting page number and the ending page number. When the printer processes the pages that are not printed, the printer is said to be in non-printing mode.
PJL Current Environment The PJL Current Environment is the set of features that is active when a PJL job is entered. As soon as a PJL job is entered, the PJL Current Environment settings are the same as the User Default Environment. Applications then can modify the PJL Current Environment values using the PJL SET command. The PJL Current Environment provides a base set of values when entering a printer language. PJL Job A PJL job is any print job containing PJL commands.
Printer Language A set of syntax and semantic rules used to control a printer. PCL and PostScript are both printer languages—they both contain commands that enable the user to control where marks are printed on a page. Ready Message A ready message is displayed on the control panel display when no error conditions are present. When errors occur, an error message replaces the ready message until the situation is corrected or the printer auto-continues.
Unsolicited Status Unsolicited status (USTATUS) is printer status information sent as a result of certain printer events occurring, such as when the printer runs out of paper, a job finishes printing, or when a certain time period elapses. There are several types of unsolicited status (DEVICE, JOB, PAGE, and TIMED); unsolicited status must be enabled with the USTATUS command. User Default A user default is a default value that is selectable by way of the operator control panel or the PJL DEFAULT command.
Glossary-8 EN
Index Symbols @PJL 2-5 | (vertical bar) Glossary-1 Numerics 10010 error 11-25 1A (line continuation character) Glossary1 A active I/O port Glossary-1 alphanumeric variables 2-7 ANKCONDENSE variable 6-33 application design ideas 11-27 application developers 1-iii AUTOCONT variable 6-12 auto-continuable conditions D-11 auto-continue Glossary-1 automatic I/O switching Glossary-1 AUTOSELECT variable 6-12 B background paper loading D-4, D-6 backward-compatibility mode A-49 batch file example C-4 BINDING varia
E ECHO command 7-3, 7-14, 11-26 example 7-15 EconoMode A-51 ECONOMODE variable 6-14 ENTER command 2-3, 4-4, 6-7 example 4-5 ENTER LANGUAGE command A-44 environment Glossary-2 environment commands 6-1 environment variable support A-6 environment variables 6-11 environments 6-2 changing settings 6-5 defaulting 6-2 example (changing settings) 6-6 Factory Default 6-2, 6-7 Modified Print 6-2, 6-3, 6-7 PJL Current 6-2, 6-3, 6-7 printer language-specific 6-7 summary 6-6 User Default 6-2, 6-3, 6-7 EOJ command 5-8,
J JAMRECOVERY variable 6-31 Japanese character set 2-8 JIS X0201-76 character set 2-8, 5-4, 8-3, 8-6, 8-7 job boundaries 5-4 job boundaries, printer-specific A-47 job boundary Glossary-3 job cancellation 5-13 JOB command 5-2, 6-9 example 5-5, 5-6 job management commands 10-1 job recovery 7-43 job requirements 4-2 job security 5-10, A-50 job separation commands 5-1 JOB variable 7-36 JOB/EOJ pairs 5-2, 5-8 JOBATTR variable 6-17 JOBID variable 6-17 JOBIDVALUE variable 6-17 JOBNAME variable 6-18, 6-24, 10-3, 10
P page count 5-4, 7-23 PAGE variable 7-38 PAGELENGTHACCURACY variable 619 PAGEPROTECT variable 6-20 PaintJet XL300 printer 1-4, A-3 PAPER variable 6-20 PARALLEL variable 6-21 parser errors D-7 parser warnings D-9 parsing errors 2-10 password 5-3 password protection 5-10 PASSWORD variable 5-10, 6-21 PCL 5 Comparison Guide 1-vii PCL/PJL Technical Quick Reference Guide 1-vii PCL/PostScript switching C-2 PCL-specific variables 6-26, 6-27 personalities adding dynamically 6-40, 6-42 personality 6-3, Glossary-4 pe
printer utilities 11-5 printing pre-existing jobs 11-11 PRINTQUALITY variable 6-22 product-specific feature support A-1 programming examples C-1 programming tips 10-1, 11-1 PRTPSERRS variable 6-31 PTSIZE variable 6-30 Q QTY variable 6-22 R RDYMSG command 8-2 example 8-3 example (batch file) C-4 readback, printer status 1-3 readback, status 7-1 ready message Glossary-6 ready message, changing 8-2 REFILLDURATION variable 6-22 REFILLTHRESHOLD variable 6-23 REFILLTYPE variable 6-23 related documentation 1-vii
USTATUS JOB command 7-36 USTATUS PAGE command 7-38 USTATUS TIMED command 7-40 USTATUSOFF command 7-42 utilities 11-5 V value 2-4 variable support A-6 variable types 2-7 variables environment 6-11 INFO VARIABLES command 7-25 PCL-specific 6-26, 6-27 PJL environment 6-12 PostScript-specific 6-31 vertical bar Glossary-1 W well-formed jobs 3-3 white space (WS) 2-5 white space, placement 2-6 WIDEA4 variable 6-25 WIN31J symbol set 6-30 Index- 6 EN
© 2003 Hewlett-Packard Development Company http://www.hp.