Printer Job Language Technical Reference Manual Edition 10 E1097 HP Part No. 5021-0380 Printed in U.S.A.
Notice The information contained in this document is subject to change without notice. HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. HewlettPackard shall not be liable for errors contained herein or for incidental consequential damages in connection with the furnishing, performance, or use of this material.
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 ten 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 9 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.
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. It also shows which environment variables are supported, and includes printer-specific information about several PJL printers. Appendix B.
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 Inside This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Manual Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv Related Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Manual Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii 1 Introduction to PJL The Benefits of PJL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Who Should Use PJL? . . . . . . . . . . . . . . . . . . . . . .
Job Cancellation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 Start of Job Notification . . . . . . . . . . . . . . . . . . . . . . . . 5-14 End of Job Notification . . . . . . . . . . . . . . . . . . . . . . . . . 5-15 Job Cancellation Unsolicited Status . . . . . . . . . . . . . . 5-16 6 Environment Commands Print Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Changing Environment Settings . . . . . . . . . . . . . . . . . . . .
9 PJL File System Commands FSAPPEND Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 FSDIRLIST Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 FSDELETE Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6 FSDOWNLOAD Command. . . . . . . . . . . . . . . . . . . . . . . . 9-7 FSINIT Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-8 FSMKDIR Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-9 FSQUERY Command . . . . . . . .
B PJL Command Summary C Programming Examples D PJL Status Codes Status Code Groupings . . . . . . . . . . . . . . . . . . . . . . . . . D-1 Informational Messages (10xxx). . . . . . . . . . . . . . . . . . D-2 Background Paper Loading (11xyy) . . . . . . . . . . . . . . . D-4 Background Paper Tray Status (12xyy) . . . . . . . . . . . . D-6 Output Bin Status (15xxy) . . . . . . . . . . . . . . . . . . . . . . D-6 PJL Parser Errors (20xxx) . . . . . . . . . . . . . . . . . . . . . .
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, or 6L 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.
and possibly followed by more PJL commands. The PCL job should print as it would without any PJL commands, as long as the PCL portion of the job begins and ends with a PCL printer reset command. However, a page of PJL commands printed before and probably after the PCL job can be expected.
1-6 Introduction to PJL
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 variables The following syntax conventions are used to describe the PJL commands in this manual: 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: 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 Format #1 All PJL command lines follow one of the following four formats. Each format defines how commands using that format are structured. %–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.
[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 DEFAULT command shown below illustrates format number 4. The command sets the default PCL point size to 14.25.
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).
Examples of invalid numeric variables include: .123456 (The decimal point must be preceded by at least 1 digit) -123.45.6 (Only 1 decimal point is allowed in a numeric variable) +657,000 (Commas are not allowed in numeric variables) 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.
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.
For example, in the following two sample PJL commands, START is a valid option for the JOB command, but FINISH is not a valid option (the END option should be used). The START option is executed, but the FINISH option is ignored. Valid command: @PJL JOB START = 1 Invalid command: @PJL JOB START = 1 FINISH = HOME 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).
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 six groups of related commands. Each command has a brief description of its function to help familiarize you with the PJL language.
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 Example: Changing Control Panel Settings 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.) 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 Command Group Kernel Commands (Chapter 4) Job Separation Commands (Chapter 5) Environment Commands (Chapter 6) 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 Command Description Universal Exit Exits current printer language and Language (UEL) returns control to PJL.
Command Group Status Readback Commands (Chapter 7) Device Attendance Commands (Chapter 8) 3-6 Using PJL 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 PJL File System Commands (Chapter 9) Command Command Description FSAPPEND Appends data to an existing file or creates a new file. FSDELETE Deletes printer mass storage files. FSDIRLIST Lists PJL file system files and directories. FSDOWNLOAD Downloads files to the printer mass storage system. FSINIT Initializes the printer mass storage file system. FSMKDIR Creates a directory on the printer mass storage file system.
3-8 Using PJL
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 Note Syntax: Parameters: Comments: Note The Universal Exit Language (UEL) Command causes the printer to exit the active printer language. The printer then returns control to PJL. 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. %-12345X The UEL command does not use any parameters.
(if PERSONALITY =AUTO, the data stream is sampled for context-sensitive switching—see 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.
ENTER Command Syntax: Parameters: The ENTER command enables the specified personality (such as PCL or PostScript). Use this command to select the printer language for printing subsequent data. @PJL ENTER LANGUAGE = personality [] Parameter personality Range 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: Parameters: @PJL COMMENT remarks [] Parameter remarks Comments: Range Roman-8 character codes 33 through 255 and , starting with a printable character. The COMMENT command is useful for documenting lines of PJL commands.
Example: Using the COMMENT Command This example demonstrates using the COMMENT command to add clarity to your PJL command listings. %-12345X@PJL @PJL COMMENT ************************ @PJL COMMENT ** D.
Methods of Printer Language Switching There are three methods of switching printer languages, two of which are supported by all PJL printers. All three methods are described below: Explicit Switching. With explicit switching, the ENTER LANGUAGE command is used to “explicitly” select the desired printer language. This is the preferred switching method because it ensures that the specified printer language is always selected (see Figure 4-1). Implicit Switching.
Although printers supporting context switching can select printer languages accurately, we recommend that every job containing printable data include an ENTER LANGUAGE command to explicitly select the correct printer language. This method improves performance and eliminates unintentional printer language switching, which can potentially cause data loss. Performance is not adversely affected if both the application and the spooler send the ENTER LANGUAGE command. Figure 4-1.
4-10 Kernel Commands
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).
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). START = first page — The command option START is used to provide a non-printing mode for skipping to a selected portion of the job. It indicates the first page that is printed.
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. The display limit can be determined by sending an INFO CONFIG command to the printer. The printer will return DISPLAY LINES = value and DISPLAY CHARACTER SIZE = value as part of the response.
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 Note 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 Syntax: Parameters: The JOB and EOJ commands are always used in pairs. Do not use one without the other. @PJL EOJ [NAME = "job name"] [] Parameter NAME = "job name" Functional Range Default Roman-8 characters 33 thru 255, , 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 Related Commands: 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 4/4M Plus, 4V, 4MV, 4Si, 4SiMx, 4000 series, 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—prevents users from modifying control panel settings using the control panel keys.
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.
To write to volume 0 of the file system, you would send a job like the following. This job specifies the correct password with the JOB command, and then uses the DEFAULT command to unlock, and then later to lock the disk. %-12345X@PJL @PJL COMMENT **Unlock Volume 0** @PJL JOB PASSWORD = 1776 @PJL DEFAULT DISKLOCK = OFF @PJL DINQUIRE DISKLOCK @PJL ENTER LANGUAGE = POSTSCRIPT %!PS-ADOBE . . . PostScript print job . . .
Job Cancellation HP LaserJet 4000 series, 5, 5M, 5Si, 5SiMx printers and the LaserJet 5Si Mopier support job cancellation using the printer control panel. When a PJL print job is started using the PJL JOB command as described in this chapter, the following PJL information can be obtained from the printer: Start of job notification End of job notification Job cancellation unsolicited status Each of these pieces of information is described below.
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.
If the job had been cancelled instead of completed, the printer would respond with the same message except the RESULT value would be different. 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.
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.
Each environment is explained in more detail below: Factory Default Environment — This environment consists of a group of feature settings that are permanently stored in the printer. The printer uses these settings when it is powered on for the first time after leaving the factory, and after the INITIALIZE command is received. User Default Environment — This environment contains the values that are set using the DEFAULT command or the control panel keys.
Figure 6-1.
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. 2.
using the DEFAULT command (User Default Environment). In this example, the number of copies feature setting then defaults to 3 after a PJL reset condition. All other features operate similarly—if any feature is not modified by a higher priority action, it keeps its current value setting. Example: Changing Environment Settings This example shows the values stored in the different environments when commands are issued.
Factory Default Environment User Default Environment Stored permanently in printer memory—settings cannot be modified. Factory default settings cannot be read programmatically, but they are listed in the PCL 5 Comparison Guide. 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.
PJL Reset Conditions “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.
General PJL Environment Variables Note 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 Variable Description Sample Value Range BITSPERPIXEL For PCL 6 only, this variable controls the 2, 1 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. For FastRes 1200 printing, first set the RESOLUTION to 600 and then set BITSPERPIXEL to 2.
General PJL Environment Variables Variable Description Sample Value Range 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. For more information, see the "Control Panel Lock" portion of the "PJL Job Security" section in Chapter 5.
General PJL Environment Variables Variable Description Sample Value Range IMAGEADAPT Default for Image Adapt feature. ON enables ON, OFF, AUTO Lossy compression for use on any images that need to have compression performed. AUTO causes the printer to evaluate other compression alternatives first before Lossy is considered. OFF disables use of Lossy compression. INTRAY1 Returns the auto-selection lock status for the MP tray (LaserJet 4/4M, 4/4M Plus, 4V/4MV) or upper tray (LaserJet 4Si/4SiMx).
General PJL Environment Variables Variable Description Sample Value Range INTRAY3SIZE Returns the size of the paper currently installed in the optional cassette (LaserJet 4/4M, 4/4M Plus, 4V/4MV, 5/5M), envelope feeder (LaserJet 4Si/4SiMx), or tray 3 (5Si/ 5SiMx/5Si Mopier). INTRAY3SIZE is a valid variable only if currently installed. If it is not installed, the printer returns “?” instead of a paper size, indicating the variable is unknown.
General PJL Environment Variables Variable Description Sample Value Range JOBOFFSET Sets the default job offset state. ON, OFF LANG Sets the default display language for the display panel and unsolicited status feedback display panel messages. ENGLISH, FRENCH, GERMAN, ITALIAN, SPANISH, SWEDISH, CHINESE, JAPANESE, TURKISH, POLISH, NORWEGIAN, and others (see Appendix A) LOWTONER Returns configuration for low-toner messages.
General PJL Environment Variables Variable Description Sample Value Range 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, OPTIONALOUT– PUTBIN1, . . .
General PJL Environment Variables Variable Description Sample Value Range PAPER Physical paper (and envelope) sizes.
General PJL Environment Variables Variable PERSONALITY Description Sample Value Range Personality for implicit switching (implicit switching refers to switching to the default personality without explicitly doing so with the @PJL ENTER command). Note that the value string (PCL, POSTSCRIPT, and so on) for each installed personality is defined by the personality itself.
General PJL Environment Variables Variable Description Sample Value Range PRINTAREA INKEDAREA sets the DesignJet to shift the plot to the top/left and advance the page cut in order to save media. FULLSIZE, INKEDAREA PRINTQUALITY Sets the default print quality for the current PJL job. DRAFT, NORMAL, HIGH QTY Sets the number of collated copies of a job. 1 to 999 RENDERMODE Sets the render mode for the personality.
General PJL Environment Variables Variable Description Sample Value Range RET Configuration of the Resolution Enhancement LIGHT, MEDIUM, hardware. Resolution Enhancement DARK, ON, OFF, technology (REt) improves the print quality of AUTO characters and graphics by smoothing the edges of lines. Most users do not need to adjust this feature since the default setting works well for almost every type of job. TIMEOUT Duration of I/O timeouts in seconds.
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 Variables Description Sample Value Range FONTNUMBER If the value of the FONTSOURCE changes, 0, 1, 2, . . . n (continued) 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 Variables FONTSOURCE Description The valid values for FONTSOURCE are: I (Internal Fonts) C, C1, C2 (Cartridge Fonts) S (Permanent Soft Fonts) M1, M2, M3, M4 (Fonts stored in one of the printer’s ROM SIMM slots) Sample Value Range 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 Variables Description Sample Value Range PTSIZE Height of the default font in units of points (the 4.00, 4.25, . . . 999.75 default font must be a proportional scalable font). The point size is significant to a quarter of a point. SYMSET Symbol set. (If the currently selected SYMSET is WIN3.1J, then the default PCL text parsing method is set to Shift-JIS compatible parsing [WIN3.
PostScript-Specific Variables Variable The following table lists the currently defined PostScript-specific variables. These variables can be set using the LPARM : POSTSCRIPT option. Description Sample Value Range ADOBEMBT 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 Note 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 CARRIAGERETURN Description 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. CHARACTERDefault character set used for 1-byte printing. Valid SET values for CHARACTERSET are: KANA–Use katakana character set; EG–Use extended graphics character set. TOPMARGIN Valid values for TOPMARGIN are: TM19MM–sets top margin to 19 mm; TM6MM–sets top margin to 6 mm.
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.
Syntax: @PJL DEFAULT [LPARM : personality | IPARM : port] variable = value [] LPARM : personality — This optional parameter is used to set personality-specific environment variables. PCL is a valid personality. Other personalities, such as PostScript, can be added as hardware options. Use the INFO CONFIG command to request the range of values for all personalities installed in a particular printer. LPARM : personality — This option must be used when setting personality-specific variables.
Parameters: Parameter personality port Variable Names PCL ESCP POSTSCRIPT (Other personalities may also be supported) PARALLEL Supported on LaserJet 4PJ only SERIAL variable Comments: Valid variables for each printer are listed in Appendix A. The DEFAULT command enables you to specify default values for either general variables, which are used by all personalities, or personality-specific variables.
Example: Modifying User Default Settings This example sets page protection to LETTER for all personalities, and selects the PC8 symbol set for all PCL jobs. A RESET command follows the DEFAULT commands so that the PJL Current Environment defaults to the new settings.
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 m
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: 6-38 Environment Commands DEFAULT, RESET, SET
RESET Command Syntax: Parameters: Comments: 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. @PJL RESET [] 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 6-40 Environment Commands
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.
The IPARM : port 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. 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.
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.
6-46 Environment Commands
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.
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 Syntax: Response Syntax: 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 the printer does not support the variable, the response is: @PJL INQUIRE [LPARM:personality | IPARM:port] ~variable "?" 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.
@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.
Example: Using DINQUIRE to Request Feature Settings This example requests the default settings for resolution and personality. The printer returns values of 600 and AUTO. %-12345X@PJL @PJL COMMENT Inquiring Default Settings ~ @PJL ECHO 08:10:33.7 04-17-93 @PJL DINQUIRE RESOLUTION @PJL DINQUIRE PERSONALITY %-12345X For the HP LaserJet 4 printer, a sample response for this example is as follows. Responses from other PJL printers may vary.
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.9 07-04-92 @PJL DINQUIRE LPARM : PCL PITCH @PJL DINQUIRE LPARM : PCL SYMSET %-12345X A sample HP LaserJet 4 printer response for this example is as follows.
ECHO Command Syntax: Response Syntax: Parameters: 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 Syntax: Response Syntax: 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.
CONFIG Category The INFO CONFIG command returns a series of lines listing configuration information. Use this command to request information such as which printer languages are installed, how many input and output trays are installed, and how many font cartridge slots are in the printer. 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.
Parameter Format Description feature alphanumeric value (any combination of letters [ASCII 65-90 or 97-122] and/or digits [ASCII 48-57], beginning with a letter) Name of a printer feature, such as DUPLEX or FONT CARTRIDGE SLOTS. 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 ■ Free space ■ Location Example: Using the INFO FILESYS Command ■ Volume label ■ Volume read/write status %-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 Example: Using the INFO PAGECOUNT Command The INFO PAGECOUNT returns the number of pages printed by the current print engine. This returned number is an indication of printer usage. %-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.
Example: Using the INFO VARIABLES Command This example uses the INFO VARIABLES command to obtain a list of the environment variables. The returned information lists the environment variables, the current setting, and the value or range of values for each. For example, the RESOLUTION section indicates the current setting is 600, and that there are two possible choices: 300 and 600.
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 7-
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).
@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 Status Category 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. 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 32 These conditions indicate PJL file system errors and their (32-000 to 32-999) corresponding error codes and control panel display strings. 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. Printing (40-000 to 40-999) halts until the condition is resolved.
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 (HP LaserJet 4000 series, 5, 5M, 5Si/5SiMx/ 5Si Mopier only). This is useful for spooling applications requiring feedback indicating that a particular job has started or completely printed.
Note Example: Using Unsolicited Job Status HP LaserJet 4000 series, 5Si, and 5SiMx printers, and the 5SiMx Mopier support job cancellation. For information about unsolicited job status during job cancellation, see the “Job Cancellation” section in Chapter 5. 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.
Example: Using Unsolicited Page Status The following example enables unsolicited page status. The sample HP LaserJet 4 printer response indicates the status messages that the printer sends when processing a four-page job. %-12345X@PJL @PJL USTATUS PAGE = ON @PJL JOB @PJL ENTER LANGUAGE = PCL E . . . Four-page PCL Job . . .
TIMED Variable Note 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.
Example: Using Timed Unsolicited Status In this example, a status message is sent to the host every 30 seconds. %-12345X@PJL @PJL USTATUS TIMED = 30 %-12345X A sample HP LaserJet 4 printer response is shown below. Other PJL printers may respond differently.
USTATUSOFF Command Syntax: Parameters: Example: Using the 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. @PJL USTATUSOFF [] There are no parameters for this 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).
@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). The job status indicates that the EOJ command was received and that 75 pages were printed in the recovery job.
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.
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). Some HP LaserJet printers may have a different limit for the number of display lines and number of display characters. To request the display limits, use the INFO CONFIG command.
OPMSG Command Syntax: Parameters: 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.
For the LaserJet 4000 printer, 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). Example: Using the OPMSG Command This example displays “LOAD LETTERHEAD” on the printer control panel and halts processing until the operator presses the On Line or Continue key.
STMSG Command Syntax: Return Syntax: Parameters: 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.
Note For HP LaserJet 4PJ, 4V, 4MV, 5Si, 5SiMx, 5Si Mopier printers, if the LANG variable is set to Japanese, messages are displayed using the JIS X0201-76 character set. For the LaserJet 4000 printer, 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).
The returned message, if the operator presses the Continue key, is: @PJL STMSG DISPLAY="LOAD FORM 1040" CONTINUE Related Commands: 8-8 Device Attendance Commands OPMSG, RDYMSG, INFO CONFIG
9 PJL File System Commands Introduction Several HP LaserJet printers have mass storage capabilities for storing fonts, macros, electronic forms, and other information. The HP LaserJet 4000 series, 5Si, 5SiMx, and 5Si Mopier printers have an optional disk drive. The HP LaserJet 5, 5M, and 4000 series printers support flash memory, which is non-volatile memory contained in modules that are inserted into the printer’s SIMM/DIMM slots.
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: Parameters: @PJL FSAPPEND FORMAT:BINARY SIZE=integer ~NAME = "pathname" [] %-12345X Parameter SIZE=integer Functional Range 31 0 to 2 –1 NAME = "pathname" Roman-8 characters 01 thru 255 Default N/A N/A SIZE = integer — The size variable indicates the number of bytes in the file to be appended.
Examples of valid pathnames include: 0: 0:\ 0:\MyDir 0:\My/Dir\Gen/Dir 0:\dir0\file1 0:\DIR1\DIR2\File1 0:\DIR1\Prefix/Suffix Volume 0 Root directory on volume 0 \MyDir directory \Gen/Dir directory in \My/Dir directory file1 file in \dir0 directory File1 file in \DIR2 directory in \DIR1 directory 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.
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: Parameters: @PJL FSDELETE NAME = "pathname" [] Parameter NAME = "pathname" Functional Range Default Roman-8 characters 01 thru 255 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 Syntax: Parameters: The FSDOWNLOAD command downloads a file to the printer file system. If a file with the same name exists, the downloaded file overwrites it. @PJL FSDOWNLOAD FORMAT:BINARY SIZE=int ~NAME = "pathname" [] %-12345X 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 Syntax: Parameters: The FSINIT command is used to initialize the printer’s mass storage file system. This FSINIT command must be part of a secure job. @PJL FSINIT VOLUME = "pathname" [] Parameter Functional Range Default VOLUME = "pathname" 0: or 1:* N/A * Volume 1: is only supported on the LaserJet 4000 printer. VOLUME = "pathname" — The variable pathname must be a volume.
FSMKDIR Command The FSMKDIR command creates the specified directory on the printer file system. Syntax: Parameters: @PJL FSMKDIR NAME = "pathname" [] 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.
command contained an illegal NAME variable. See PJL File System Errors (32xxx) in Appendix D for a complete list of error codes. Example: Using the FSQUERY Command The following two command lines demonstrate using the FSQUERY command to check for the existence of a file and a directory on the printer’s file system.
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 HP LaserJet 5, 5M, 5Si, 5Si MX, and 5Si Mopier printers to download and call 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).
Eighth Command &f4X The Macro Control command with a value of 4 enables automatic overlay for the macro with the last specified ID. That is, this command prints the macro. Note that &f2X and &f3X will also work here. Ninth Command E The Printer Reset command causes the printer to print and eject the page. It also restores the User Default Environment and deletes temporary fonts and macros.
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.
9-18 PJL File System Commands
10 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 t
@PJL SET RESOLUTION = 600 @PJL ENTER LANGUAGE = PCL E . . . PCL file . . .E ~%-12345X@PJL @PJL COMMENT Reset PJL to restore @PJL COMMENT control panel defaults @PJL RESET %-12345X 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.
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).
Select a Printer Language or Print a Banner Page— If the spooler is responsible for printer language selection or printing banner pages, use the ENTER LANGUAGE command. (Performance is not adversely affected if both the application file and the spooler send the ENTER LANGUAGE command.) 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.
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. Returns the name of the key that the operator pressed.
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 ...
%-12345X@PJL @PJL COMMENT Printing selected pages @PJL JOB START = 5 END = 8 %-12345X@PJL @PJL ENTER LANGUAGE = PCL E . . . PCL print job . . .
Spooler Job That Prints a Banner Page Followed by an Application-Generated Job (Application Does Not Specify Printer Language) The following example demonstrates a spooling application that prints a banner page. The application was not created with a PJL-ready driver, so it does not begin and end with UEL commands, or specify the printer language—the printer implicitly switches to the correct printer language.
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.
EOJ command at the end of each job. Using unsolicited PJL job status, the I/O card could sent a network packet to an application on the client that supplied the job, notifying the user the job had been printed. Printer status readback allows many printer system components to solve user’s needs. Figure 10-1.
Example Printing System Figure 10-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 Bi-Tronics I/O interface. Network servers #4 and #5 spool print jobs from network clients #6 and #7.
Host computers #2 and #3 are connected to the printer via an external printer sharing box that buffers data. If the printer sharing box was not designed to support bi-directional communication with the printer, then applications on host computers #2 and #3 will not be able to receive printer status readback information.
communication cable is between the printer and those components). In summary, an application running on host computer #1 can receive printer responses if the operating system on the host computer supports bi-directional communication over the serial I/O interface. The application may have to wait for the printer’s response if the printer is processing a job from either the Bi-Tronics I/O interface or the MIO interface.
The other primary use for printer status readback is to allow applications to monitor the state of the printer. In particular, applications can inform the user when the printer requires intervention (e.g. fill paper trays). If the application enables unsolicited PJL device status, the printer will inform the application whenever the printer’s status changes.
not receive a response within three seconds, then the application can assume printer status readback is currently unavailable. In some printing environments, the application may be able to distinguish between the host operating system not being able to send the query, and the query being sent without receiving a response in a reasonable amount of time.
print jobs the printer may process before processing the application’s query. 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.
received the last data byte. If the application queries the printer and waits for a response, it is possible for I/O interface idle time to exceed the set timeout value (the TIMEOUT environment variable). When the printer detects the current I/O interface timed out, the printer allows I/O switching and treats any data received over the I/O interface as unrelated to the data previously received over that interface.
There is also a chance the PJL ECHO response will never by sent by the printer, due to overflowing of the printer’s response data buffer as discussed in the following section. Response Data Buffer Overflow The printer contains a limited amount of memory. It is possible for an application to fill all available printer memory with printer status readback responses that have not yet been sent to the host computer, simply by sending many queries and never accepting the responses from the printer.
The application should always send a PJL ECHO command to resynchronize with the printer status readback responses (i.e. get rid of any old responses). However, if the printer’s response data buffer is full and the printer is discarding all future responses, then the host will receive a PJL unsolicited “printer to host data buffer overflow” message, but not the PJL ECHO response.
know which I/O interface to use when sending solicited printer responses. When the printer sharing device sends data to the printer from a different I/O interface, the printer sharing device must know to the exact byte boundary what printer response data should be sent to the previous I/O interface and what data should be sent to the current I/O interface.
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.
query and one generated because of the resent query). If the application is using an outstanding solicited query list, then when the first response is received, the query will be removed from the list. When the second response is received, the second response will be ignored because there is no matching query in the outstanding solicited query list. Given the above structure for sending queries and processing responses, applications should adhere to the following guidelines: 1.
10-32 Programming Tips
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.
PJL Environment Variable Support The following tables list all of the current environment variables for PJL, PCL 5 and PostScript, and show which features are supported by which printers (features for the LaserJet and DeskJet 1600C printers are shown in Table A-2; the DesignJet printers are shown in Table A-3 on pages A-26 and A-27 ). The letters “Y” and “ns” indicate the feature is supported and not supported, respectively. The letters “RO” indicate it is supported as a read only variable.
Table A-2.
Table A-2.
Table A-2.
Table A-2.
Table A-2. PJL Environment Variables for HP LaserJet and DeskJet Printers Environment Variable INTRAY3SIZE INTRAY4SIZE INTRAY5SIZE INTRAY6SIZE INTRAY7SIZE INTRAY8SIZE IOBUFFER 1 IOSIZE 1 JOBATTR JOBOFFSET 1 Variable Values 4 4M 4 Plus 4V 4MPlus 4MV 4Si 4000 4L 4SiMx Series (LETTER) LEGAL A4 EXECUTIVE COM10, DL MONARCH LEDGER A3, JISB4 JISB5 CUSTOM (COM10) MONARCH C5, DL, B5 JPOSTD LETTER LEGAL A4 A3 LEDGER JISB4 EXEC JISB5 CUSTOM Tray-dependent Tray-dependent Tray-dependent ON OFF AUTO 10 to max.
Table A-2. PJL Environment Variables for HP LaserJet and DeskJet Printers Environment Variable INTRAY3SIZE INTRAY4SIZE INTRAY5SIZE INTRAY6SIZE INTRAY7SIZE INTRAY8SIZE IOBUFFER 1 IOSIZE 1 JOBATTR JOBOFFSET 1 Variable Values (LETTER) LEGAL A4 EXECUTIVE COM10, DL MONARCH LEDGER A3, JISB4 JISB5 CUSTOM (COM10) MONARCH C5, DL, B5 JPOSTD LETTER LEGAL A4 A3 LEDGER JISB4 EXEC JISB5 CUSTOM Tray-dependent Tray-dependent Tray-dependent ON OFF AUTO 10–max.
Table A-2.
Table A-2.
Table A-2. PJL Environment Variables for HP LaserJet and DeskJet Printers Environment Variable MPTRAY ORIENTATION OUTBIN OUTLINEPOINTSIZE PAGEPROTECT PAPER (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.7" x 17.
Table A-2. PJL Environment Variables for HP LaserJet and DeskJet Printers Environment Variable MPTRAY ORIENTATION OUTBIN OUTLINEPOINTSIZE PAGEPROTECT PAPER (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.7" x 17.
Table A-2.
Table A-2.
Table A-2.
Table A-2. PJL Environment Variables for HP LaserJet and DeskJet Printers Environment Variable RESOURCESAVE1 RESOURCESAVESIZE 1 RET TIMEOUT WIDEA4 FONTSOURCE FONTNUMBER PITCH PTSIZE 1 Variable Values 4PJ 4 LC 4LJ Pro 5L 6L ON ns ns ns OFF ns ns ns AUTO ns ns ns 0 – max. ns ns ns available memory (100 Kb increments) OFF Y Y Y LIGHT Y Y ns MEDIUM (Y) (Y) ns DARK Y Y ns ON ns ns (Y) 5 to 300 (15) Y Y ns (NO) ns ns ns YES ns ns ns PCL-Specific Variables (I) Y Y Y 3 M1,M2,M3 ..
Table A-2.
Table A-2.
Table A-2.
Table A-2.
Table A-2. PJL Environment Variables for HP LaserJet and DeskJet Printers Environment Variable ADOBEMBT JAMRECOVERY PRTPSERRS 1 Variable Values 4 4M 4 Plus 4V 4MPlus 4MV PostScript-Specific Variables1 OFF ns ns ns ON ns ns ns (AUTO) ns ns ns (OFF) ns Y Y ON ns Y Y (OFF) Y Y Y ON Y Y Y Provided PostScript is installed. PostScript is an option in some printers.
Table A-2. PJL Environment Variables for HP LaserJet and DeskJet Printers Environment Variable ADOBEMBT JAMRECOVERY PRTPSERRS 1 Variable Values 4PJ 4 LC 4LJ Pro 5L 6L 5P 5MP PostScript-Specific Variables 1 OFF ns ns ns ON ns ns ns (AUTO) ns ns ns (OFF) ns ns ns ON ns ns ns (OFF) ns ns ns ON ns ns ns Y Y Y Y Y Y Y 6P 5Si 6MP 5SiMx, Mopier ns ns ns Y Y Y Y ns ns ns Y Y Y Y 5 1600C 5M ns ns ns Y Y Y Y ns ns ns ns ns ns ns Provided PostScript is installed.
Table A-3.
Table A-3.
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 Printer Language Switching 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.
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.
Four conditions may cause the printer to reconfigure user memory: When the printer language changes, either implicitly or explicitly by using the ENTER LANGUAGE command (except when resource saving is enabled). When the page protection setting changes, using the SET or DEFAULT commands, or when the printer is reset using the RESET or INITIALIZE commands or by using the control panel. When the resolution is changed using either the SET or DEFAULT commands, or by using the control panel.
LaserJet 4 Plus, 4M Plus, 4V, and 4MV printers. For HP LaserJet 4Si/4SiMx and 5Si/5SiMx printers, resource saving is only configurable from the control panel. Printer-Specific Job Boundaries Printers that support PJL job boundaries: 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, 6P, 6MP, 5Si, 5SiMx, 5Si Mopier, HP Color LaserJet, HP Color LaserJet 5, 5M The printers listed above handle the following conditions as PJL job boundaries.
Timeouts Printers that support the TIMEOUT variable: 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, 6P, 6MP, 5Si, 5SiMx, 5Si Mopier These printers have a timeout capability which is used to recover when jobs are interrupted by situations such as power failures. The timeout duration varies depending on the data received by the printer.
There are two differences between backward-compatibility mode and normal operating mode. In backward-compatibility mode, when a PCL printer language reset (E) is executed, instead of causing the PJL Current Environment variables to be loaded into the Modified Print Environment, the User Default Environment settings (control panel values) are loaded. This is the same way the LaserJet III printer works.
INITIALIZE commands. The password can only be changed from within a secure PJL job. On printers with a control panel, the control panel can be “locked out” so that users cannot modify settings using the control panel keys. This is accomplished using the DEFAULT command to set the CPLOCK variable to ON. The LaserJet 4V/4MV and 5Si/5SiMx printer’s disk can be “locked” so that it cannot be formatted, fonts cannot be written to it, and disk fonts cannot be erased.
only one language, use the PJL ENTER LANGUAGE command to specify PCL. EconoMode—a toner-saving feature that produces draft-like pages when top-quality printing is not necessary. 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.
Under these conditions, the printer samples the incoming printable data and looks for indications of a 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 the printer begins to parse the data in the newly selected printer language.
Variables Not Stored in NVRAM Printer Status Readback COPIES PAGEPROTECT FORMLINES PAPER MEDIASOURCE PRINTQUALITY MEDIATYPE RENDERMODE ORIENTATION RESOLUTION 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.
protection, resolution, or printer language status. For example, if the resolution is at 600 dpi and an application sends the @PJL SET RESOLUTION = 600 command, memory is not reconfigured. Resource Saving Printer Specific Job Boundaries None of the DeskJet 1200C or 1600C printer families support resource saving. 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.
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 Specifying the Output Bin PJL commands are used to specify the destination bin and control printer functions such as stapling and collating multiple copies. 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 Series Comments The LaserJet 4000 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.
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 [] 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 [] IN
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 @PJL ST
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 [] PJL Command Summary B-5
B-6 PJL Command Summary
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).
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.
Paper Jam Errors (42xyy) Optional (External) Paper Handling Device Errors (43xyy) LaserJet 4000 Series 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 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 RESET or
Status Code Control Panel Display String or Code Meaning 10030 Background Paper Loading (11xyy) Job message — a print job has been received containing the optional DISPLAY="message" token pair associated with the PJL JOB command. 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 Media Size 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 Paper 26 Japan B6 Paper
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.
PJL Parser Errors (20xxx) These status codes denote PJL parser errors. The entire PJL command line is ignored. (Some of the status codes refer to portions of PJL commands such as “command modifiers” and “alphanumeric values.” For a description of the PJL command format, see “Format of PJL Commands” in Chapter 2.
Status Code PJL Parser Warnings (25xxx) 20019 Numeric value encountered when an alphanumeric value expected 20020 String encountered when an alphanumeric value expected 20021 Unsupported command modifier 20022 Command modifier missing 20023 Option missing 20024 Extra data received after option name (used for commands like SET that limit the number of options supported) 20025 Two decimal points in a numeric value 20026 Invalid binary value This group of status codes denote PJL parser warnin
Status Code PJL Semantic Errors (27xxx) Display String or Code Meaning 25011 Ignored option name due to value underflow or overflow 25012 Value for option experienced data loss due to data conversion (value truncated or rounded) 25013 Value for option experienced data loss due to value being out of range; the value used was the closest supported limit 25014 Value is of the correct type, but is out of range (value was ignored) 25016 Option name received with an alphanumeric value, but this value
Status Code D-10 PJL Status Codes Display String or Code Meaning 27005 Can only use DEFAULT with this variable; cannot use SET. 27006 Attempted to pass a NULL string to a command or command option that requires the string to contain at least one character. 27007 Attempted to DEFAULT a variable which can only be SET.
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 D-12 PJL Status Codes 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 Potential Operator Intervention Conditions (35xxx) 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 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
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 40054 40055 40056 40057 40058 40059 40061 40062 40063 40064 40065 40066 40067 40068 40069 40070 40071 40079 40080 40083 40089 40090 40092 40093 40099 Display String or Code Meaning 54 ERROR 55 ERROR 56 ERROR 57 SERVICE or 57 MOTOR FAILURE, CALL SERVICE 58 SERVICE or FAN MOTOR FAILURE, CALL SERVICE 59 ERROR 61.x SERVICE 62.
Status Code 40100 40102 40103 40104 40105 40106 40107 40116 40118 40120 40121 40122 40123 40124 Foreground Paper Loading (41xyy) Display String or Code Meaning 56.2 ERROR PRESS SELECT KEY FINISHER ALIGN ERROR [BIN NAME] FINISH LIMIT REACHED [BIN NAME] INPUT DEVICE FEED PATH OPEN OUTPUT DEVICE DELIVERY PATH OPEN INPUT OPERATION ERROR X.YY OUTPUT OPERATION ERROR X.YY Volume 1 FAILURE (Failure on Volume 1.
4 EE Tray or Envelope Feeder 5 Any HCI Tray YY = Media Code 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 (or JB4 paper—LaserJet 6P) 17 J-RoundTrip Postcard (or JB5 paper— LaserJet 6P) 18 A5 Paper (or JPostcard—LaserJet 6P
YY = Media Code Paper Jam Messages (LaserJet 5Si/ 5SiMx only) (42xyy) Media Size 22 Japan B5-R Paper 23 Exec-R Paper 24 A6 Paper 25 Foolscap Paper 26 Japan B6 Paper 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.
Y = Jam Location 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 14
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 LaserJet 4000 Series Paper Jam Messages (44xyy) Error Code 16 PHC never ready during initialization 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 This category contains unsolicited status error messages related to paper jams (for the LaserJet 4000 series print
yy Hardware Errors (50xxx) 07 Paper jam in the front door area 08 Paper jam in the left door area 09 Paper jam in the right door area These status codes are sent out when a hardware problem exists and the printer is working well enough to send status messages.
Status Code Display String or Code Meaning 50013 51.2 ERROR PRESS SELECT KEY or LASER MALFUNCTION 50014 52.1 ERROR PRESS SELECT KEY or SCANNER STARTUP FAILURE 50015 52.2 ERROR PRESS SELECT KEY or SCANNER ROTATION FAILURE 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.
Status Code D-26 PJL Status Codes Display String or Code Meaning 50027 DUPLEX ERROR CHECK DUPLEX UNIT or DUPLEX UNIT GUIDE FAILED AND REQUIRES SERVICE 50028 55.
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.
Automatic I/O Switching Automatic I/O switching allows data to be sent to any of the printer’s I/O ports without reconfiguring the active I/O port from the control panel. When the printer is turned on, all I/O ports are enabled to accept data. The first port to receive data is called the active I/O port. The active I/O port is the source for the current print job. All other I/O ports temporarily are disabled until the next job boundary.
Default A value used instead of a programmatically selected value. A factory default is a value programmed into the printer at the factory; this value is stored in read-only memory and cannot be changed by a user or operator. A user default is a default value, stored in non-volatile RAM (in printers that have NVRAM), that is selectable using the control panel or the PJL DEFAULT command.
Implicit Switching Implicit switching occurs when a printer language is activated due to reception of non-PJL data which is not preceded by a PJL ENTER command. (See contextsensitive printer language selection.) Job Boundary The beginning or end of a print job. The position between two characters of data in the data stream where the previous character is the last character of the previous print job, and the next character is the first character of the next print job.
Non-Volatile Memory Random Access Memory where contents are preserved when the printer is powered off (volatile RAM is memory where contents are not preserved when the device is powered off). Offline/Online Online is a condition during which the printer accepts data from the host computer. When the printer is online, the ON LINE light is lit. When offline, the printer cannot accept data from the host.
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.
Poorly Formed Print Job A print job which either starts or ends with an invalid data stream sequence. For example, any job that does not begin and end with a UEL command is a poorly formed job. This manual describes how to create properly formed print jobs and contains many examples to demonstrate them. See Chapters 1 – 3 and Chapter 10 for more information about creating well-formed jobs.
Solicited Status Solicited status is printer status information that is specifically requested. For example, the command @PJL INFO ID solicits the printer’s ID. The printer responds to solicited status messages as they are received. See “unsolicited status.” Status Readback Sending printer status information from the printer to the host computer.
User Default Environment The User Default Environment consists of the user default settings selected from the control panel or by way of the PJL DEFAULT command. The user default settings are stored in non-volatile memory (in those printers that have NVRAM). Those settings not selected using the control panel or PJL DEFAULT command are set to the factory default values.
Glossary-10
Index ! 10010 error ~ (line continuation character) @PJL ^D | (vertical bar) 10-27 2-2, G-1 2-5 2-3 2-2, G-1 A active I/O port alphanumeric variables ANKCONDENSE variable application design ideas application developers auto-continuable conditions auto-continue AUTOCONT variable automatic I/O switching AUTOSELECT variable G-1 2-7 6-29 10-30 iii D-11 G-1 6-11 G-2 6-11 B background paper loading backward-compatibility mode batch file example Bi-Tronics interface BINDING variable BITSPERPIXEL variable blank
E ECHO command example EconoMode ECONOMODE variable ENTER command example ENTER LANGUAGE command environment environment commands environment variable support environment variables environments changing settings defaulting example (changing settings) Factory Default Modified Print PJL Current printer language-specific summary User Default EOJ command errors, processing ESC Esc/P printer language variables ESC/P-specific variables escape character escape character (ASCII 27) example printing system examples,
INTRAY4SIZE variable 6-15 INTRAY5SIZE variable 6-15 INTRAY6SIZE variable 6-15 INTRAY7SIZE variable 6-15 INTRAY8SIZE variable 6-15 introduction to PJL 1-1 invalid commands 2-9 IOBUFFER variable 6-15 IOSIZE variable 6-15 IPARM parameter (port-specific) 6-33, 6-42, 7-4, 7-9 J JAMRECOVERY variable 6-27 Japanese character set 2-8 JIS X0201-76 character set 2-8, 5-4, 8-2, 8-4, 8-7 job boundaries 5-4 job boundaries, printer-specific A-32 job boundary G-4 job cancellation 5-14 JOB command 5-2, 6-8 example 5-5 - 5-
operator message, changing OPMSG command option name ORIENTATION variable OUTBIN variable OUTLINEPOINTSIZE variable overflow, data buffer overview 8-4 8-4, 8-5 2-5 6-17 6-17 6-17 10-27 3-1 P page count 5-4, 7-24 PAGE variable 7-39 PAGEPROTECT variable 6-17 PaintJet XL300 printer 1-4, A-3 PAPER variable 6-18 PARALLEL variable 6-18 parser errors D-7 parser warnings D-8 parsing errors 2-10 password 5-3 password protection 5-10 PASSWORD variable 5-10, 6-18 PCL 5 Comparison Guide vii PCL-specific variables 6-2
printer language switching 1-1,1-3,4-4,4-8,A-29,C-2 and performance 4-9 LaserJet IIISi A-28 printer languages other 1-5 PostScript 1-5 switching 3-3 printer model 7-17 printer resources 10-5 printer setup 6-30 printer sharing 10-18 printer sharing boxes 10-21 printer sharing devices 10-28 printer status readback 1-3 printer status readback usage 10-22 printer status requirements 7-2 printer status, requesting 10-18 printer utilities 10-5 printing pre-existing jobs 10-10 PRINTQUALITY variable 6-20 product-sp
T tab character (HT) technical support personnel termination, line TIMED variable TIMEOUT variable timeouts TOPMARGIN variable W 2-3 iii 3-2 7-41 6-21 A-33 6-29 U UEL (Universal Exit Language) command 2-4 UEL command 1-3, 3-1, 4-2, 6-8, 6-30, G-8 example 4-3 Universal Exit Language (UEL) command2-4, 4-2, G-8 See UEL command unsolicited device status example 7-36 unsolicited job status 5-9, 7-37 unsolicited page status 5-4, 7-39 unsolicited status G-8 determining choices 7-30 turning off 7-43 User Default
Quick Index Command Page No. Command Description COMMENT 4-6 Causes PJL to accept the command line as a comment. DEFAULT 6-32 Sets default value for environment variables. DINQUIRE 7-9 Requests default value for specified environment variable. ECHO 7-14 Returns comment portion of command to host computer. ENTER 4-4 Selects a printer language for processing the current job. EOJ 5-8 Tells printer the job has completed, resets the page count.