HP Printer Job Language Technical Reference Manual ENWW PCL/PJL Bpl13208

PJLTechnicalReferenceManual

PJL_Technical_Reference_Manual

PJL_Technical_Reference_Manual

User Manual: HP HP PCL/PJL reference - Printer Job Language Technical Reference Manual

Open the PDF directly: View PDF PDF.
Page Count: 342 [warning: Documents this large are best viewed by clicking the View PDF Link!]

Printer Job Language
Technical Reference Manual
Copyright and
License
© 2003 Hewlett-Packard
Development Company, LP
All Rights Reserved.
Reproduction, adaptation, or
translation without prior written
permission is prohibited, except
as allowed under the copyright
laws.
The information contained in
this document is subject to
change without notice.
Publication Number: 5021-0380
Edition 12, 6/2003
Trademarks
Adobe, PostScript, and the
PostScript logo are trademarks
of Adobe Systems Incorporated,
which may be registered in
certain jurisdictions. AppleTalk
is a registered trademark of
Apple Computer, Inc.
Centronics is a U.S.
registered trademark of
Centronics Data Computer
Corporation. HP Explorer
Software is a trademark and
PCL and Resolution
Enhancement are registered
trademarks of Hewlett-Packard
Company. Epson is a registered
trademark of Epson America,
Inc. Harvard Graphics is a
registered trademark of
Software Publishing
Corporation. IBM is a registered
trademark and ProPrinter is a
trademark of International
Business Machines
Corporation. Lotus and 1-2-3
are registered trademarks of
Lotus Development
Corporation. Microsoft is a
registered trademark and Word,
Windows, MS-Mincho, and MS-
Gothic are trademarks of
Microsoft Corporation. ESC/P is
a trademark of Seiko-Epson
Corporation. WordPerfect is a
registered trademark of Corel
Corporation or Corel
Corporation Limited.
EN iii
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. Using PJL, developers can provide
applications with the ability to programmatically switch printer
languages, monitor printer status, request the printer model and
configuration, change control panel default settings, modify control
panel messages, and more.
This manual is written for experienced users such as application
developers and technical support personnel. Before using PJL
commands, programmers should be familiar with the introductory
information in Chapters 1, 2, and 3, and with the programming tips in
Chapter 11. In addition, users of this manual should be acquainted
with the HP LaserJet printer language (PCL) and with LaserJet printer
features.
Application Developers
This PJL Technical Reference Manual provides developers with all
the information necessary to add PJL to their applications. Examples
are used throughout the manual to help developers write efficient and
properly functioning code.
Technical Support Personnel
This manual provides reference information for network
administrators and other technical support personnel who manage
multi-user systems. PJL provides the potential for significantly
enhancing network printer operation.
Non-Technical Users
Non-technical users can use the features of PJL by using HP Explorer
Software, or by using software that supports PJL. Since improperly
used PJL commands can cause problems in a network situation,
inexperienced users are advised against using PJL commands on
any system other than a dedicated workstation.
iv EN
Manual Organization
This manual is comprised of eleven chapters and four appendices.
The first three chapters introduce you to the range of PJL features,
PJL syntax and format, some rules about using PJL, and a brief
description of each command. Chapter 4 explores the essential
“kernel” commandsthose commands that are part of almost every
PJL job. Chapters 5 through 10 each describe a separate group of
related commands. The remaining chapters cover programming tips
and related PJL information. A brief description of each chapter is
provided below.
Chapter 1. Introduction to PJL
This chapter explains what PJL is, who should use PJL, and the
benefits of using PJL in application programs. It also covers
compatibility with non-PJL printers, which includes older models of
HP LaserJet printers, HP DeskJet printers, and HP DesignJet plotters
and printers.
Chapter 2. PJL Command Syntax and Format
Chapter 2 explains the conventions used to describe PJL command
syntax. The chapter also explains the formats that PJL commands
follow and describes what happens when the printer receives an
illegal command.
Chapter 3. Using PJL
This chapter explains how PJL commands are used, including the
requirements of a PJL job and examples showing basic PJL
command structure. In addition, the chapter categorizes the PJL
commands in this manual by their functionality, along with a brief
command summary.
Chapter 4. Kernel Commands
This chapter explains the three core commands used in most PJL
jobs: the Universal Exit Language (UEL) command, the COMMENT
command, and the ENTER command. The chapter also describes the
related topics of implicit and explicit printer language switching.
EN v
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. Status Readback Commands
Chapter 7 describes status readback, the format of status readback
responses, using software tools to interpret status readback, and the
commands associated with status readback (INQUIRE, DINQUIRE,
ECHO, INFO, USTATUS, and USTATUSOFF). This chapter also
covers the processes involved in job recovery and monitoring the
printer control panel.
Chapter 8. Device Attendance Commands
Chapter 8 describes the commands used to display messages on the
printer control panel: the RDYMSG, OPMSG, and STMSG
commands.
Chapter 9. PJL File System Commands
Chapter 9 describes the commands used for managing a printer-
based disk drive, or other printer-based mass storage. The
commands include FSAPPEND, FSDIRLIST, FSINIT, FSMKDIR,
FSQUERY, FSUPLOAD, FSDOWNLOAD, and FSDELETE. These
commands provide the capability to initialize the mass storage, make
directories, list directories, and download, upload, delete, and
append files.
Chapter 10. Job Management
Chapter 10 describes the job management features found on the
HP LaserJet 8100 and 8500 printers.
vi EN
Chapter 11. Programming Tips for Using PJL
This chapter demonstrates how to create well-formed jobs and
discusses common problems and things to watch for when using PJL
commands. Samples are included to demonstrate different types of
applications.
Appendix A. Product-Specific Feature Support
This chapter lists all of the PJL commands and shows which
commands are supported by the different PJL printers. It also shows
which environment variables are supported, and includes printer-
specific information about several PJL printers.
Appendix B. PJL Command Summary
This appendix lists all of the PJL commands in alphabetical order, and
shows the format of each command.
Appendix C. Programming Examples
Appendix C shows an example of a PJL job in both the generic format
used in the rest of this manual, and in the C programming language.
The appendix also includes a batch file that modifies the control panel
display message during job processing.
Appendix D. PJL Status Codes
This appendix describes the status code information available when
using status readback.
Index
This manual includes an index for easy access to PJL information.
EN vii
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. A large portion of the manual is devoted to HP-GL/2, the
vector-based graphics language that is part of all PCL 5 printers.
PCL 5 Comparison Guide
This document provides printer-specific information on paper
handling, internal fonts, PCL command support, and control panel
information. It identifies feature differences between the PCL 5
printers, and how the printers implement the commands described in
the PCL 5 Printer Language Technical Reference Manual.
PCL/PJL Technical Quick Reference Guide
This booklet is designed to provide quick access to the syntax of each
PCL and PJL command. The commands are grouped by their
function so that those familiar with PCL and/or PJL can find the
syntax of a specific command without opening the manual.
viii EN
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, <CR> for carriage return) or a special defined
identifier.
A vertical bar (|) indicates there is more than one optional
parameter.
Note Throughout this manual, the term printer also includes any relevant
DesignJet plotters and printers.
EN Contents-i
Contents
Printer Job Language
Technical Reference Manual
Inside This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-iii
Manual Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-iv
Related Documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-vii
Manual Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-viii
Contents
1 Introduction to PJL
The Benefits of PJL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Who Should Use PJL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Compatibility With Non-PJL Printers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
2 PJL Command Syntax and Format
Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Format of PJL Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
PJL Syntax Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Types of Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Processing Invalid Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9
3 Using PJL
Overview of How Commands are Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
PJL Job Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Some Sample PJL Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
What's Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Command Groupings by Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6
4 Kernel Commands
Universal Exit Language (UEL) Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
ENTER Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
COMMENT Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
Methods of Printer Language Switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
Contents-ii EN
5 Job Separation Commands
JOB Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
EOJ Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8
PJL Job Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10
Password Protection of Default Feature Settings . . . . . . . . . . . . . . . . . . . 5-10
Control Panel Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11
Disk Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11
Job Cancellation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13
Start of Job Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13
End of Job Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14
Job Cancellation Unsolicited Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15
6 Environment Commands
Print Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
Changing Environment Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
Environment Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6
PJL Reset Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8
Key Points to Remember About Environments . . . . . . . . . . . . . . . . . . . . . . . . 6-10
PJL Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
General PJL Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-12
Port-Specific Variables (LaserJet 4PJ Only) . . . . . . . . . . . . . . . . . . . . . . . 6-26
PCL-Specific Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-27
PostScript-Specific Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-31
ESC/P-Specific Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-32
Setting the Printer to a Desired State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-34
DEFAULT Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-36
INITIALIZE Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-39
RESET Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-42
SET Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-45
7 Status Readback Commands
Printer Status Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3
Synchronizing Status Readback Responses . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3
Format of Status Readback Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4
INQUIRE Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-5
DINQUIRE Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10
ECHO Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-14
INFO Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16
USTATUS Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-31
TIMED Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-40
USTATUSOFF Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-42
Job Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-43
Sending the Initial Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-43
EN Contents-iii
After Job Failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-44
8 Device Attendance Commands
RDYMSG Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
OPMSG Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5
STMSG Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-7
9 PJL File System Commands
FSAPPEND Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3
FSDIRLIST Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5
FSDELETE Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7
FSDOWNLOAD Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-8
FSINIT Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-9
FSMKDIR Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-10
FSQUERY Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-11
FSUPLOAD Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-13
File System Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15
10 Job Management
HP LaserJet 8100 Printer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1
HP LaserJet 8500 Printer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5
11 Programming Tips for Using PJL
PJL Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2
Print Data Generators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3
Printer Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5
Spoolers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-11
Requesting Printer Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-18
Using Status Readback in a Multi-User System . . . . . . . . . . . . . . . . . . . . . . 11-18
A Product-Specific Feature Support
PJL Feature Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-2
PJL Environment Variable Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-6
HP LaserJet IIISi Comments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-43
Comments about HP LaserJet Printers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-44
LaserJet Printers with Reduced-Function
Control Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-51
Color LaserJet Printer Comments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-52
HP DeskJet 1200C and 1600C Printer Family Comments . . . . . . . . . . . . . . . A-52
Contents-iv EN
HP LaserJet 5Si/ 5SiMx/5Si Mopier Comments . . . . . . . . . . . . . . . . . . . . . . . A-56
HP LaserJet 5Si Mopier Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-57
HP LaserJet 4000 and 5000 Series Comments . . . . . . . . . . . . . . . . . . . . . . . A-59
HP LaserJet 1100 Series Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-61
HP LaserJet 2100 Series Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-62
HP Color LaserJet 4500 Series Comments . . . . . . . . . . . . . . . . . . . . . . . . . . A-63
HP LaserJet 8000 and 8100 Series Comments . . . . . . . . . . . . . . . . . . . . . . . A-64
HP Color LaserJet 8500 Series Comments . . . . . . . . . . . . . . . . . . . . . . . . . . A-65
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-7
PJL Parser Errors (20xxx). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-7
PJL Parser Warnings (25xxx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-9
PJL Semantic Errors (27xxx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-10
Auto-Continuable Conditions (30xxx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-11
PJL File System Errors (32xxx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-13
Potential Operator Intervention
Conditions (35xxx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-14
Operator Intervention Conditions (40xxx) . . . . . . . . . . . . . . . . . . . . . . . . . D-16
Foreground Paper Loading (41xyy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-19
Paper Jam Messages (LaserJet 5Si/5SiMx only) (42xyy) . . . . . . . . . . . . D-20
Optional (External) Paper Handling Device Messages (43xyy) . . . . . . . . D-22
LaserJet 4000 / 5000 Series Paper Jam Messages (44xyy) . . . . . . . . . . D-23
Hardware Errors (50xxx). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D-24
Glossary
Index
EN Introduction to PJL 1-1
1Introduction 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.
For the HP printers (HP LaserJet, HP DeskJet, and HP DesignJet)
that support it, PJL allows job-level control that cannot be
accomplished with PCL, PostScript, or other printer languages. To
provide this control, PJL functions “above” the level of PCL and other
printer languages, providing four major functions:
Printer language switching between jobs
Job separation
Printer configuration
Status readback from the printer to the host computer
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
1-2 Introduction to PJL EN
Figure 1-1 PJL Resides Above Other Printer Languages
Note Some HP printers, such as the LaserJet 4L, 5L, 6L, or 1100 Series
printers, do not support printer language switching or job separation.
See Appendix A for feature support information.
Using PJL, software applications can request information such as
printer model, configuration, and status. PJL also can be used to
change control panel settings and modify the message displayed on
the control panel, or change feature settings in printers without a
control panel, such as the HP LaserJet 1100 Series printers. For
those printers supporting more than one printer language,
applications can print one job using PCL, and then print the next job
using PostScript or another printer languagewithout any operator
intervention.
EN Introduction to PJL 1-3
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. Control panel settings,
including control panel messages, can be changed remotely.
Ease of use. All PJL commands except the Universal Exit
Language (UEL) command consist of printable characters and
plain-English words or abbreviated words. Learning to use PJL
can be accomplished by reading the first three chapters of this
manual and following the examples provided in the text.
Better spooler control. PJL allows spoolers improved printer
management, especially in a network environment.
Who Should Use PJL?
PJL is designed to be used by experienced programmers, such as
software application developers and technical support personnel.
Although PJL is not complicated, it is a powerful tool, and should be
used only by experienced users who can create jobs that cause no
adverse effects on other jobs in a shared environment. Applications
containing PJL commands used as described in this manual provide
users with smooth transitions between print jobs. Conversely,
improperly used PJL commands can create problems in multi-user
printing environments.
1-4 Introduction to PJL EN
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.
PJL commands are recognized by the following HP printers:
LaserJet IIISi, 4Si, 4SiMx, 5Si, 5SiMx, 5Si Mopier
LaserJet 1100 Series, 2100 Series
LaserJet 4000 Series, 5000 Series
LaserJet 8000 Series, 8100 Series
LaserJet 4V, 4MV
LaserJet 4, 4 Plus, 4M, 4M Plus, 5, 5M
LaserJet 4L, 4ML, 4LJ Pro, 4LC, 5L, 6L
LaserJet 4P, 4MP, 4PJ, 5P, 6P, 6MP
Color LaserJet, Color LaserJet 5, 5M
Color LaserJet 4500 Series, 8500 Series
DeskJet 1200C, 1600C
DesignJet Family
PaintJet XL300
The printers listed above are designed to handle any PJL command,
even those not supported by that particular printer. On the other
hand, all PCL 4 printers, and all PCL 5 printers not listed above, do
not support PJL. When PJL commands are sent to a non-PJL printer,
the results differ depending on which commands are used and which
printer language is used. The following paragraphs explain what
happens when PCL and PostScript jobs containing PJL commands
are sent to non-PJL printers.
Note For best results, do not send PJL commands to a non-PJL printer.
EN Introduction to PJL 1-5
PCL Jobs
When non-PJL printers receive PCL jobs, any PJL commands that
precede the initial PCL printer reset command (<ESC>E) print as
ASCII text. When the initial printer reset command is received, it
causes a page eject and the PCL job begins on a new page. The end
result is a page or more of PJL commands followed by the PCL job,
and possibly followed by more PJL commands. 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.
For those PCL applications that do not begin with a PCL printer reset
command (or another PCL command that forces a page eject when
preceded by printable data), the PJL commands are printed as ASCII
text on the same page as the PCL job. A good portion of the job may
be unusable due to unpredictable page breaks and overprinted text
on the first page.
PostScript Jobs
When non-PJL printers are running in PostScript mode, PJL
commands cause a PostScript error and prevent the job from printing.
Pressing the printer's Continue key removes the error message, but
the error causes the printer to discard the PostScript job.
Other Printer Languages
PJL code is interpreted differently when running different printer
languages on non-PJL printers. To avoid printing problems, do not
use PJL commands when printing to any non-PJL printer, regardless
of which printer language is used.
1-6 Introduction to PJL EN
EN PJL Command Syntax and Format 2-1
2PJL 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.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
2-2 PJL Command Syntax and Format EN
Syntax Conventions
The following syntax conventions are used to describe the PJL
commands in this manual:
variables Items in italics indicate names of variables.
COMMANDS Items in uppercase letters indicate PJL command names
and words that you type verbatim. PJL command names
referred to in text are also in uppercase.
[ ] Items in brackets [ . . . ] indicate optional parameters. The
brackets themselves are not typed.
< > Identifies a control code character, such as <CR> for
carriage return, or a special defined identifier. The table on
the next page lists the control codes and special identifiers
used in the PJL syntax. (The < and > symbols themselves
are not typed, but are replaced with the control codes or
special identifiers they represent. For example, replace
<FF> with the form feed character [ASCII 12].)
~This character indicates that the current line of code is a
continuation of the previous line. For example, “All of this
text belongs on the
~ same line.
| A vertical bar indicates there is more than one optional
parameter, such as LPARM and IPARM: [LPARM :
personality | IPARM : port].
EN PJL Command Syntax and Format 2-3
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:
<HT> Horizontal tab character (ASCII 9).
<LF> Line feed character (ASCII 10).
<CR> Carriage return character (ASCII 13).
<SP> Space character (ASCII 32).
<ESC> Escape character (ASCII 27).
<FF> Form feed character (ASCII 12).
<WS> White space, a result of one or more <SP>
or <HT>.
<words> Printable characters (Roman-8 characters 33
through 255) and <WS>, starting with a printable
character.
^D PostScript end-of-file indication. It is not part of
PJL, but is used to end PostScript examples.
2-4 PJL Command Syntax and Format EN
Format of PJL Commands
All PJL command lines follow one of the following four formats. Each
format defines how commands using that format are structured.
Format #1
<ESC>%–12345X
The only command that uses this format is the Universal Exit
Language (UEL) command.
Format #2
@PJL [<CR>]<LF>
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.
Format #3
@PJL command [<words>] [<CR>]<LF>
The COMMENT and ECHO commands currently are the only PJL
commands using format number 3.
Format #4
@PJL command [command modifier : value]
~ [option name [= value]] [<CR>]<LF>
This format is used for all of the other PJL commands and is
described in more detail below.
command — command is one of the assigned PJL command names,
such as ENTER, RDYMSG, or RESET.
[command modifier : value] — The command modifier enables the
user to specify what is effected by the command. For example, with
the command modifier LPARM you can specify language-specific
variables. A PJL command with a command modifier of LPARM : PCL
only affects PCL-specific settings. A PJL command can contain only
one command modifier. For example, in the command: @PJL SET
EN PJL Command Syntax and Format 2-5
[LPARM : personality]|[IPARM : port] variable = value [<CR>] <LF>,
you can use either the LPARM command modifier or the IPARM
command modifier, but not both.
[option name [ = value ] ] The option parameter specifies an
option or sets a command option to a certain value. Examples include
“@PJL INQUIRE COPIES” and “@PJL ENTER LANGUAGE =
personality.” The range of values varies with each specific command
and each printer model. A PJL command may have no options, or one
or more options (an unlimited number).
The DEFAULT command shown below illustrates format number 4.
The command sets the default PCL point size to 14.25.
PJL Syntax Rules
Following are the rules governing the use of PJL commands:
The PJL prefix “@PJL” always must be uppercase. The
remainder of the PJL command is not case-sensitive. For
clarity, however, this manual shows other portions of PJL
commands in uppercase to indicate portions that are not
variable and that should be typed as shown (such as the first
three words in the following command):
@PJL STMSG DISPLAY = "message" [<CR>]<LF>
Spacing between characters, or “white space,” is comprised of
one or more of either the space character (ASCII 32) or the
horizontal tab character (ASCII 9). For clarity and consistency,
this manual shows all white space as one blank space.
2-6 PJL Command Syntax and Format EN
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).
If white space is not shown between two portions of a
command, white space is not allowed. An example is between
the optional carriage return and required line feed character
that terminate most commands.
For clarity, this manual consistently shows white space as one blank
space. The PJL language requirements are shown in both examples
below:
EN PJL Command Syntax and Format 2-7
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 valid alphanumeric variables include:
LaserJet279
J1953
Examples of invalid alphanumeric variables include:
279LaserJet
(Alphanumeric variables must begin with a letter)
J 1953
(Space characters [ASCII 32] are not allowed in alphanumeric
variables)
Numeric variables. Any number consisting of digits, with one
optional decimal point and an optional + or – sign preceding
the first digit. Only one decimal point may be used, and it must
be placed somewhere after the first digit. Digits are not
required after the decimal point.
Examples of valid numeric variables include:
0.123456
–123.456
+657000
2468.
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)
2-8 PJL Command Syntax and Format EN
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:
"<HT>This is a valid string."
(Tabs are allowed in strings)
"Print job #4655"
Examples of invalid strings include:
"This is not a valid" string."
(Strings cannot contain quotation marks)
"This is also not<CR>valid."
(<CR> is not within the valid range of characters for a string.)
Note Strings displayed on the printer control panel are generally displayed
using the Roman-8 symbol set. On HP LaserJet 4PJ, 4V, and 4MV
printers, 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.
This is also true for some other printers/languages. See the note on
page 8-3.
EN PJL Command Syntax and Format 2-9
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. When the printer receives
commands with syntax errors, it ignores the entire command.
For example, the value portion of the JOB command's NAME
option is a string and requires double quotes around the value
(as shown below). In the second example below, the JOB
command is ignored since the string (April Paychecks)
contains the opening but not the required closing quotes.
Valid command:
@PJL JOB NAME = "April Paychecks" <LF>
Invalid command:
@PJL JOB NAME = "April Paychecks <LF>
Syntax warnings and semantic warnings are issued for
commands such as those having unsupported options, values
that are out of range, values that are the wrong type or
missing, or values that are included when none are allowed.
When the printer receives commands with syntax or semantic
warnings, it executes as much of the command as possible,
but the portion of the command containing the warning is
ignored.
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 <LF>
Invalid command:
@PJL JOB START = 1 FINISH = HOME <LF>
2-10 PJL Command Syntax and Format EN
Note Any errors that occur during PJL parsing can be received by enabling
device status as described in Chapter 7 (send the @PJL USTATUS
DEVICE = VERBOSE command). Appendix D lists the status codes
that are received by the host when an invalid command is received
and unsolicited verbose device status is enabled.
EN Using PJL 3-1
3Using PJL
Introduction
This chapter describes how PJL commands are used. After reading
this chapter, you can create basic jobs and perform simple PJL tasks,
such as printer language switching and changing some PJL feature
settings.
To give you an understanding of where to look for more PJL
information, this chapter explains how the manual categorizes PJL
commands into groups of related commands. Each command has a
brief description of its function to help familiarize you with the PJL
language.
Note Each PJL printer supports a different set of PJL commands. See
Appendix A for printer-specific information.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
Overview of How Commands are Used
As previously explained, PJL resides “above” other printer languages
such as PCL and PostScript. PJL commands encapsulate the printer
language jobs, as shown in Figure 3-1. The Universal Exit Language
(UEL) command allows the printer to alternate between interpreting
PJL commands and printer language commands. (Although PCL and
PostScript are shown in Figure 3-1, other printer languages can be
involved.)
3-2 Using PJL EN
Figure 3-1 PJL Commands Encapsulate Print Jobs
PJL Code PCL Job PJL Code PostScript
Job PJL Code
EN Using PJL 3-3
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
(<ESC>%–12345X). This command exits the current printer
language and returns control to PJL.
The UEL command at the beginning of the job must be
immediately followed by the PJL command prefix (@PJL). The
“@PJL” can be followed by an optional carriage return and a
required line feed character, or it can be the prefix of another
PJL command (see the two following examples). No other
characters, including control characters, are allowed between
the UEL command and the @PJL prefix.
The UEL command at the job end must not be followed by
anything (except the first character of the next job).
Line Terminationa line feed character (<LF>) is required to
terminate all PJL commands (except the UEL command). A
carriage return can precede the terminating line feed, however
the carriage return is optional and is ignored.
No blank command lines are allowed. The command
@PJL [<CR>]<LF> is provided for situations where a blank
line is needed to add space between command lines.
The following command lines demonstrate two ways to begin a job
while satisfying PJL requirements. Both lines begin with a UEL
command, are immediately followed by @PJL, and are terminated
with a line feed character. All PJL jobs also must end with a UEL
command. The examples on the following page demonstrate how to
begin and end a PJL job.
<ESC>%–12345X@PJL <CR><LF>
<ESC>%–12345X@PJL COMMENT *Start Job* <CR><LF>
3-4 Using PJL EN
Some Sample PJL Jobs
This section consists of two basic PJL jobs that illustrate how to use
PJL. The first job changes a few printer control panel settings and
prints a PCL file. The second job prints a PCL file followed by a
PostScript file. (The ~ symbol indicates that the command line is
actually part of the previous line.)
Example: Changing Control Panel Settings
This example simulates using PJL to control printer features that are
not available in a particular application program. In this case, the
features to be modified are the number of copies and the Resolution
Enhancement technology setting.
<ESC>%–12345X@PJL COMMENT *Start Job* <CR><LF>
@PJL JOB NAME = "Sample Job #1" <CR><LF>
@PJL SET COPIES = 3 <CR><LF>
@PJL SET RET = OFF <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E. . . . PCL job . . . .<ESC>E
~<ESC>%–12345X@PJL <CR><LF>
@PJL EOJ<CR><LF>
<ESC>%–12345X
Example: Switching Printer Languages
This example contains two print jobs, one PCL and one PostScript.
The PCL job prints first, then PJL code switches the printer language
to prepare for the PostScript job.
<ESC>%–12345X@PJL <CR><LF>
@PJL COMMENT ** Beginning PCL Job ** <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
@PJL SET LPARM : PCL SYMSET = DESKTOP <CR><LF>
<ESC>E . . . . PCL job . . . .<ESC>E
~<ESC>%–12345X@PJL COMMENT End PCL <CR><LF>
@PJL COMMENT Ready for PostScript Job <CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
%!PS-ADOBE ... PostScript print job ... ^D
~<ESC>%–12345X
EN Using PJL 3-5
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.
However, if you want to do more with PJL, be sure to look through
Chapter 11 (Programming Tips for Using PJL), and the other chapters
that pertain to your application. Also, be sure you know which PJL
commands are supported by the printer you are using. See Appendix
A for feature support information.
Chapter 5 explains commands that enable you to create jobs
for keeping track of printing status, and explain a non-printing
mode that allows printing of specific pages of print jobs.
Chapter 6 describes commands that enable you to change
control panel settings and default configuration settings. The
commands in this chapter enable you to set the printer
features to a known state.
Chapter 7 covers status readback commands, enabling you to
request configuration and status information from the printer.
Chapter 8 explains the commands that can alter the messages
displayed on the printer control panel.
Chapter 9 describes the PJL file system for managing
printer-based file storage.
Chapter 10 describes using the PJL job management
commands.
3-6 Using PJL EN
Command Groupings by Functionality
This manual categorizes the PJL commands into related groups.
Each group of commands is covered in a separate chapter, as
indicated in the following table. This table lists each command and
gives a short description of each.
Command Group Command Command Description
Kernel Commands
(Chapter 4) Universal Exit Language
(UEL) Exits current printer
language and returns
control to PJL.
COMMENT Causes PJL to accept the
command line as a
comment.
ENTER Selects a printer language
for processing the current
job.
Job Separation Commands
(Chapter 5) JOB Informs printer of the start
of a print job, resets the
page count, allows naming
of the job, supports
non-printing mode for
printing portions of jobs.
Where supported, it adds
PJL password security.
EOJ Tells printer the print job is
complete, resets the page
count.
Environment Commands
(Chapter 6) DEFAULT Sets default value for
environment variables.
SET Sets an environment
variable to a specified value
for the duration of
a PJL job.
INITIALIZE Resets current and default
PJL variables to factory
default values.
RESET Resets current PJL
variables to default values.
EN Using PJL 3-7
Status Readback
Commands
(Chapter 7)
INQUIRE Requests the current value
for a specified environment
variable.
DINQUIRE Requests the default value
for a specified environment
variable.
ECHO Returns the <words>
portion of the command to
the host computer.
INFO Requests a specified
category of printer
information, such as printer
model number, printer
memory available,
configuration, page count,
status, environment
variables, and unsolicited
status variables.
USTATUS Allows printer to send
unsolicited status
messages for device status
changes, end-of-job status,
and pages printed. Status
can be sent at specified
time intervals.
USTATUSOFF Turns off all unsolicited
status.
Command Group Command Command Description
3-8 Using PJL EN
Device Attendance
Commands
(Chapter 8)
RDYMSG Specifies a message that
replaces the READY
message on the printer
control panel. Does not
affect online state.
OPMSG Displays specified
message on printer control
panel and takes printer
offline.
STMSG Displays specified
message on printer control
panel and takes printer
offline. If status readback is
enabled, returns name of
the key (ON LINE,
CONTINUE, or RESET)
that operator presses to
return the printer online.
PJL File System
Commands
(Chapter 9)
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.
FSQUERY Queries existence of
directories and files and
returns file sizes.
FSUPLOAD Uploads all or part of a file
from the printer to the host.
Command Group Command Command Description
EN Using PJL 3-9
3-10 Using PJL EN
EN Kernel Commands 4-1
4Kernel 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 commandselects 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. These commands allow applications to set
job boundaries, add comments, and programmatically select printer
languages.
Besides programmatic printer language switching, you can configure
some LaserJet printers to switch printer languages automatically
between print jobs. Following the descriptions of the UEL, ENTER,
and COMMENT commands, this chapter describes the different
methods used to switch printer languages.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
4-2 Kernel Commands EN
Universal Exit Language (UEL) Command
The Universal Exit Language (UEL) Command causes the printer to
exit the active printer language. The printer then returns control
to PJL.
Note Use the UEL command at the beginning and end of every PJL job.
You do not need a UEL command before every PJL command. The
examples demonstrate using this command.
Syntax:
<ESC>%-12345X
Parameters:
The UEL command does not use any parameters.
Comments:
The UEL command is a data stream sequence recognized by all
printer languages in PJL printers. The UEL command instructs the
active printer language to finish processing the current job and
relinquishes control to PJL. If PJL is active, any unprocessed PJL
commands are discarded and the printer is ready to accept the next
PJL command.
Note If the printer is processing a PostScript job and TBCP is enabled, the
UEL command causes the printer to exit PostScript and enable PJL.
Remember that:
All jobs must start and end with the UEL command. Printers
that support I/O switching use the UEL command as one way
to determine job boundaries, indicating when to perform I/O
switching (see the “Timeouts” section in Appendix A).
At the beginning of a PJL job, the PJL command prefix (@PJL)
must immediately follow the UEL command. If the printer
receives any characters, spaces, or control codes before
@PJL, it enables the default printer language and processes
the job in that printer language (if PERSONALITY =AUTO, the
data stream is sampled for context-sensitive switchingsee
EN Kernel Commands 4-3
the “Methods of Printer Language Switching” later in this
chapter). Instead of relying on implicit switching, use the
ENTER command to specify the printer language, even if the
printer has only one printer language.
The following example demonstrates the use of the UEL command.
Example: Using the UEL Command
This example enters PCL and prints a PCL job. Notice how the job
begins and ends with the UEL command, and how the first UEL
command is followed immediately by the @PJL prefix.
<ESC>%-12345X@PJL COMMENT PCL Job <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . . PCL Job . . . . <ESC>E
~<ESC>%-12345X
If the print job was a PostScript job instead, the following would be
sent:
<ESC>%-12345X@PJL COMMENT PostScript <CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
%!PS-ADOBE ... PostScript print job ... ^D
~<ESC>%-12345X
Similarly, for an ESC/P print job, send the following:
<ESC>%-12345X@PJL COMMENT ESC/P <CR><LF>
@PJL ENTER LANGUAGE = ESCP <CR><LF>
... ESC/P print job ...
~<ESC>%-12345X
4-4 Kernel Commands EN
ENTER Command
The ENTER command enables the specified personality (such as
PCL or PostScript). Use this command to select the printer language
for printing subsequent data.
Syntax:
@PJL ENTER LANGUAGE = personality [<CR>]<LF>
Parameters:
personality The personality variable must be set to PCL,
POSTSCRIPT, ESCP, or one of the other supported
personalities. Personalities besides PCL and PostScript can
be added to some printers by plugging in additional hardware,
such as cartridges or ROM SIMMs. If your application handles
status readback, you can request a list of all valid personalities
present in the printer (see the “INFO CONFIG” section in
Chapter 7).
Comments:
The ENTER command must be positioned immediately before any
personality-specific data. The selected personality begins parsing
immediately after the <LF> that terminates the ENTER command.
If the printer does not receive the ENTER command requesting a
specific printer language, the printer enables the default printer
language as set from the control panel (or if the printer supports
context switching, such as the HP Color LaserJet 4500 series, 8500
series, 8100 series, LaserJet 2100 series, 4000 series, 5000 series,
8000 series, 8100 series, 5Si, 5SiMX, 5Si Mopier, 5, 5M, 5P, 6P, and
6MP printers, it samples the data stream if personality is set to
AUTOsee the “Methods of Printer Language Switching” later in this
chapter).
Parameter Range
personality PCL, POSTSCRIPT, ESCP,
Others *
* Other personalities might be supported.
EN Kernel Commands 4-5
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. If the printer receives a request for an invalid
printer language, the printer consumes the data stream until it finds
the next UEL command, and then discards the data. The printer also
posts an “invalid personality” clearable warning message (W2
INVALID PERS) and, if enabled, returns a status message.
Note In spooling applications, performance is not adversely
affected if both the application file and the spooler send
the ENTER command.
Example: Using the ENTER Command
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Beginning PostScript Job <CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
%!PS-ADOBE ... PostScript print job ... ^D
~<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT End of PostScript Job <CR><LF>
@PJL <CR><LF>
@PJL <CR><LF>
@PJL COMMENT Prepare for PCL Job <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . . PCL Job . . . . <ESC>E
~<ESC>%-12345X
4-6 Kernel Commands EN
COMMENT Command
The COMMENT command enables you to add a line of information as
a comment. Use this command whenever you want to add an
explanation to PJL commands.
Syntax:
@PJL COMMENT remarks [<CR>]<LF>
Parameters:
Comments:
The COMMENT command is useful for documenting lines of PJL
commands. Comments may be placed anywhere in the PJL code
between the initial UEL command and the ENTER command.
(Comments placed after the ENTER command are considered
personality-specific data and are printed as determined by the active
printer language.)
Like other PJL commands, the COMMENT command is terminated
by a line feed character. You cannot extend comments onto the next
line. Comments longer than one line require a separate COMMENT
command for each line.
See the following page for an example demonstrating the use of the
COMMENT command.
Example: Using the COMMENT Command
This example demonstrates using the COMMENT command to add
clarity to your PJL command listings.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT ************************ <CR><LF>
@PJL COMMENT ** D. Thiel— 10/22/92 ** <CR><LF>
@PJL COMMENT ************************ <CR><LF>
@PJL <CR><LF>
Parameter Range
remarks Roman-8 character codes 33
through 255 and <WS>, starting
with a printable character.
EN Kernel Commands 4-7
@PJL <CR><LF>
@PJL JOB NAME = "Using Comments" <CR><LF>
@PJL <CR><LF>
@PJL <CR><LF>
@PJL COMMENT **** TURNING OFF **** <CR><LF>
@PJL COMMENT **** RESOLUTION **** <CR><LF>
@PJL COMMENT **** ENHANCEMENT **** <CR><LF>
@PJL SET RET = OFF <CR><LF>
@PJL <CR><LF>
@PJL COMMENT ***** ENTERING PCL ***** <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . . PCL Job . . . . <ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ <CR><LF>
<ESC>%-12345X
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. If the printer has a default printer
language configured, and the print job does not explicitly
select a printer language using the ENTER LANGUAGE
command, the printer automatically switches to the default
printer language. (See the User's Manual for each printer for
instructions about specifying a default printer language.) This
switching method does not always ensure that the proper
printer language is used, since the printer simply uses the
default language.
Context Switching (HP Color LaserJet 4500 series,
8500 series, 8100 series, LaserJet 2100 series, 4000 series,
5000 series, 8000 series, 8100 series, HP Color LaserJet,
LaserJet 4, 4M, 4 Plus, 4M Plus, 4Si, 4SiMx, 4000 series, 5Si,
5SiMx, 5Si Mopier, 4ML, 4P, 4MP, 4V, 4MV, 5P, 6P, 6MP,
DesignJet plotters and printers only). If the printer is set to
automatically select a printer language (see the printer user's
manual), and the print job does not explicitly select a printer
language using the ENTER LANGUAGE command, the printer
samples the incoming data and looks for indications of a
4-8 Kernel Commands EN
particular printer language. Once it recognizes the printer
language, the printer backs up to the beginning of the sampled
print data and switches to the printer language determined to
be most appropriate. Then it begins to parse the data in the
newly selected printer language.
Note HP LaserJet 4V and 4MV printers cannot properly context-switch into
the ESC/P personality by sensing the data stream. Developers who
use ESC/P must use explicit or implicit switching.
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 Switching Printer Languages
EN Job Separation Commands 5-1
5Job 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. This chapter also describes PJL security and job
cancellation and their relationship to the JOB command.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
5-2 Job Separation Commands EN
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). Also, in jobs sent
to those printers supporting the PASSWORD option, use a JOB
command to specify the correct password. For printers that support
the DISPLAY variable, the JOB command can be used to display a
control panel message while printing the job.
Note The JOB and EOJ commands always are used in pairs. Do not use
one without the other.
Since the JOB command causes a reset condition, any SET
commands must be positioned after the JOB command.
Syntax:
@PJL JOB [NAME = "job name"][START=first page]
~[END = last page][PASSWORD = number ]
~[DISPLAY = "display text"][<CR>]<LF>
Parameters:
Parameter Functional Range Default
NAME = "job name" Roman-8 characters 33
thru 255, <SP>, <HT> N/A
START = first page 1 to 2,147,483,647 1
END = last page 1 to 2,147,483,647 Entire job
PASSWORD = number 0 to 65,535 0
DISPLAY="display text" Roman-8 characters 33
thru 255, <SP>, <HT> N/A
EN Job Separation Commands 5-3
NAME = "job name" — The command option NAME tags the
print job with a job name. The variable job name can be any
combination of printable characters and spaces or horizontal
tab characters, with a maximum of 80 significant characters.
The job name variable is a string and must be enclosed in
double quotes, as shown in the command syntax. If the NAME
option is included, the unsolicited job status includes the job
name (if unsolicited job status is enabled).
START = first pageThe 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. If the
START option is omitted, the printer starts printing at the
beginning of the job. If the end of the job comes before the
START page, no pages are printed.
Note For duplex jobs, the front and/or back side of the page is also printed,
depending on the value of START/END. If START is an even number,
the front side of that page will also be printed. If END is an odd value,
the backside of that page will also be printed. This allows the selected
pages to be inserted back into the original duplex job.
END = last page The command option END indicates the
page number of the last page to be printed. The last page
variable is relative to page 1 of the print job. If the END variable
is omitted, the printer prints to the end of the job. If the end of
the job is encountered before the START page, no pages are
printed. If the end of job is encountered before the END page,
printing terminates. Additionally, if the START page is greater
than the END page, no pages are printed.
PASSWORD = number — The command option PASSWORD
allows the application to modify the NVRAM variables if the
password matches the active password variable. (Using PJL,
the NVRAM variables are modified using either the DEFAULT
or INITIALIZE commands; some printer language commands
may also modify NVRAM variables.) Passwords are set using
the DEFAULT command. The default password value is 0,
which indicates PJL security is disabled—any job can modify
printer feature settings using the DEFAULT or INITIALIZE
commands. If any other password value is active, PJL jobs
must issue the correct password value or they are disabled
from using the DEFAULT or INITIALIZE commands. (See the
“PJL Job Security” section at the end of this chapter.)
5-4 Job Separation Commands EN
DISPLAY="display text " — The command option DISPLAY
is used to display a job message on the control panel display.
The message is displayed when the printer begins to work on
this job and is removed when the last page of this job reaches
the output bin. The variable "display text" can be any
combination of printable characters and spaces or horizontal
tabs, with a maximum of 80 characters. The actual number of
characters displayed depends on the printer. 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.
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, 5000, 8000, and 8100 series printers, if LANG
is set to POLISH, CZECH, or HUNGARIAN, messages are displayed
using the Latin 2 (ISO 8859/2) character set. If LANG is RUSSIAN,
messages are displayed using Cyrillic (ISO 8859/5). For
LANG=TURKISH, the display is in Latin 5 (ISO 8859/9). This is also
true for the HP Color LaserJet 4500 printer, except there is no support
for Turkish or Hungarian on this printer.
Comments:
When a JOB command is received, the printer does not recognize the
UEL command as a PJL job boundary until an EOJ command is
received. UEL commands within a PJL JOB/EOJ command pair are
treated as printer language resets; they default the print environment
to the PJL Current Environment settings, instead of the User Default
Environment.
If your application has status readback capabilities, you can monitor
the job status using the USTATUS command with the JOB option. If
job status is enabled and the printer receives a JOB command, it
returns a job status message.
Note Resetting the page count associated with unsolicited page status
affects only future pages. Pages already processed, but not yet
printed, are not affected.
EN Job Separation Commands 5-5
JOB commands can be nested. For example, a spooling application
can send a PJL job that uses the JOB command to another spooler
that encapsulates the spooled job with another JOB/EOJ command
pair. When this is done, note that the job name from the outer JOB
command is cleared or overwritten by the inner command.
Example: Using the JOB Command to Print
Selected Pages
You can use the JOB command with the START and END options to
print selected pages of a job. The entire job must be sent to the
printer and formatted, but the printer does not begin printing until the
page indicated in the START option.
Note If there is a need to print more than one copy of each page, send the
job multiple times using the START and END options to print collated
copies. Using the SET command or a printer language “number of
copies” command to print multiple copies of selected pages causes
unexpected results, because the printer counts physical pages, not
multi-copy collated pages.
In this example, the JOB command:
Informs the printer of the beginning of a print job.
Names the print job “Jim's Job.
Instructs the printer to begin printing on page three of the job.
(Since the END option is missing, the job prints from page
three through the end of the job.)
Note that the name option for the JOB and EOJ commands need not
be the same. You may use different names for each.
<ESC>%-12345X@PJL <CR><LF>
@PJL JOB NAME = "Jim's Job" START = 3 <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . . PCL Job . . . . <ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "End of Jim's Job" <CR><LF>
<ESC>%-12345X
5-6 Job Separation Commands EN
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 sectionsthe 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.
The next section is a PostScript job sent to the spooler from a
software application.
The last section is sent by the spooler to end the job. When the
last page is completely printed (in the output tray), the printer
returns unsolicited status information notifying the spooler that
the job is complete.
<ESC%>-12345X@PJL <CR><LF>
@PJL COMMENT **Beginning of Job ** <CR><LF>
@PJL JOB NAME = "TF's Monitor Job" <CR><LF>
@PJL USTATUS JOB = ON <CR><LF>
<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
%!PS-ADOBE .. PostScript print job ... ^D
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "End of TF's Job" <CR><LF>
<ESC>%-12345X
Note If the spooler received a print job that did not use PJL (that is, the
application generated a print job that consisted of just “%!PS-ADOBE
.. PostScript print job ... ^D”, a LaserJet printer using context-sensitive
switching would still print properly (provided PostScript is installed)
and the spooler would still receive the unsolicited job status
information.
EN Job Separation Commands 5-7
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL JOB NAME = "Printing Job Sent From
~Spooler 2" <CR><LF>
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Printing a PCL job <CR><LF>
@PJL JOB NAME = "Spooler 1 Job" <CR><LF>
@PJL SET RESOLUTION = 600 <CR><LF>
<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . PCL print job . .<ESC>E
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "End Spooler 1 Job" <CR><LF>
<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "End Spooler 2 Job" <CR><LF>
<ESC>%-12345X
Related Commands:
EOJ, USTATUS, DEFAULT
5-8 Job Separation Commands EN
EOJ Command
The EOJ command informs the printer that the job has completed.
Use this command whenever you use the JOB command.
Note The JOB and EOJ commands are always used in pairs. Do not use
one without the other.
Syntax:
@PJL EOJ [NAME = "job name"] [<CR>]<LF>
Parameters:
NAME = "job name" — Using the EOJ command, you can
name your print job. The job name variable is a string and must
be enclosed in double quotes as shown in the command
syntax. The job name string need not be the same name used
in the JOB command. If the NAME option is included, the
unsolicited end-of-job status includes the job name
(if unsolicited job status is enabled).
Comments:
The EOJ command marks the end of the job started with the previous
JOB command. The EOJ command:
Resets the PJL Current Environment variables to their default
(NVRAM) values, as if the printer powered down and then
powered up again.
Resets the page number associated with unsolicited
page status.
Parameter Functional Range Default
NAME = "job name" Roman-8 characters 33
thru 255, <SP>, <HT> N/A
EN Job Separation Commands 5-9
Terminates the non-printing mode (enabled by using the
START/END options). The non-printing mode, if enabled by
the last JOB command, only applies to the previously received
data, and does not effect any future pages until another JOB
command enables the non-printing mode again.
Effect on Unsolicited Job Status
When the printer receives this command, it returns unsolicited job
status information, if enabled, when the last page of the job exits the
printer and is in the output tray. The EOJ command resets the page
number associated with unsolicited page status. Resetting the page
count associated with unsolicited page status only affects future
pages. Pages already processed, but not yet printed, are not affected.
Related Commands:
JOB, USTATUS
5-10 Job Separation Commands EN
PJL Job Security
HP LaserJet 2100 series, 4000 series, 4500 series, 5000 series,
8000 series, 8100 series, 8500 series, 4/4M Plus, 4V, 4MV, 4Si,
4SiMx, 5, 5M, 5Si, 5SiMx, 5Si Mopier, 5P, 6P, and 6MP printers
support the following types of PJL security:
Password protection of default feature settingsthis type of
security prevents applications from modifying the printer's
default feature settings unless the correct password is
specified.
Control panel lockprevents users from modifying control
panel settings using the control panel keys.
Disk lock (LaserJet 4V, 4MV, 4000 series, 5000 series,
8000 series, 8100 series, 8500 series, 5, 5M, 5Si, 5SiMx,
5Si Mopier only)—prevents writing to the printer's disk
(or flash memory).
File system initialization—for printers with a PJL file system,
the FSINIT command will not initialize the file system unless
specified in a secure job.
All types of security are set using the DEFAULT command and
queried using DINQUIRE or INQUIRE.
Password Protection of Default Feature
Settings
You can use a password to protect the printer's default features by
sending the @PJL DEFAULT PASSWORD = number command,
specifying a number between 1 and 65,535 (the 0 value disables
password protection). Once password protection is enabled, the
DEFAULT or INITIALIZE commands are disabled unless the correct
password is specified in the JOB command. Printer languages, such
as PCL and PostScript, are also prevented from changing default
variables.
Secure PJL jobs are able to use the DEFAULT and INITIALIZE
commands (or printer language commands) to set default features,
including the value of the PASSWORD, CPLOCK, and DISKLOCK
variables, until the next EOJ command is received.
EN Job Separation Commands 5-11
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).
For the printers that support the MINIMUM, MODERATE, and
MAXIMUM values for CPLOCK, MINIMUM locks out the RESET,
CONFIGURATION, and I/O menus. MODERATE locks out the menus
locked by MINIMUM, plus the PRINT QUALITY and PAPER
HANDLING menus. The MAXIMUM value locks out the menus locked
by MODERATE plus the PRINTING and INFORMATION menus and
the Job Cancel key (MAXIMUM has the same effect as the ON value).
Disk Lock
On printers which support Disk Lock, you can “lock” volume 0 by
sending the @PJL DEFAULT DISKLOCK = ON command. When
locked, you cannot write to volume 0 of the file system. It becomes
read-only to prevent actions such as formatting, downloading fonts to
the disk, deleting disk fonts, etc. If not locked, the disk is read/write.
The DISKLOCK variable can only be changed from within a “secure”
PJL job (a job that includes the correct, non-zero password value in
the JOB command). The DISKLOCK variable is used mainly in
networked or printer-shared configurations.
Note You can use the DINQUIRE command to check the status
of the PASSWORD, CPLOCK, and DISKLOCK variables. @PJL
DINQUIRE PASSWORD returns ENABLED or DISABLED, @PJL
DINQUIRE CPLOCK returns OFF or ON, and @PJL DINQUIRE
DISKLOCK returns OFF or ON. You do not have to be in a secure job
to use the DINQUIRE command to check these variables.
5-12 Job Separation Commands EN
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT **Set Password** <CR><LF>
@PJL COMMENT **& Lock Control Panel**<CR><LF>
@PJL JOB PASSWORD = 7654 <CR><LF>
@PJL DEFAULT PASSWORD = 1776 <CR><LF>
@PJL DINQUIRE PASSWORD <CR><LF>
@PJL DEFAULT CPLOCK = ON <CR><LF>
@PJL DINQUIRE CPLOCK <CR><LF>
@PJL EOJ <CR><LF>
<ESC>%-12345X
To unlock the control panel, you would send a job similar to the
following job. This job specifies the correct password with the JOB
command, and then uses the DEFAULT command to unlock the
control panel.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT **Unlock Control Panel** <CR><LF>
@PJL JOB PASSWORD = 1776 <CR><LF>
@PJL DEFAULT CPLOCK = OFF <CR><LF>
@PJL DINQUIRE CPLOCK <CR><LF>
@PJL EOJ <CR><LF>
<ESC>%-12345X
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT **Unlock Volume 0** <CR><LF>
@PJL JOB PASSWORD = 1776 <CR><LF>
@PJL DEFAULT DISKLOCK = OFF <CR><LF>
@PJL DINQUIRE DISKLOCK <CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
%!PS-ADOBE . . . PostScript print job . . . ^D
~<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT **Lock Volume 0** <CR><LF>
@PJL DEFAULT DISKLOCK = ON <CR><LF>
@PJL DINQUIRE DISKLOCK <CR><LF>
@PJL EOJ <CR><LF>
<ESC>%-12345X
EN Job Separation Commands 5-13
Job Cancellation
HP LaserJet 2100 series, 4000 series, 4500 series, 5000 series,
8000 series, 8100 series, 8500 series, 5, 5M, 5Si, 5SiMx printers and
the LaserJet 5Si Mopier support job cancellation using the printer
control panel. 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.
Start of Job Notification
If unsolicited job status is enabled when the printer begins processing
the PJL job, the printer responds to the PJL JOB command with an
@PJL USTATUS JOB START response. If job ID reporting is enabled
by sending @PJL SET JOBID=ON, the printer response includes a
job ID number that is associated with the job name supplied in the
JOB command.
For example, if the printer receives the following command:
@PJL JOB NAME = "job name"
If unsolicited job status and job ID reporting are enabled, the printer
would generate an ID number (such as 346) and respond with:
@PJL USTATUS JOB<CR><LF>
START<CR><LF>
NAME="job name"<CR><LF>
ID=346<CR><LF>
<FF>
The printer-generated ID number can range in value from 0 to 32767.
Job ID numbers are unique until they roll over to zero or until the
printer power is cycled (at which time the ID defaults to 0).
5-14 Job Separation Commands EN
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. All possible values for the RESULT are shown in the
following table:
Using the previous example, if the printer receives the following
command containing the same job name as in the JOB command:
@PJL EOJ NAME = "job name"
If unsolicited job status and job ID reporting are enabled, the printer
would use the ID number associated with that job name and respond
with:
@PJL USTATUS JOB<CR><LF>
END<CR><LF>
NAME="job name"<CR><LF>
PAGES=123<CR><LF>
ID=346<CR><LF>
RESULT=OK
<FF>
If the job had been cancelled instead of completed, the printer would
respond with the same message except the RESULT value would be
different.
RESULT Value Description
OK The last page of the job was sent
to the output bin.
USER_CANCELED The job was canceled from the
control panel.
HOST_CANCELED The job was canceled from a host
system.
RESOURCE_CANCELED The job was canceled because a
resource was not available (for
example, the media was not
loaded).
EN Job Separation Commands 5-15
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. Using the same
job name and ID number as the previous example, the printer's
response would be:
@PJL USTATUS JOB<CR><LF>
CANCELED<CR><LF>
NAME="job name"<CR><LF>
ID=346<CR><LF>
RESULT=USER_CANCELED
<FF>
The job name provided in the NAME option of the PJL USTATUS JOB
CANCELED response is the current job name if a current job name is
available. The current job name is the job name retained in the printer
at the time the last PJL JOB command was processed. The current
job name could also have been supplied and/or modified using
PostScript.
If a job name is supplied in the EOJ command and if unsolicited job
status is enabled at the time the EOJ command is parsed, the NAME
option of the PJL USTATUS JOB CANCELED response will contain
the job name assigned in the EOJ command. Otherwise, the NAME
line is eliminated from the response.
5-16 Job Separation Commands EN
EN Environment Commands 6-1
6Environment
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. This chapter
describes sets of printer features known as print environments, and
the PJL commands you use to set printer features to a desired state,
such as:
DEFAULT sets the default value for environment variables,
storing these values in non-volatile RAM.
INITIALIZE resets the current and default PJL variables to the
factory default values.
• RESET resets the current PJL variables to the default values.
•SET sets an environment variable to a specified value until the
next PJL reset condition.
Note For a list of default feature settings, see Appendix A.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
6-2 Environment Commands EN
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.
The printer constantly maintains four environments, which are listed
below in priority order:
Factory Default Environment (lowest priority)
User Default Environment
PJL Current Environment
Modified Print Environment (highest priority)
The Factory Default Environment holds the initial feature values set at
the factory, which can be used for default values when a complete
reset is needed. The User Default Environment holds the settings
modified with the DEFAULT command, or set from the control panel.
The print environment defaults to the User Default values when
various printer conditions occur, such as the end of a PJL job, a PJL
reset condition, or when certain PJL commands are executed. The
PJL Current Environment contains the current PJL feature settings.
When a printer language is entered or a new job begins, the PJL
Current Environment settings are loaded into the Modified Print
Environment, providing a base feature set which the application can
modify if needed. After a printer language is entered, feature settings
are recorded in the Modified Print Environment.
Note HP LaserJet 4L, 5L, 6L, and 1100 series printers do not have
NVRAM. The PJL Default and Current Environment settings are
stored in RAM and are reset to the factory default values during a
power cycle.
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.
EN Environment Commands 6-3
User Default EnvironmentThis environment contains the
values that are set using the DEFAULT command or the
control panel keys. These values are stored in non-volatile
RAM (in those printers containing NVRAM). Following any PJL
reset condition, these values are placed into the PJL Current
Environment. If the printer has a control panel, the User
Default values are displayed on the control panel under the
appropriate menu.
PJL Current Environment This environment contains the
current PJL feature settings. Current settings are based on the
User Default values and any settings modified using the SET
command. These values default to the User Default values
when a PJL reset condition occurs.
Modified Print Environment This environment is active as
soon as a printer language is entered. At that time, the PJL
Current Environment values are loaded into the Modified Print
Environment and act as a base set of features. Printer
language commands then are used to modify feature settings
to the desired state. The PJL Current Environment settings are
loaded into the Modified Print Environment whenever a
personality is activated or a reset is received, including any
printer language reset or PJL reset condition.
Figure 6-1 illustrates how the environments interact, and how they
affect the modified print environment.
6-4 Environment Commands EN
Figure 6-1 How Environments Affect the Print Job
EN Environment Commands 6-5
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.
1The 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.
2At any point following the initial power-on or the INITIALIZE
command, the number of copies feature can be set using the
DEFAULT COPIES command in a PJL job or by changing the
COPIES = setting on the control panel. This changes the User
Default Environment setting to a new value, such as number of
copies = 3. The User Default Environment values are not loaded
into the PJL Current Environment until the next PJL reset
condition occurs. (For printers with control panels, if the printer is
currently not processing a job while the feature is changed from
the control panel, the printer treats the feature change as a PJL
reset condition and loads the newly changed value into
non-volatile RAM.)
3If the PJL job uses the SET COPIES = 5 command to change the
number of copies, the PJL Current Environment value changes to
the selected setting (for example, 5). Otherwise, the number of
copies setting remains the same as set using the DEFAULT
command or the control panel (in this example, 3).
4If the printer language (such as PCL or PostScript) changes the
number of copies setting to another value, such as 8, the newly
specified printer language value overrides the PJL Current
Environment value. If the printer has a control panel, however, it
still displays the User Default Environment value set using the
control panel keys or the DEFAULT command (3).
5The next PJL reset condition defaults the number of copies
setting to the value set from the control panel or by 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 similarlyif any feature is not modified by a
higher priority action, it keeps its current value setting.
6-6 Environment Commands EN
Example: Changing Environment Settings
This example shows the values stored in the different environments
when commands are issued. The example begins with the number of
copies set to 1 in all environments (the Factory Default Environment
setting). The table reflects the current settings after each command.
Environment Summary
As indicated previously, each print environment differs in relation to
how it is stored, how the settings are changed, and how the PJL
Current Environment can be defaulted. The table on the following
page summarizes the characteristics of each print environment. For
those printers without a control panel, disregard any mention of
control panels. In these printers, User Default Environment features
are controlled using just the DEFAULT command.
Note See Appendix A for a list of environment variables supported by each
PJL printer.
Command Sent
Environment Setting
Factory
Default User
Default PJL
Current Modified
Print
After PJL INITIALIZE or RESET
MENU 1111
@PJL DEFAULT COPIES=3 1311
@PJL SET COPIES = 4 1344
@PJL ENTER
LANGUAGE=PCL<LF>
<ESC>&l5X
1345
<ESC>%-12345X 1333
EN Environment Commands 6-7
Factory Default
Environment
Stored permanently in printer memorysettings cannot be modified.
Factory default settings cannot be read programmatically, but they are listed in the
PCL 5 Comparison Guide.
User Default
Environment
The User Default Environment is set to the factory default values when the printer
initially is powered onbefore printer commands are sent from an application or any
control panel settings are changed.
Stored in non-volatile RAM in printers that have itcan be changed using the
DEFAULT command or control panel keys.
The INITIALIZE command loads the Factory Default settings into the User Default
Environment.
User default settings can be read using the DINQUIRE command.
PJL Current
Environment
Any PJL reset condition loads the User Default Environment feature settings into the
PJL Current Environment.
Always reflects the PJL-level settings currently in use.
Stored in RAMcan be changed using SET command. These values override
feature settings until the next PJL reset condition.
The INITIALIZE command loads the Factory Default settings into the PJL Current
Environment.
PJL Current Environment settings can be read using the INQUIRE command.
Modified Print
Environment
(Printer-
Language
Specific)
Active as soon as printer receives any printer language commands (such as PCL or
PostScript commands). This environment contains all of the feature settings
currently in effect at any point after a printer language is entered.
Printer language resets (such as the <ESC>E command in PCL), any printer
language switch, or the ENTER command load the PJL Current Environment into
the Modified Print Environment.
Stored in RAMcan be changed using printer language commands (PCL,
PostScript, and others). The printer language values override any PJL Current
Environment feature for the duration of the printer language job (until the printer
language is changed or a printer language-specific reset is executed).
The Modified Print Environment settings can be read if the active printer language
supports this capability.
6-8 Environment Commands EN
PJL Reset Conditions
EN Environment Commands 6-9
“PJL reset conditions” are listed below. Note that PJL reset conditions
differ from printer language resets (such as <ESC>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.
In this document, the term PJL reset condition refers to any of the
following events:
•Power-on
UEL command (when not between a JOB and EOJ command
pair)
@PJL INITIALIZE command
@PJL RESET command
@PJL JOB or EOJ command
Control panel reset
Other printer-specific events (see Appendix A for information
about job boundaries)
6-10 Environment Commands EN
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. Printer
language commands override all other settings.
The PJL Current Environment settings can be changed using
the SET command. These settings take effect until the next
PJL reset condition. Note that since the JOB command causes
a reset condition, the SET command should always be used
after the JOB command.
The control panel settings (User Default Environment) can be
changed using the control panel or the DEFAULT command. In
printers without a control panel, the default settings are
modified with only the DEFAULT command.
The Modified Print Environment settings are changed using
printer language commands. These settings take effect for the
duration of the printer language job. After a printer
language-specific reset, such as <ESC>E for PCL, the PJL
Current Environment feature settings are loaded into the
Modified Print Environment.
If the SET command is used in a PJL job, always use the PJL
RESET command after the job is completed.
EN Environment Commands 6-11
PJL Environment Variables
This section lists the PJL environment variables. General PJL
environment variables (those not printer language-specific) are listed
first, followed by printer language-specific variables. For most
variables except the read-only variables, value settings can be
modified using the following commands:
SET — sets PJL Current Environment settings that remain
active until the next “PJL reset condition” (e.g. JOB, EOJ,
RESET, INITIALIZE commands—see page 6-8).
RESET — the PJL RESET command defaults the PJL Current
Environment to the User Default Environment (feature settings
set with the DEFAULT command or the control panel keys).
DEFAULT — modifies the User Default settings (stored in
NVRAM in those printers containing NVRAM).
INITIALIZE — defaults all environments to the Factory Default
settings.
You can request value settings for printer features using the following
two commands:
INQUIRE — requests the PJL Current Environment settings.
DINQUIRE — requests the User Default (control panel)
settings.
(The INQUIRE and DINQUIRE commands are discussed in
Chapter 7.)
Note Whenever possible, use printer language commands to set printer
features. Use PJL commands only when there are no printer
language commands available for a desired feature.
When setting printer features with PJL, use the SET and RESET
commands if you want to affect the current PJL job only. Using the
DEFAULT and INITIALIZE commands affects the current job and
succeeding jobs (these commands should only be used when you
require a command that affects more than just the current job).
6-12 Environment Commands EN
General PJL Environment Variables
The following table lists the PJL environment variables that are not
printer language-specific. When you use these variables, do not use
the LPARM : personality option. The range of values for each variable
may differ for the various printer models. Appendix A lists the
environment variables and indicates which printers support each
variable. Another method of obtaining a list of valid variables and the
range of values for each variable is to send the INFO VARIABLES
command to request this information directly from the printer. See the
INFO command in Chapter 7 for more information. You can find
valuable information about environment variables in the control panel
sections of the user's manual for each printer.
Note Some environment variables can be modified using the DEFAULT
command but not the SET command, some can be SET but not
modified using DEFAULT, and some are read only variables.
Appendix A lists environment variables, including read only variables,
for all of the PJL printers.
General PJL Environment Variables
Variable Description Sample Value
Range
AUTOCONT Returns the autocontinue configuration. ON, OFF
AUTOSELECT Sets the default media tray autoselect
feature of the printer. ON, OFF
BINDING Sets the default relationship of the front
and back images on pages printed in
duplex.
LONGEDGE,
SHORTEDGE
EN Environment Commands 6-13
BITSPERPIXEL For PCL 6 only, this variable controls
the number of bits per pixel used when
printing grayscale or color images. The
valid values are dependent on the
current setting of RESOLUTION. If
RESOLUTION is 300 or 1200, the only
valid BITSPERPIXEL value is 1. If
RESOLUTION is 600, the only valid
BITSPERPIXEL values are 1 and 2. For
FastRes 1200 printing, first set the
RESOLUTION to 600 and then set
BITSPERPIXEL to 2. For ProRes 1200,
first set the RESOLUTION to 1200 and
then set BITSPERPIXEL to 1.
2, 1
CLEARABLE-WARNIN
GS Returns the configuration for displaying
clearable warnings (non-fatal error
messages cleared by pressing the
Continue key.) If the value is set to JOB,
then clearable warnings generated by a
job are displayed only until the start of
the next job. If the value is ON, then
clearable warnings are displayed until
the user presses the Continue key.
JOB, ON
COMPRESSRASTER
STORAGE Specifies whether or not raster data is
to be compressed when the printer runs
out of memory. When set ON, the
throughput may be slowed down,
though more complex images can be
processed. The default is ON.
ON, OFF
CONTEXT-SWITCH Enables/disables the use of implicit
personality switching. If a job is sent
without an ENTER LANGUAGE
command, the printer looks for context
clues to determine which personality
takes effect. When the personality is
changed, memory is reconfigured and
all downloaded fonts, PCL macros, and
PostScript dictionaries are lost
(however, no I/O data is lost).
ON, OFF
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
6-14 Environment Commands EN
COPIES Number of uncollated copies for each
page of the job. 1 to 999
COURIER Sets the version of the Courier font. REGULAR, DARK
CPLOCK Sets the default control panel lockout
state. If CPLOCK is set to ON, users
cannot modify feature settings using the
control panel keys. CPLOCK can only
be set by a secure job using the
DEFAULT command, and can be read
using the INQUIRE or DINQUIRE
commands. For more information, see
the "Control Panel Lock" portion of the
“PJL Job Security” section in Chapter 5.
ON, OFF,
MINIMUM,
MODERATE,
MAXIMUM
DENSITY Returns the toner density setting. 1 to 5
DISKLOCK For volume 0 only, sets the default disk
lockout state. If ON, the disk is
read-only and it will not be possible to
format the disk, download fonts, delete
disk fonts, etc. If OFF, reading and
writing are enabled. This variable can
only be set by a secure job using the
DEFAULT command, and only queried
using the DINQUIRE command.
ON, OFF
DUPLEX Sets the default mode to enable/disable
printing on both sides of the paper. OFF
enables simplex and ON enables
duplex printing.
ON, OFF
ECONOMODE Default for the ECONOMODE
toner-saving feature used in many of
the LaserJet printers.
ON, OFF
FINISH Sets the LaserJet 5Si Mopier to staple
the printed output. NONE, STAPLE
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
EN Environment Commands 6-15
FORMLINES Number of lines per page. This variable
is tied to both the PAPER and
ORIENTATION variables. If the value of
either of those variables is changed,
then the FORMLINES variable
automatically is updated to maintain the
same line spacing.
5 to 128
HOLD Specifies the retention classification of
a job, indicating whether a job is printed
immediately or stored (see Chapter 10
for more information).
OFF, ON, PROOF,
STORE
HOLDKEY A four-digit string that is specified in the
job stream. A HOLDKEY value must be
specified if HOLDTYPE is PRIVATE
(otherwise, the job will be considered
PUBLIC).
“0000” to “9999”
HOLDTYPE Specifies the privacy level of a stored
job. PUBLIC, PRIVATE
IMAGEADAPT Default for Image Adapt feature. ON
enables 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.
ON, OFF, AUTO
IMAGELOCATION Specifies that DISK storage is or is not
to be used for processing raster images
when object banding occurs. For
printers with a hard disk, the default is
DISK. Switching from one mode to
another causes a graphics shutdown to
occur, that is, the queue of printed
prints is reset and the current nest is
processed.
DISK, RAM
INTRAY1 Returns the auto-selection lock status
for tray 1 (usually the MP tray or upper
tray, depending on the printer).
LOCKED,
UNLOCKED
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
6-16 Environment Commands EN
INTRAY2 Returns the auto-selection lock status
for tray 2 (usually the standard cassette
or lower cassette, depending on the
printer).
LOCKED,
UNLOCKED
INTRAY3 Returns the auto-selection lock status
for tray 3 (usually the optional cassette
or envelope feeder, depending on the
printer). INTRAY3 is a valid variable
only if installed. If it is not installed, the
printer returns “?” instead of LOCKED /
UNLOCKED, indicating that the variable
is unknown.
LOCKED,
UNLOCKED
INTRAY1SIZE Returns the size of the paper currently
installed in tray 1 (usually the MP tray or
upper tray, depending on the printer).
LETTER, LEGAL,
A3, A4, CUSTOM,
A5, LEDGER,
EXECUTIVE,
JISB4, JISB5, B5
COM10, C5, DL,
JPOST, JPOSTD,
MONARCH
INTRAY2SIZE Returns the size of the paper currently
installed in tray 2 (usually the standard
cassette or lower cassette, depending
on the printer).
LETTER, LEGAL,
A4, A3, LEDGER,
EXECUTIVE,
JISB4, JISB5,
CUSTOM
INTRAY3SIZE Returns the size of the paper currently
installed in tray 3 (usually the optional
cassette or envelope feeder, depending
on the printer). 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.
LETTER, LEGAL,
A4, A3, LEDGER,
EXECUTIVE,
JISB4, JISB5,
COM10,
MONARCH,
CUSTOM
INTRAY4SIZE Returns the size of the paper currently
installed in the envelope feeder.
INTRAY4SIZE is a valid variable only if
the envelope feeder currently is
installed. If it is not installed, the printer
returns “?” instead of an envelope size,
indicating that the variable is unknown.
COM10,
MONARCH, C5,
DL, B5
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
EN Environment Commands 6-17
INTRAY5SIZE Returns the size of the paper currently
installed in the first optional input tray.
INTRAY5SIZE is a valid variable only if
the optional tray currently is installed. If
it is not installed, the printer returns “?”
instead of a tray size, indicating the
variable is unknown.
LETTER, LEGAL,
A4, A3, LEDGER,
JISB4, JISB5,
EXECUTIVE,
CUSTOM
INTRAY6SIZE
INTRAY7SIZE
INTRAY8SIZE
Returns the paper size currently
installed in these optional input trays.
INTRAYxSIZE is valid only if the
optional tray is installed. If not installed,
the printer returns “?” instead of a tray
size, indicating the variable is unknown.
LETTER, LEGAL,
A4, and others
(tray-dependent)
IOBUFFER Sets the value of the I/O buffering
variable. ON, OFF, AUTO
IOSIZE Sets up the size, in Kbytes, of the
configurable I/O buffers when
IOBUFFER=ON. The size is set in
increments of 10 Kbytes (up to 100
Kbytes, then in 100 Kbyte increments).
10 to maximum
available memory
JOBATTR Used to append a string to a list of job
attribute strings associated with the
current job.
Attribute String
JOBID Used to enable or disable the job ID
information returned in the status
readback at the start and end of the job.
Both the current and default variables
are set when either the SET or
DEFAULT command is used. This
variable can be set to ON or to its
default value of OFF.
OFF, ON
JOBIDVALUE This variable is used to change the
current job ID number. It is used to
facilitate reproducible test results.
Normally job ID numbers are assigned
sequentially by the printer. As a result,
job IDs would vary depending on which
job ran prior to the current job.
0 to 65535
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
6-18 Environment Commands EN
JOBNAME Assigns a job name to a “Proof and
Hold” job. This is different than the
NAME variable associated with the JOB
command.
jobname string
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. If ON or CONTINUE, printer
remains online when the LOW TONER
message is displayed; if OFF or STOP,
printer goes offline and waits until On
Line or Continue key is pressed.
ON, OFF, STOP,
CONTINUE
MANUALFEED Manual feed mode. ON, OFF
MARGINS Sets the margins for the plot. The
SMALLER and EXTENDED values are
used only with roll-feed plotters to
reduce the amount of waste media
between plots.
NORMAL,
SMALLER,
EXTENDED
MEDIASOURCE Specifies the media source to be used
for the next job for devices that allow a
sheet of paper to be used without
removing the loaded roll of paper.
TRAY1, TRAY2,
TRAY3
MEDIATYPE Sets the default media type for the
current PJL job. PAPER, SPECIAL,
TRANSPARENCY,
GLOSSY
MIRROR Horizontal reflection of plots. ON, OFF
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
EN Environment Commands 6-19
MPTRAY Returns the configuration value of the
multi-purpose tray. CASSETTE,
MANUAL, FIRST
ORIENTATION Page orientation. PORTRAIT,
LANDSCAPE
OUTBIN Sets the default output bin. (For
HP LaserJet 4Si, 4SiMx, 4000 series,
5Si, 5SiMx, 5Si Mopier printers, the
UPPER output bin is a face-down,
correct-order bin. The LOWER output
bin is a face-up reverse-order bin.)
UPPER, LOWER,
OPTIONALOUT-
PUTBIN1, . . .
OPTIONALOUT-
PUTBIN62
OUTBINPROCESS Supplies external finishing devices with
the type of finishing requested for the
current job. The value is unused by the
printer and is simply passed to the
device. The actual values are
device-specific and therefore are not
documented here (the device
manufacturer must assign values for the
specific processes handled by that
device).
0 to 255
OUTLINEPOINTSIZE Sets the point size used by PCL-XL to
switch from printing characters as
bitmaps to printing them as outlines.
0 to 999
OUTTONER Determines how the printer processes a
toner- out event. If this variable is set to
STOP, printing will stop when a
toner-out event occurs. If this variable is
set to CONTINUE, a toner-out message
will be generated but printing will
continue. The default value for this
variable is STOP.
STOP, CONTINUE
PAGELENGTH-
ACCURACY Specifies whether the absolute
accuracy of the image length can be
sacrificed in situations when image
banding may occur. For CAD and GIS
drawings, the recommended setting is
MAXIMUM; for photographic images it
is OPTIMIZED (DesignJet 1000
Series).
EXACT,
OPTIMIZED,
CONSTANT,
MAXIMUM
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
6-20 Environment Commands EN
PAGEPROTECT Page protection configuration. The
page protection feature reserves a
block of printer memory to prevent
printer overrun errors (error 21) when
formatting very dense or complex
images, especially HP-GL/2 images.
The variable can be set to any legal
value at any time, regardless of the
current amount of free memory or the
currently set resolution. When a job is
sent, if there is not enough memory to
print correctly with the current resolution
and page protection configuration, the
system temporarily overrides the
resolution and/or page protect values to
run the job. In these cases, the job may
be printed at 300 dpi without page
protection. When the page protection
status is changed, memory is
reconfigured and all downloaded fonts,
PCL macros, and PostScript
dictionaries are lost (however, no I/O
data is lost). Refer to “Commands that
Affect Printer Memory” in Appendix A.
OFF, LETTER,
LEGAL, A4, AUTO,
ON
PALETTESOURCE Specifies how color settings are
derived, either from the device's
control-panel settings or through the
software application.
DEVICE,
SOFTWARE
PAPER Physical paper (and envelope) sizes.
Letter, Legal, Ledger, A5, A4, A3,
Executive, JISB4, and JISB5 are paper
sizes; Com10, C5, DL, Monarch, and
B5 are envelope sizes; JPOST and
JPOSTD are Japanese postcard sizes;
CUSTOM is for feeding different sizes,
but it varies with the printer: the
LaserJet 4P/4MP printers interpret
CUSTOM as odd sizes, such as 3 x 5
cards and labels; the LaserJet 4V/4MV
printers interpret CUSTOM as 11.7" x
17.7" paper.
LETTER, LEGAL,
A5, A4,
EXECUTIVE,
LEDGER, A3,
COM10, C5, DL,
MONARCH, B5,
CUSTOM, JISB4,
JISB5, JPOST,
JPOSTD
and others
(see Appendix A)
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
EN Environment Commands 6-21
PAPERLENGTH Sets the length of the paper in
decipoints (1/720th of an inch). 0 to 432000
PAPERWIDTH Sets the width of the paper in decipoints
(1/720th of an inch). 0 to 432000
PARALLEL Sets the speed of the parallel port. This
will not take effect until the next power
cycle.
FAST, SLOW
PASSWORD Default password for PJL security. 0 to 65535
PERSONALITY 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. If the AUTO option
is selected, and a job is sent without an
ENTER LANGUAGE command, the
printer looks for context clues to
determine which personality takes
effect (except in the case of ESC/P,
which cannot be selected using context
switching). When the personality is
changed, memory is reconfigured and
all downloaded fonts, PCL macros, and
PostScript dictionaries are lost
(however, no I/O data is lost). Refer to
Appendix A, “Commands that Affect
Printer Memory.
For the LaserJet 4PJ, this variable is
assigned on a per-port basis (see
“Port-Specific Variables”).
For the DeskJet 1200C, setting this
variable to INSTALLED causes the
printer to select the default personality
from those available. It selects from the
available optional personalities before
resorting to those available on a
standard printer. Reading back the
variable identifies the selected variable.
AUTO, PCL,
INSTALLED,
POSTSCRIPT,
ESCP
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
6-22 Environment Commands EN
PLANESINUSE Defines the number of planes of data in
a job. A value of 1 indicates a
monochrome job, while a value of 3
indicates a color job.
3, 1
POWERSAVE Enables or disables power-saving
feature. ON, OFF
POWERSAVETIME Sets the time (in minutes) the printer will
remain idle before it enters powersave
mode if powersave is on.
1, 15, 30, 60, 120,
180, 240, 280,480
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
REFILLDURATION Specifies the amount of ink to be used
when the printer's pens are refilled
during printing. NORMAL corresponds
to 17 cc, QUICK to 5 cc, taking
approximately 150 and 50 seconds
respectively.
NORMAL, QUICK
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
EN Environment Commands 6-23
REFILLTHRESHOLD Specifies as a percentage the level of
ink remaining in the pen before a refill is
started. 100% means that refilling takes
place when there is no usable ink
remaining in the pen. Lower threshold
values cause the printer to analyze the
density of colors of the next swaths. If
the density is increasing, the refill is
done as soon as the threshold value is
reached. If the density is decreasing,
the refill is delayed until the density
starts increasing again or the minimum
ink level is reached. Mid-print refill
banding is less noticeable in lighter
areas of a print. A threshold of 80%
means that the printer may start refilling
when the ink level has dropped by 80%
of the charge level. If the charge level
was 15.5 cc, the threshold is reached
when 12.4 cc of usable ink remains in
the pen.
5 to 100
REFILLTYPE Specifies when a pen refill is to take
place. A SHARP refill is done only
between swaths; all passes of the
printhead for the current swath are
completed before refilling takes place.
An INTERLEAVED refill can be done
between two passes of the same swath.
INTERLEAVED,
SHARP
RENDERMODE Sets the render mode for the
personality. COLOR,
GRAYSCALE
REPRINT Determines whether pages are
reprinted after a paper jam. When
AUTO is selected and the amount of
RAM installed is below a printer-specific
threshold, pages are not reprinted. If
the amount of RAM installed is more
than this threshold, they are reprinted.
The ON setting causes the printer to
reprint the job after a paper jam. OFF
disables reprinting.
AUTO, OFF, ON
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
6-24 Environment Commands EN
RESOLUTION Print resolution in dots per inch. When a
job is sent, if there is not enough
memory to run with the current
resolution and page protection
configuration, the system temporarily
overrides the resolution and/or
page-protect values to run the job.
When the resolution is changed,
memory is reconfigured and all
downloaded fonts, PCL macros, and
PostScript dictionaries are lost
(however, no I/O data is lost). Refer to
“Commands that Affect Printer Memory”
in Appendix A.
300, 600
RESOURCESAVE Sets the value of the resource-saving
variable. ON, OFF, AUTO
RESOURCE-
SAVESIZE (This variable is set as a
personality-specific variable using
LPARM : personality.) Sets the size of
the resource saving area for the
specified personality if
RESOURCESAVE=ON.
0 to maximum
available memory
(in 100 Kbyte
increments)
RET Configuration of the Resolution
Enhancement hardware. Resolution
Enhancement technology (REt)
improves the print quality of 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.
LIGHT, MEDIUM,
DARK, ON, OFF,
AUTO
USERNAME Assigns a user name to a “Proof and
Hold” job. username string”
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
EN Environment Commands 6-25
TIMEOUT Duration of I/O timeouts in seconds. If
the printer waits longer than the timeout
value without receiving any data, it ends
the print job and begins accepting data
from other I/O ports, if any. In most
cases, do not adjust this feature unless
the printer times out during normal
operation, in which case you can try
extending the timeout duration. (See the
“Timeouts” description in Appendix A.)
5 to 300
WIDEA4 Changes the margins/printable area of
A4 paper so that 80 10-pitch characters
may be printed on a line.
NO, YES
General PJL Environment Variables (continued)
Variable Description Sample Value
Range
6-26 Environment Commands EN
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.
Port-Specific Variables
Variables Description Sample Value
Range
PERSONALITY 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, ESCP, and so on) for each
installed personality is defined by the
personality itself. When the personality is
changed, memory is reconfigured and all
downloaded fonts and PCL macros are lost
(however, no I/O data is lost). Refer to
“Commands that Affect Printer Memory” in
Appendix A.
PCL, ESCP
EN Environment Commands 6-27
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. The recommended order for setting FONTNUMBER,
FONTSOURCE, and SYMSET is SYMSET first, then
FONTSOURCE, then FONTNUMBER.
PCL-Specific Variables
Variables Description Sample Value
Range
FONTNUMBER Font number. The valid range for this
variable depends on the currently set
font source. If the font source contains a
default-marked font, the values start at
0; otherwise, the values start at 1. The
upper limit depends on the number of
installed fonts in the font source. For
example, if there are 50 fonts in the font
source and there is a default-marked
font, the FONTNUMBER values range
from 0 to 49. In the same situation
without a default-marked font, the
values range from 1 to 50.
(continued on the following page)
0, 1, 2, . . . n
6-28 Environment Commands EN
FONTNUMBER
(continued) If the value of the FONTSOURCE
changes, then the FONTNUMBER
variable automatically is changed to the
lowest numbered font in the new font
source (0 if the new font source
contains a default-marked font; 1 if it
does not). If the SYMSET variable
changes, the FONTSOURCE and
FONTNUMBER default to the highest
priority default-marked font (lowest
numbered font). When the printer
searches for the highest priority
default-marked font, cartridges have the
highest priority, then SIMMs, then
internal default-marked fonts
(downloaded soft fonts have the highest
priority, but there cannot be a
default-marked soft font). NOTE: the
recommended order for setting
FONTNUMBER, FONTSOURCE, and
SYMSET is SYMSET first, then
FONTSOURCE, then FONTNUMBER.
Also, if the currently set font source is S
while the currently set font number is
the highest-numbered soft font, and a
soft font is deleted, the FONTSOURCE
variable is changed to the next highest
priority font source containing a
default-marked font. The
FONTNUMBER variable is tied to both
the FONTSOURCE and SYMSET
variables.
0, 1, 2, . . . n
PCL-Specific Variables (continued)
Variables Description Sample Value
Range
EN Environment Commands 6-29
FONTSOURCE The valid values for FONTSOURCE
are:
zI (Internal Fonts)
zC, C1, C2 (Cartridge Fonts)
zS (Permanent Soft Fonts)
zM1, M2, M3, M4 (Fonts stored in
one of the printer's ROM SIMM
slots)
The valid values for this variable
depend on the currently installed font
base. If a font source is specified which
does not contain any fonts, then the
value is ignored, causing a PJL 27001
error (if verbose unsolicited device
status is enabled).
The following events automatically
change the value of the FONTSOURCE
variable to the next highest priority font
source containing a default-marked
font: if the currently set font source is C,
C1, or C2, and the cartridge is removed
from the printer; if the currently set font
source is S and all soft fonts are
deleted;
if the currently set font source is S,
while the currently set font number is
the highest-numbered soft font, and any
soft font is deleted.
NOTE: the recommended order for
setting FONTNUMBER,
FONTSOURCE, and SYMSET is
SYMSET first, then FONTSOURCE,
then FONTNUMBER.
I, M1, M2, M3, M4,
C, C1, C2, S
(the number of
cartridge and
SIMM slots varies
by printer)
PCL-Specific Variables (continued)
Variables Description Sample Value
Range
6-30 Environment Commands EN
LINETERMINATION Sets the default PCL line termination
value:
0: CR = CR, LF = LF, FF = FF (no
change)
1: CR replaced by CR-LF, LF = LF, FF =
FF
2: CR = CR, LF replaced by CR-LF,
FF replaced by CR-FF
3: CR replaced by CR-LF, LF replaced
by CR-LF, FF replaced by -->CR-FF
0, 1, 2, 3
PITCH Pitch of the default font in units of
characters per inch (the default font
must be a fixed-pitch scalable font). The
pitch value can be specified to two
decimal places.
0.44, 0.45, . . .
99.99
PTSIZE Height of the default font in units of
points (the default font must be a
proportional scalable font). The point
size is significant to a quarter of a point.
4.00, 4.25, . . .
999.75
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.1J
is only available in the HP LaserJet 4PJ,
the HP LaserJet 4LJ Pro, and the HP
LaserJet 4V/4MV when ESC/P is
installed].)
On the HP LaserJet 4LC printer, if the
SYMSET is GB2312 the default PCL
text parsing method is set to
GB-compatible parsing. [GB2312 is
only available in the HP LaserJet 4LC
printer.]
ROMAN8, ISOL1,
ISOL2, ISOL5,
ISOL6, PC775,
PC8, PC8DN,
PC850, PC852,
PC8TK, PC1004,
WINL1, WINL2,
WINL5, DESKTOP,
PSTEXT,
MSPUBL, MATH8,
PSMATH, PIFONT,
LEGAL, ISO4,
ISO6, ISO11,
ISO15, ISO17,
ISO21, ISO60,
ISO69, WIN30,
WIN31J, WINBALT,
GB2312, MCTEXT
PCL-Specific Variables (continued)
Variables Description Sample Value
Range
EN Environment Commands 6-31
PostScript-Specific Variables
The following table lists the currently defined PostScript-specific
variables. These variables can be set using the LPARM :
POSTSCRIPT option.
Variable Description Sample Value
Range
ADOBEMBT Normally, when PostScript formats a page in
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.
If there is not sufficient memory the printer
will perform some compression on the page
to get it to fit in memory. Printed images on
these pages may result in the loss of some
detail from the original. This formatting
method requires considerable memory. With
ADOBEMBT ON (enabled), the printer
formats a PostScript page in strips. This
method does not require as much memory
and will not result in loss of detail in images,
however it is a little slower and can require
up to 20% more formatting time. With
ADOBEMBT set to AUTO, the printer will
select either full frame, depending on the
selected page size and the amount of
memory available, or ADOBE MBT. For
example, if letter is the page size and the
printer has 7 Mb of memory available, the
printer will print full frame (disable MBT); if
less than 7 Mb is available, the printer will
enable MBT and process the page in strips.
OFF, ON, AUTO
JAMRECOVERY Enables or disables the printing of jammed
pages following a paper jam. The OFF
setting boosts printer performance, but lost
pages are not automatically printed after
clearing the jam.
OFF, ON
PRTPSERRS This variable enables or disables the printing
of a PostScript error page. OFF, ON
6-32 Environment Commands EN
ESC/P-Specific Variables
The following table lists the currently defined ESC/P-specific variables
which are valid only for HP LaserJet 4PJ and 4LJPro printers, and
optionally for HP LaserJet 4V and 4MV printers. These variables can
be set using the LPARM : ESCP option. Note that HP LaserJet 4PJ,
4V, and 4MV factory defaults for these variables are in parentheses.
Note If ESC/P is installed in HP LaserJet 4V and 4MV printers and a menu
reset or cold reset is performed, the printer defaults to
FONTNUMBER = 0, FONTSOURCE = I, SYMSET = ROMAN8 and
PERSONALITY = AUTO. To re-establish ESC/P as the default
personality, set ESC/P as the default personality using PJL or the
control panel (in Japan, users can send the ESCPDEF.PJL file).
To print Japanese via PCL using the MS Mincho or MS Gothic
typefaces, set the SYMSET to WIN31J, FONTSOURCE to the SIMM
slot containing the MS Mincho or MS Gothic font (usually M4), and set
FONTNUMBER to 1 for MS Mincho or 2 for MS Gothic. Also set the
personality to AUTO or PCL. (Alternatively, in Japan, users can
configure the printer for PCL using the PCLDEF.PJL file.)
EN Environment Commands 6-33
Variable Description Sample Value
Range
CARRIAGE-
RETURN 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.
(CR), CRLF
CHARACTER-
SET Default character set used for 1-byte printing.
Valid values for CHARACTERSET are: KANA–
Use katakana character set; EG–Use extended
graphics character set.
(KANA), EG
TOPMARGIN Valid values for TOPMARGIN are: TM19MM–
sets top margin to 19 mm; TM6MM–sets top
margin to 6 mm.
(TM19MM),
TM6MM
ANKCONDENSE Enables or disables whether alphanumeric/kana
(ANK) characters are printed in condensed mode
by default.
ON, (OFF)
FONT Default font used when printing in Kanji mode. (MSMINCHO)
MSGOTHIC
6-34 Environment Commands EN
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.
Applications that generate print data, such as word processors,
spreadsheets, and graphics programs, should ensure that the printer
is set to a desired state as follows (see Chapter 10 for a description of
the various application types):
1Send the UEL command (<ESC>%-12345X) to start PJL and to
default the print environment to the User Default Environment
settings.
2Use the SET command to modify any currently defined
environment variables that cannot be set using the desired printer
language. For example, use PJL to set variables such as RET or
PAGE PROTECTION that cannot be set with a printer language;
then use PCL or another printer language to set the remaining
environment variables, such as orientation and number of copies.
Note Do not set features that you do not enable users to set from your
application. Any feature set by the application should enable the user
to control that feature—this strategy prevents the user from being
“locked out” of a particular feature.
3Enter the desired printer language and use printer language
commands to set all other environment variables to the desired
settings.
4If using a SET command to modify an environment variable, use
a RESET command to return to its default state.
EN Environment Commands 6-35
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. The modifiable
environment features for HP LaserJet 4 and 4M printers are listed
below (see Appendix A for a list of environment variables supported
by each PJL printer):
Of these HP LaserJet 4 and 4M features, only RET, PAGEPROTECT,
and RESOLUTION affect the printed output and cannot be set using
the printer language (in this case, PCL). These features are set using
PJL, as the following lines show:
<ESC>%-12345X@PJL <CR><LF>
@PJL SET RET = MEDIUM <CR><LF>
@PJL SET PAGEPROTECT = OFF <CR><LF>
@PJL SET RESOLUTION = 300 <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . Use PCL to set copies, paper,
orientation, line spacing, manual feed, and font
selection— values not set using PJL <ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL RESET <CR><LF>
<ESC>%-12345X
COPIES FORMLINES
PAPER MANUALFEED
ORIENTATION RET
PAGEPROTECT PERSONALITY *
RESOLUTION TIMEOUT *
FONTSOURCE PTSIZE
FONTNUMBER SYMSET
PITCH PRTPSERRS
* PERSONALITY and TIMEOUT do not affect the printed output and generally should
not be used.
6-36 Environment Commands EN
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.
For printers that support the PASSWORD variable, the DEFAULT
command will not take effect unless used within a secure job (a job
with the correct password in the JOB command).
Note In situations where the printer is shared by several users, such as
networks, restrict the use of the DEFAULT command using PJL
security mechanisms. This recommendation allows a standard print
environment to be used and avoids having default features changed
by different print jobs. Instead, if a printer feature must be changed
from the default for a particular print job, use the SET command. In
this way, jobs can be successfully printed in any order, since they are
not affected by settings from previous jobs.
When the DEFAULT command is used to change the
PAGE-PROTECT, RESOLUTION, RESOURCESAVE,
RESOURCESAVESIZE, IOBUFFER, or IOSIZEstatus, the printer
memory is reconfigured. Reconfiguring printer memory erases all
downloaded fonts, PCL macros, and PostScript dictionaries, however
no I/O data is lost. Refer to “Commands that Affect Printer Memory” in
Appendix A.
Syntax:
@PJL DEFAULT [LPARM : personality |
IPARM : port] variable = value [<CR>]<LF>
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.
EN Environment Commands 6-37
IPARM : port — This optional parameter is used to set
port-specific variables. The HP LaserJet 4PJ is the only printer
which supports port-specific variables.
IPARM : port — This option must be used when setting
port-specific variables. Valid values for port for the HP
LaserJet 4PJ printer are SERIAL and PARALLEL.
variable = value — This parameter sets one of the
environment variables to the specified value. For example, the
@PJL DEFAULT RESOLUTION = 600 command sets the
default resolution to 600 dots per inch. See Appendix A for a
list of variables and values for each printer. If you need a more
detailed description of a particular variable, see the
“Environment Variables” section earlier in this chapter.
Note The supported 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 the variables and range of values for each PJL printer. You
can also obtain valid variables and the range of values for each
variable by sending the INFO VARIABLES command to request this
information directly from the printer.
Parameters:
Comments:
The DEFAULT command enables you to specify default values for
either general variables, which are used by all personalities, or
personality-specific variables. All personality-specific variables, such
as the default PCL symbol set or the PostScript-specific variable
Parameter Variable Names
personality PCL ESCP
POSTSCRIPT (Other personalities may also
be supported)
port PARALLEL Supported on LaserJet 4PJ
only
SERIAL
variable Valid variables for each printer are listed in
Appendix A.
value Appropriate values for each variable are also listed
in Appendix A.
6-38 Environment Commands EN
PRTPSERRS, must be set using this option. Variables that are not
personality-specific cannot be set using the LPARM : personality
option.
All port-specific variables must be set using the IPARM: port option.
Variables that are not port-specific cannot be set using the IPARM :
port option.
Default values set with this command affect the printer control panel
value and the feature setting stored in non-volatile RAM (in those
printers that have a control panel and NVRAM). However, these
values do not affect the print environment until a PJL reset condition
occurs (see “PJL Reset Conditions” for a list of printer events that
constitute a PJL reset). Consequently, if you want the default values
to take effect immediately, send a RESET command after sending the
DEFAULT command(s).
A separate DEFAULT command must be sent for each environment
variable you specify. The command may be used to set any
environment variable except the read-only variables. See the
“Environment Variables” section of this chapter for a description of
each environment variable.
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT User Defaults <CR><LF>
@PJL DEFAULT PAGEPROTECT = LETTER <CR><LF>
@PJL DEFAULT LPARM : PCL SYMSET = PC8 <CR><LF>
@PJL RESET <CR><LF>
<ESC>%-12345X
Related Commands:
RESET, SET, JOB, EOJ, UEL
EN Environment Commands 6-39
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. (This command is not intended for frequent use,
since it resets most environments and control panel settings.)
For printers that support the PASSWORD variable, the INITIALIZE
command will not take effect unless it is used within a secure job (if a
password is in use, a secure job is one that contains the correct
password in the JOB command).
Note In situations where the printer is shared by several users, such as
networks, restrict the INITIALIZE command. This recommendation
allows a standard print environment to be used and avoids having
default features changed by different print jobs. In this way, jobs may
be successfully printed in any order since they are not affected by
settings from previous jobs.
Syntax:
@PJL INITIALIZE [<CR>]<LF>
Parameters:
The INITIALIZE command has no parameters.
Comments:
The INITIALIZE command resets the following environment variables
to their Factory Default values.
Note Because personalities can be dynamically added to some HP
LaserJet printers, these printers support more personality-specific
variables than those listed here. In any case, the INITIALIZE
command causes the PJL Current and User Default environment
values for all personalities to default to their factory default state.
6-40 Environment Commands EN
Note The environment variables may vary with different HP LaserJet printer
models. See Appendix A for a list of valid variables, or send the INFO
VARIABLES command to request this information directly from the
printer.
Variable Names
BINDING ORIENTATION
COPIES OUTBIN
CPLOCK PAGEPROTECT
DISKLOCK PAPER
DUPLEX PASSWORD
ECONOMODE PERSONALITY
FINISH QTY
FORMLINES REPRINT
IMAGEADAPT RESOLUTION
JOBOFFSET RET
MANUALFEED TIMEOUT
PCL-Specific Variables
FONTNUMBER PTSIZE
FONTSOURCE SYMSET
PITCH
PostScript-Specific Variables
JAMRECOVERY PRTPSERRS
ESC/P-Specific Variables
ANKCONDENSE FONT
CARRIAGERETURN TOPMARGIN
CHARACTERSET
EN Environment Commands 6-41
Example: Using the INITIALIZE Command
This example initializes the printer:
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Initialize settings to <CR><LF>
@PJL COMMENT factory defaults <CR><LF>
@PJL INITIALIZE <CR><LF>
<ESC>%-12345X
Related Commands:
DEFAULT, RESET, SET
6-42 Environment Commands EN
RESET Command
The RESET command resets the PJL Current Environment variables
to their User Default values. This command has the same effect on
the PJL Current Environment as power-cycling the printer. Use this
command at the end of PJL jobs that use the SET command to set
the printer back to its default state.
Syntax:
@PJL RESET [<CR>]<LF>
Parameters:
The RESET command has no parameters.
Comments:
Any time an application such as a Spooler or Print Data Generator
uses the SET command to set PJL variables, the application should
conclude with the RESET command (before the closing UEL
command) to return the variables to their previous state. (See
Chapter 11 for more information about Spoolers and Print Data
Generators.)
The RESET command must also be sent after the DEFAULT
command if the new default values are to take effect immediately
within the same job (see the DEFAULT command example on page
6-37).
The RESET command resets the following environment variables to
their user default values.
Note Because personalities can be dynamically added to some HP
LaserJet printers, those printers support more personality-specific
variables than those listed here. In addition, the allowable variables
and range of values for each variable may not be the same in all HP
LaserJet printer models. To obtain valid variables and the range of
values for each variable, send the INFO VARIABLES command to
request this information directly from the printer. In any case, the
RESET command causes the PJL Current Environment values for all
personalities to default to the User Default values.
EN Environment Commands 6-43
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-44 Environment Commands EN
Example: Using the RESET Command
The following example uses a RESET command after the print job to
return the features to their previous state:
<ESC>%-12345X@PJL <CR><LF0>
@PJL COMMENT Resets variables to <CR><LF>
@PJL COMMENT control panel settings <CR><LF>
@PJL SET RESOLUTION = 600 <CR><LF>
@PJL SET RET = MEDIUM <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . PCL job . . . <ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Reset to return to <CR><LF>
@PJL COMMENT control panel settings <CR><LF>
@PJL RESET <CR><LF>
<ESC>%-12345X
Related Commands:
DEFAULT, INITIALIZE, SET
EN Environment Commands 6-45
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. Memory is not reconfigured unless the
PAGEPROTECT or RESOLUTION status actually changes from its
previous setting. When these settings are changed, performance is
affected since all processed data is printed before memory
reconfiguration occurs. (Refer to “Commands that Affect Printer
Memory” in Appendix A.)
Syntax:
@PJL SET [LPARM : personality | IPARM : port]
~variable = value [<CR>]<LF>
LPARM : personality — This optional parameter is used to
set personality-specific environment variables. For example,
you can use this option to set the PCL symbol set.
PCL is a valid personality; other personalities, such as
PostScript, can be added into the printer as hardware options
(cartridges or ROM SIMMs). Use the INFO VARIABLES
command to request the range of values for all personalities in
a particular printer.
The LPARM : personality option must be used when setting
personality-specific variables.
IPARM : port — This optional parameter is used to set
port-specific variables. The HP LaserJet 4PJ is the only printer
which supports port-specific variables.
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.
6-46 Environment Commands EN
variable = valuethis parameter sets one of the
environment variables to the specified value. For example, the
@PJL SET RESOLUTION = 600 command sets the current
resolution to 600 dots per inch. See the table below for all valid
variables and values. If you require a more detailed description
of a particular variable, see the “Environment Variables”
section earlier in this chapter.
Note The permissible environment 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 and the range of values for
each variable, or send the INFO VARIABLES command to request
this information directly from the printer.
Parameters:
Parameter Variable Names
personality PCL ESCP
POSTSCRIPT Other personalities may
be supported
port PARALLEL Supported on LaserJet
4PJ only
SERIAL
variable Valid variables for each printer are listed in
Appendix A.
value Appropriate values for each variable are also
listed in Appendix A.
EN Environment Commands 6-47
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.
Values modified with the SET command do not affect the User Default
Environment values. Feature settings changed with the SET
command are valid until the next PJL reset condition.
A separate SET command must be sent for each environment
variable you specify. The command may be used to set any
environment variable except CPLOCK, DISKLOCK, PASSWORD,
and the read-only variables. See the “Environment Variables” section
of this chapter for a discussion of each environment variable.
Note If the SET command is used in a job, use the RESET command after
the job to reset features to the User Default (control panel) values.
See the following example for a demonstration of how to use the
RESET command to “clean up” after using SET.
6-48 Environment Commands EN
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Setting PostScript Job <CR><LF>
@PJL COMMENT to Desired State <CR><LF>
@PJL SET RET = MEDIUM <CR><LF>
@PJL SET PAGEPROTECT = OFF <CR><LF>
@PJL SET RESOLUTION = 600 <CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
%!PS-ADOBE ... PostScript print job — use
~POSTSCRIPT code to set all values that are
~not set using PJL... ^D
<ESC>%-12345X@PJL <CR><LF>
@PJL RESET <CR><LF>
<ESC>%-12345X
Related Commands:
DEFAULT, INITIALIZE, RESET, JOB, EOJ
EN Status Readback Commands 7-1
7Status 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.
PJL status readback is especially useful during application
development. Status readback enables you to determine that your
application successfully changed feature settings to your
specifications.
This chapter describes the requirements for using status readback,
and explains the following status readback commands:
INQUIRE requests the current value (PJL Current
Environment) for a specified environment variable.
DINQUIRE requests the default value (User Default
Environment) for a specified environment variable.
ECHO returns a comment to the host computer to synchronize
status information.
INFO requests a specified category of printer information.
USTATUS allows the printer to send unsolicited status
messages, including device, job, page, and timed status.
USTATUSOFF turns off all unsolicited status.
This chapter also explains job recovery.
7-2 Status Readback Commands EN
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
EN Status Readback Commands 7-3
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. To clear any possible unread status
responses requested by previous applications, upon starting up, an
application should use the ECHO command as described in the
ECHO command section later in this chapter.
If unsolicited status is enabled, applications should properly handle
receiving unsolicited status responses at any time. In particular, be
aware that applications may receive an unsolicited status response
after requesting printer status information.
The application and printer must be in a printer environment that
supports two-way communication between the application and the
printer. Printer sharing devices, networks, and other printing system
components may not support this bi-directional communication.
(Refer to “Using Status Readback in a Multi-User System” in
Chapter 11.)
7-4 Status Readback Commands EN
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 <FF> character. For example, the readback response
for the INQUIRE command is:
@PJL INQUIRE [LPARM:personality | IPARM:port]
~variable<CR><LF>
value<CR><LF>
<FF>
Your application should be able to read all the data between the
“@PJL” header and the <FF> control code.
Lines within the PJL status response begin with a specific keyword,
as described in the command descriptions in this chapter, and end
with the <CR><LF> control codes. Future printers may support new
keywords in the PJL status response. Your application should ignore
those lines which it does not understand.
The format of the printer response for each STATUS READBACK
command is described in the command descriptions.
EN Status Readback Commands 7-5
INQUIRE Command
The INQUIRE command is used to obtain the current value of a
specified PJL environment variable, including read-only variables.
Use the INQUIRE command to find out the setting for a particular PJL
feature, such as ORIENTATION.
Syntax:
@PJL INQUIRE [LPARM : personality |
~IPARM : port] variable [<CR>]<LF>
Response Syntax:
@PJL INQUIRE [LPARM:personality |
~IPARM:port] variable <CR><LF>
value <CR><LF>
<FF>
LPARM : personalityThis optional parameter is used to
inquire about printer language-specific environment variables.
For example, you can use this option to request the current
PCL symbol set stored in the PJL Current Environment.
PCL is a valid personality. Other personalities, such as
POSTSCRIPT, can be added as hardware options. Use the
@PJL INFO CONFIG command to request the personalities
installed in a particular printer.
IPARM : port — This optional parameter is used to set
port-specific variables. The HP LaserJet 4PJ is the only printer
which supports port-specific variables.
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 This parameter specifies the environment variable
you want. For example, the INQUIRE RET command requests
the current value of the Resolution Enhancement technology
feature. See Appendix A for a list of valid variables for each
printer. If you require a more detailed description of a
particular variable, see the “Environment Variables” section in
Chapter 6.
7-6 Status Readback Commands EN
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. See
Appendix A for variable names for each parameter.
Parameters:
Comments:
If your application has status readback capabilities, you can request
the current setting of any valid environment variable. Since the
INQUIRE command returns only the value for one feature, you can
send multiple INQUIRE commands to request information about more
than one feature. If you need information about many variables, the
PJL INFO VARIABLES command returns the PJL Current
Environment settings for all environment variables.
If the printer does not support the variable, the response is:
@PJL INQUIRE [LPARM:personality | IPARM:port]
~variable <CR><LF>
"?"<CR><LF>
<FF>
Parameter Variable Names+
personality PCL ESCP
POSTSCRIPT (other personalities may
be supported)
port PARALLEL Supported on HP
LaserJet 4PJ only
SERIAL
variable Valid variables for each printer are listed in
Appendix A.
value Acceptable values for each variable are also
listed in Appendix A.
EN Status Readback Commands 7-7
If a printer language-specific variable is not available because that
printer language is not installed or is invalid, or if a port-specific
variable is not available because that port is not supported, the
command will return an appropriate error code if USTATUS
DEVICE=VERBOSE is enabled.
Note The LPARM : personality option must be used when requesting
printer language-specific information.
The IPARM : port option must be used when requesting port-specific
information.
Example: Using INQUIRE to Request Feature Settings
This example requests the current print environment settings for RET,
PAGEPROTECT, RESOLUTION, PERSONALITY, and TIMEOUT.
The printer response for this example is listed below.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT ***Inquiring About <CR><LF>
@PJL COMMENT Environment Settings*** <CR><LF>
@PJL ECHO 02:18:23.9 05-30-92 <CR><LF>
@PJL INQUIRE RET <CR><LF>
@PJL INQUIRE PAGEPROTECT <CR><LF>
@PJL INQUIRE RESOLUTION <CR><LF>
@PJL INQUIRE PERSONALITY <CR><LF>
@PJL INQUIRE TIMEOUT <CR><LF>
<ESC>%-12345X
For the HP LaserJet 4 printer, a sample printer response for this
example is as follows. Other PJL printers may respond differently.
7-8 Status Readback Commands EN
Example: Using INQUIRE for Printer
Language-Specific Variables
This example requests the PCL settings for pitch, point size, and
symbol set.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Requesting PCL Settings <CR><LF>
@PJL ECHO 12:22:23.9 11-05-92 <CR><LF>
@PJL INQUIRE LPARM : PCL PITCH <CR><LF>
@PJL INQUIRE LPARM : PCL PTSIZE <CR><LF>
@PJL INQUIRE LPARM : PCL SYMSET <CR><LF>
<ESC>%-12345X
For the HP LaserJet 4 printer, the response for this example is shown
on the following page. Other PJL printers may respond differently.
@PJL ECHO 02:18:23.9 05-30-92<CR><LF>
<FF>
@PJL INQUIRE RET<CR><LF>
MEDIUM<CR><LF>
<FF>
@PJL INQUIRE PAGEPROTECT<CR><LF>
OFF<CR><LF>
<FF>
@PJL INQUIRE RESOLUTION<CR><LF>
600<CR><LF>
<FF>
@PJL INQUIRE PERSONALITY<CR><LF>
AUTO<CR><LF>
<FF>
@PJL INQUIRE TIMEOUT<CR><LF>
15<CR><LF>
<FF>
EN Status Readback Commands 7-9
Related Commands:
DINQUIRE, ECHO, INFO, SET, DEFAULT, USTATUS
@PJL ECHO 12:22:23.9 11-05-92<CR><LF>
<FF>
@PJL INQUIRE LPARM:PCL PITCH<CR><LF>
10.00<CR><LF>
<FF>
@PJL INQUIRE LPARM:PCL PTSIZE<CR><LF>
12.00<CR><LF>
<FF>
@PJL INQUIRE LPARM:PCL SYMSET<CR><LF>
ROMAN8<CR><LF>
<FF>
7-10 Status Readback Commands EN
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.
Syntax:
@PJL DINQUIRE [LPARM : personality |
~IPARM : port] variable [<CR>]<LF>
Response Syntax:
@PJL DINQUIRE [LPARM:personality |
~IPARM:port] variable <CR><LF>
value<CR><LF>
<FF>
LPARM : personalityThis optional parameter is used to
inquire about printer language-specific environment variables.
For example, you can use this option to request the default
PCL pitch setting.
PCL is a valid personality. Other personalities, such as
POSTSCRIPT, can be added as hardware options. Use the
@PJL INFO CONFIG command to request the personalities
installed in a particular printer.
IPARM : port — This optional parameter is used to set
port-specific variables. The HP LaserJet 4PJ is the only printer
which supports port-specific variables.
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 This parameter specifies the environment variable
about which you are inquiring. For example, the DINQUIRE
DENSITY command requests the default toner density setting.
See Appendix A for a list of valid variables for each printer. If
you require a more detailed description of a particular variable,
see the “Environment Variables” section in Chapter 6.
EN Status Readback Commands 7-11
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. For example, if you sent the DINQUIRE LOWTONER
command, the returned value is either ON or OFF (or
CONTINUE/STOP), indicating whether or not you want the
printer to stay online when the toner is low. See Appendix A for
valid variable values.
Parameters:
Parameter Variable Names
personality PCL ESCP
POSTSCRIPT (other personalities may
be supported)
port PARALLEL Supported on HP
LaserJet 4PJ only
SERIAL
variable Valid variables for each printer are listed in
Appendix A.
value Acceptable values for each variable are also
listed in Appendix A.
7-12 Status Readback Commands EN
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.
If the printer does not support the variable, the response is:
@PJL DINQUIRE [LPARM:personality | IPARM:port]
~variable <CR><LF>
"?"<CR><LF>
<FF>
If a printer language-specific variable is not available because that
printer language is not installed or is invalid, or if a port-specific
variable is not available because that port is not supported, the
command will return an appropriate error code if USTATUS
DEVICE=VERBOSE is enabled.
Note The LPARM : personality option must be used when requesting
printer language-specific information.
The IPARM : port option must be used when requesting port-specific
information.
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Inquiring Default Settings
~<CR><LF>
@PJL ECHO 08:10:33.7 04-17-93 <CR><LF>
@PJL DINQUIRE RESOLUTION <CR><LF>
@PJL DINQUIRE PERSONALITY <CR><LF>
<ESC>%-12345X
For the HP LaserJet 4 printer, a sample response for this example is
as follows. Responses from other PJL printers may vary.
EN Status Readback Commands 7-13
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Inquiring Default PCL Settings
~<CR><LF>
@PJL ECHO 11:03:05.9 07-04-92 <CR><LF>
@PJL DINQUIRE LPARM : PCL PITCH <CR><LF>
@PJL DINQUIRE LPARM : PCL SYMSET <CR><LF>
<ESC>%-12345X
A sample HP LaserJet 4 printer response for this example is as
follows. Other PJL printer responses may vary.
Related Commands:
INQUIRE, ECHO, INFO, SET, DEFAULT, USTATUS
@PJL ECHO 08:10:33.7 04-17-93<CR><LF>
<FF>
@PJL DINQUIRE RESOLUTION<CR><LF>
600<CR><LF>
<FF>
@PJL DINQUIRE PERSONALITY<CR><LF>
AUTO<CR><LF>
<FF>
@PJL ECHO 11:03:05.9 07-04-92<CR><LF>
<FF>
@PJL DINQUIRE LPARM:PCL PITCH<CR><LF>
10.00<CR><LF>
<FF>
@PJL DINQUIRE LPARM:PCL SYMSET<CR><LF>
ROMAN8<CR><LF>
<FF>
7-14 Status Readback Commands EN
ECHO Command
The ECHO command prompts the printer to return a specified
message to the host computer. Use the ECHO command to
synchronize the printer with the host computer to ensure that the
status received is the requested status information.
Syntax:
@PJL ECHO [<words>] [<CR>]<LF>
Response Syntax:
@PJL ECHO [<words>] <CR><LF>
<FF>
Parameters:
<words> The <words> parameter must begin with a
printable character, and can contain any Roman-8 character
from 33 through 255, in addition to space characters and
horizontal tabs. The <words> parameter is not a string
variable, and therefore need not be enclosed in quotation
marks. The parameter should be unique, such as the time
indicated by the real time clock at the moment the ECHO
command is issued. A unique message eliminates the
possibility of duplicate messages being echoed by different
applications. The maximum length for <words> is 80 bytes.
Comments:
In a multi-user environment, the printer may respond to many different
status requests. Since the status messages are buffered in the printer
until they are received, the current application may receive status
messages that were requested by a previous application. (This
happens in situations where the application requests information, or
unsolicited status is enabled, and the application closes before
receiving the status messages.)
Parameter Functional Range Default
<words> Roman-8 characters 33 – 255, <SP>,
<HT> N/A
EN Status Readback Commands 7-15
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. If you turned on USTATUS, you may receive unsolicited
status information at any time.
Example: Using the ECHO Command
This example sends the Testing 68394 10:57:06.4 message
using the ECHO command. After the application receives the
Testing 68394 response, all succeeding solicited messages
received during the current job are those requested by the current
application.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Using the ECHO command <CR><LF>
@PJL ECHO Testing 68394 10:57:06.4 <CR><LF>
<ESC>%-12345X
A sample HP LaserJet 4 printer response for this example is shown
below. Other PJL printers may have different responses.
Related Commands:
INQUIRE, DINQUIRE, INFO, SET, DEFAULT, USTATUS
@PJL ECHO Testing 68394 10:57:06.4<CR><LF>
<FF>
7-16 Status Readback Commands EN
INFO Command
The INFO command requests a specified category of information
(see table below). Use this command to find the printer model,
configuration, memory available, page count, status information, PJL
file system information, and a list of the printer variables, including
environmental, printer language-dependent, and unsolicited status
variables.
Syntax:
@PJL INFO category [<CR>]<LF>
Response Syntax:
@PJL INFO category<CR><LF>
[1 or more lines of printable characters or <WS>
followed by <CR><LF>]
<FF>
Parameters:
Category Description
ID Provides the printer model number, such as
“LaserJet 4.
CONFIG Provides configuration information, such as how
many and which paper sizes are available in this
printer.
FILESYS Returns PJL file system information.
MEMORY Identifies amount of memory available.
PAGECOUNT Returns the number of pages printed by the
print engine.
STATUS Provides the current printer status.
VARIABLES Lists environmental and printer
language-dependent variables, the possible
variable values, and the current variable
settings.
USTATUS Lists the unsolicited status variables provided by
the printer, the possible variable values, and the
current variable settings.
EN Status Readback Commands 7-17
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 <CR><LF>
"?" <CR><LF>
<FF>
ID Category
The INFO ID command provides a way to identify the type of printer
used. For the HP LaserJet 4 printer, the INFO ID command prompts
the printer to return the following response:
@PJL INFO ID<CR><LF>
"LASERJET 4"<CR><LF>
<FF>
Note To maintain compatibility with future printers, applications should not
use the INFO ID command to identify printer features. Instead, the
more detailed INFO CONFIG command should be used (see the
following discussion on “The CONFIG Category”).
Some printers, such as the HP LaserJet 4ML printer, return “HP” in
front of the model name, for example:
@PJL INFO ID<CR><LF>
"HP LASERJET 4ML"<CR><LF>
<FF>
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.
7-18 Status Readback Commands EN
Variables appear in the response only if they are installed in the
printer. For example, if a HP LaserJet 4 printer does not have the
lower paper cassette installed, the INTRAY3 option is not returned in
the response.
The general format of the returned information is:
The returned information can list multiple features, with the format of
the feature information enclosed in brackets. For “[ <value> feature
information]”, the square brackets ( [ ] ) in the format indicate an
optional item as well as indicating that brackets enclose the feature
information. For example, [4 ENUMERATED] indicates there are 4
returned options for the feature. Refer to the sample printer response
in the “Using the INFO CONFIG Command” example for the format of
an actual response.
@PJL INFO CONFIG<CR><LF>
feature[=value][<value> feature information]<CR><LF>
[<HT>returned option[ attribute]<CR><LF>]
. . .
. . .
feature[=value][<value> feature information]<CR><LF>
[<HT>returned option[ attribute]<CR><LF>]
<FF>
EN Status Readback Commands 7-19
Example: Using the INFO CONFIG Command
This example requests the current configuration information. The
printer, a HP LaserJet 4 printer in this case, responds with a list of
features. For example, the returned information shows there is an
envelope tray and three input trays: INTRAY1 MP, the multi-purpose
tray, INTRAY2 PC, the paper cassette tray, and INTRAY3 LC, the
optional lower cassette tray. Other configuration information also is
listed, including the total amount of installed memory available and
the number of display lines and characters.
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].
feature information one or more alphanumeric
values, separated by spaces Indicates what type of information
follows, such as RANGE, TABLE
ENUMERATED, or READONLY.
returned option alphanumeric or numeric
value, or string An option of a feature listed in
the returned data, such as TIMED,
describing a type of USTATUS.
attribute alphanumeric or numeric
value, or string Adds more information about a
particular returned option, such as
INTRAY1 MP, indicating that tray 1
is a multipurpose (MP) tray.
7-20 Status Readback Commands EN
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Using @PJL INFO CONFIG <CR><LF>
@PJL ECHO 09:51:48.3 12-24-92 <CR><LF>
@PJL INFO CONFIG <CR><LF>
<ESC>%-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.3 12-24-92<CR><LF>
<FF>
@PJL INFO CONFIG<CR><LF>
IN TRAYS [3 ENUMERATED]<CR><LF>
INTRAY1 MP<CR><LF>
INTRAY2 PC<CR><LF>
INTRAY3 LC<CR><LF>
ENVELOPE TRAY<CR><LF>
OUT TRAYS [1 ENUMERATED]<CR><LF>
NORMAL FACEDOWN<CR><LF>
PAPERS [9 ENUMERATED]<CR><LF>
LETTER<CR><LF>
LEGAL<CR><LF>
A4<CR><LF>
EXECUTIVE<CR><LF>
MONARCH<CR><LF>
COM10<CR><LF>
DL<CR><LF>
C5<CR><LF>
B5<CR><LF>
LANGUAGES [2 ENUMERATED]<CR><LF>
PCL<CR><LF>
POSTSCRIPT<CR><LF>
USTATUS [4 ENUMERATED]<CR><LF>
DEVICE<CR><LF>
JOB<CR><LF>
PAGE<CR><LF>
TIMED<CR><LF>
FONT CARTRIDGE SLOTS [1 ENUMERATED]<CR><LF>
CARTRIDGE<CR><LF>
MEMORY=2097152<CR><LF>
DISPLAY LINES=1<CR><LF>
DISPLAY CHARACTER SIZE=16<CR><LF>
<FF>
EN Status Readback Commands 7-21
FILESYS Category
The INFO FILESYS command returns the following information for
each volume intialized on the PJL file system:
Total capacity
• Volume label
Free space
Volume read/write status
Location
Example: Using the INFO FILESYS Command
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Using @PJL INFO FILESYS <CR><LF>
@PJL ECHO 11:33:42.3 9-20-96 <CR><LF>
@PJL INFO FILESYS <CR><LF>
<ESC>%-12345X
A sample HP LaserJet 5 printer response for this example is shown
below. Other printers may respond differently.
If the mass storage device is not present (but the file system firmware
is), or if there are not initialized volumes, the reply will be as follows:
A printer with no file system firmware will treat this command as a PJL
INFO command with an unknown category and will respond with the
reply:
@PJL INFO FILESYS<CR><LF>
"?"<CR><LF>
<FF>
@PJL INFO FILESYS [2 TABLE]
VOLUME TOTAL SIZE FREE SPACE LOCATION LABEL STATUS<CR><LF>
0: 1755136 1718272 <HT> <HT> READ-WRITE<CR><LF>
@PJL INFO FILESYS [1 TABLE]
VOLUME TOTAL SIZE FREE SPACE LOCATION LABEL STATUS<CR><LF>
<FF>
7-22 Status Readback Commands EN
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 (<ESC>*s1M).
See the PCL 5 Printer Language Technical Reference Manual for
more information about PCL status readback.
Example: Using the INFO MEMORY Command
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Using @PJL INFO MEMORY <CR><LF>
@PJL ECHO 14:51:48.3 12-18-92 <CR><LF>
@PJL INFO MEMORY <CR><LF>
<ESC>%-12345X
A sample HP LaserJet 4 printer response for this example is shown
below. Other printers may respond differently.
@PJL ECHO 14:51:48.3 12-18-92<CR><LF>
<FF>
@PJL INFO MEMORY<CR><LF>
TOTAL=1494416<CR><LF>
LARGEST=1494176<CR><LF>
<FF>
EN Status Readback Commands 7-23
PAGECOUNT Category
The INFO PAGECOUNT returns the number of pages printed by the
current print engine. This returned number is an indication of printer
usage.
Example: Using the INFO PAGECOUNT Command
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Using PJL INFO PAGECOUNT <CR><LF>
@PJL ECHO 06:53:29.3 1-25-93 <CR><LF>
@PJL INFO PAGECOUNT <CR><LF>
<ESC>%-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.
@PJL INFO PAGECOUNT<CR><LF>
PAGECOUNT=183933<CR><LF>
<FF>
7-24 Status Readback Commands EN
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.
Note For those printers supporting Japanese printing, when the language
is set to Japanese, strings which correspond to a control panel
message are displayed on the control panel using the JIS X0201-76
character set.
Example: Using the INFO STATUS Command
This example requests status information. The printer, in this case a
HP LaserJet 4 printer, returns a status code (10001), the message
displayed on the control panel (00 READY), and the online status
(ONLINE=TRUE).
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Using @PJL INFO STATUS <CR><LF>
@PJL ECHO 17:45:22.5 05-17-92 <CR><LF>
@PJL INFO STATUS <CR><LF>
<ESC>%-12345X
A sample HP LaserJet 4 printer response for this example
is shown here. Other PJL printers may produce a different
response.
@PJL ECHO 17:45:22.5 05-17-92<CR><LF>
<FF>
@PJL INFO STATUS<CR><LF>
CODE=10001<CR><LF>
DISPLAY="00 READY"<CR><LF>
ONLINE=TRUE<CR><LF>
<FF>
EN Status Readback Commands 7-25
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.
Printer language-specific variables are always indicated by
LPARM:personality in the response. Port-specific variables (HP
LaserJet 4PJ only) are always indicated by IPARM:port in the
response.
One portion of the returned information is a list of font sources (see
the following example). This list varies depending on which font
sources, such as ROM SIMMs and cartridges, are installed. Only
those font sources which are installed and contain valid fonts appear
on the list. For example, the S option appears only if one or more
permanent soft fonts currently exist.
The FONTNUMBER range lists the range of fonts for the current font
source only. The lower limit is 0 if the current font source contains a
default-marked font; otherwise the lower limit is 1. The upper range
limit varies depending on how many fonts are in the current font
source.
Note For information about any of the environment variables listed by the
INFO VARIABLES command, see the “PJL Environment Variables”
section in Chapter 6.
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.
7-26 Status Readback Commands EN
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Using the @PJL INFO <CR><LF>
@PJL COMMENT VARIABLES Command <CR><LF>
@PJL ECHO 07:22:03.8 12-03-92 <CR><LF>
@PJL INFO VARIABLES <CR><LF>
<ESC>%-12345X
A sample HP LaserJet 4 printer response for this example is shown
below. Other PJL printers may provide a somewhat different
response:
@PJL ECHO 07:22:03.8 12-03-92<CR><LF>
<FF>
@PJL INFO VARIABLES
COPIES=1 [2 RANGE]
1
999
PAPER=LETTER [9 ENUMERATED]
LETTER
LEGAL
A4
. . .
B5
ORIENTATION=PORTRAIT [2 ENUMERATED]
PORTRAIT
LANDSCAPE
FORMLINES=60 [2 RANGE]
5
128
MANUALFEED=OFF [2 ENUMERATED]
OFF
ON/
EN Status Readback Commands 7-27
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-28 Status Readback Commands EN
DENSITY=3 [2 RANGE READONLY]
1
5
LOWTONER=ON [2 ENUMERATED READONLY]
OFF
ON
INTRAY1SIZE=LETTER [9 ENUMERATED READONLY]
LETTER
LEGAL
A4
EXECUTIVE
COM10
MONARCH
C5
DL
B5
INTRAY2SIZE=LETTER [4 ENUMERATED READONLY]
LETTER
LEGAL
A4
EXECUTIVE
INTRAY3SIZE=LETTER [4 ENUMERATED READONLY]
LETTER
LEGAL
A4
EXECUTIVE
INTRAY4SIZE=COM10 [5 ENUMERATED READONLY]
COM10
MONARCH
C5
DL
B5
LPARM:PCL FONTSOURCE=I [1 ENUMERATED]
I
LPARM:PCL FONTNUMBER=0 [2 RANGE]
0
50
LPARM:PCL PITCH=10.00 [2 RANGE]
0.44
99.99
EN Status Readback Commands 7-29
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). The listing also contains the
current setting and the possible values for each type of status. For
more information concerning the different types of unsolicited status,
see the “USTATUS Command” section later in this chapter.
Example: Using the INFO USTATUS Command
This example requests information about the unsolicited status
variables. These are variables that can be used in the USTATUS
command. In this example, the HP LaserJet 4 printer replies that
there are 4 unsolicited status types: DEVICE, JOB, PAGE, and
TIMED. The current setting for each type of unsolicited status is
given, along with the possible variable values (for instance, OFF, ON,
and VERBOSE for device status).
<ESC>%-12345X@PJL <CR><LF>
@PJL ECHO 08:10:09.1 08-22-92 <CR><LF>
@PJL INFO USTATUS <CR><LF>
<ESC>%-12345X
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
<FF>
7-30 Status Readback Commands EN
A sample HP LaserJet 4 printer response for this example is shown
below. Responses for other PJL printers may vary.
Related Commands:
INQUIRE, ECHO, SET, DEFAULT, USTATUS
@PJL ECHO 08:10:09.1 08-22-92<CR><LF>
<FF>
@PJL INFO USTATUS<CR><LF>
DEVICE=OFF [3 ENUMERATED]<CR><LF>
OFF<CR><LF>
ON<CR><LF>
VERBOSE<CR><LF>
JOB=OFF [2 ENUMERATED]<CR><LF>
OFF<CR><LF>
ON<CR><LF>
PAGE=OFF [2 ENUMERATED]<CR><LF>
OFF<CR><LF>
ON<CR><LF>
TIMED=0 [2 RANGE]<CR><LF>
5<CR><LF>
300<CR><LF>
<FF>
EN Status Readback Commands 7-31
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. Use the USTATUS command
when you want to know:
Device status changes (such as printer open, paper jams, and
paper out conditions)
Job status changes (when a JOB command is encountered,
the job completely prints, or the job is canceled)
Page status changes (when each printed page reaches the
output tray)
Timed status (periodic status report at a specified time
interval)
Note Unlike solicited status, the USTATUS command does not have an
immediate response. Instead, unsolicited status messages are sent
only when the printer status changes.
Syntax:
@PJL USTATUS variable = value [<CR>]<LF>
Status Message Syntax:
@PJL USTATUS variable <CR><LF>
[1 or more lines of printable characters or <WS>
followed by <CR><LF>]
<FF>
7-32 Status Readback Commands EN
Parameters:
Variable Value Description
DEVICE 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.
OFF Disables unsolicited device status
JOB ON Enables unsolicited job status so
that the printer sends a status
message every time a job begins,
ends, or is canceled
OFF Disables unsolicited job status
PAGE ON Enables unsolicited page status so
that the printer sends a status
message every time a page
reaches the output tray
OFF Disables unsolicited page status
TIMED 5 to 300 Enables timed unsolicited status so
that the printer automatically sends
status at a specified time increment
(in seconds)
0 Turns TIMED USTATUS off
EN Status Readback Commands 7-33
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.
Unsolicited status, except for TIMED, can be turned off individually
using the OFF parameter, such as in the USTATUS JOB=OFF
command. TIMED status is turned off by setting it to zero.
Alternatively, all unsolicited device status can be turned off using the
USTATUSOFF command.
DEVICE Variable
The USTATUS DEVICE = value command prompts the printer to send
status messages when device changes occur. When DEVICE = ON,
the printer sends status information for all changes to printer status.
When DEVICE = VERBOSE, the printer also sends status
information for all PJL parser warnings and errors.
Part of the unsolicited status message sent to the host is a 5-digit
code that indicates the status condition. The first 2 digits divide the
status codes into different categories. The general status categories
are listed in the following table. (This is only a general summary of the
specified categories. The full status code listing is located in
Appendix D.)
If there is a “DISPLAY=string” portion of the status message, the
string is localized; the same message as that displayed on the control
panel appears in whichever language is being used.
7-34 Status Readback Commands EN
Note For those printers supporting Japanese printing, when the language
is set to Japanese, strings which correspond to a control panel
message are displayed on the control panel using the JIS X0201-76
character set.
Status Category Description
10
(10-000 to 10-999) Informational messages which do not indicate errors, such as
“Device was put online and is ready” or “device was put offline.
11
(11-000 to 11-999) These messages indicate background paper mount messages,
which means one of the available paper input sources is empty,
but another paper source is available and loaded with the correct
paper size. The printer remains online during background paper
mount conditions.
12
(12-000 to 12-999) Messages indicating background paper tray status, such as “tray
open” or “tray lifting”. The printer remains online during
background paper tray status conditions.
15
(15-000 to 15-999) These messages indicate output bin status, such as “output bin
full.” The printer goes offline when the output bin is full.
20
(20-000 to 20-999) This type of message denotes a PJL parser error. When this type
of error occurs, the entire command line is ignored.
25
(25-000 to 25-999) These messages are PJL parser errors. When this type of
message occurs, only part of the PJL command is ignored,
instead of the whole command as happens with 20-xxx errors.
27
(27-000 to 27-999) These messages are PJL semantic errors, indicating the
command syntax is acceptable, but command execution is not
possible for some reason. A situation that produces a semantic
error is trying to lock a paper tray when all other paper trays are
already locked.
30
(30-000 to 30-999) Most conditions in this category are auto-continuable, indicating
that if no operator action is taken, the printer automatically
continues if the auto-continue feature is set to true; if
auto-continue is set to false, the printer waits until an operator
presses either the Continue or On Line key. Examples of these
errors include non-fatal I/O errors or when a page is ejected
because it is too complex to format without the page protection
feature enabled.
32
(32-000 to 32-999) These conditions indicate PJL file system errors and their
corresponding error codes and control panel display strings.
EN Status Readback Commands 7-35
Using Unsolicited Device Status
The following example enables unsolicited status with the verbose
option. The printer response indicates that the printer is open.
<ESC>%-12345X@PJL <CR><LF>
@PJL USTATUS DEVICE = VERBOSE<CR><LF>
<ESC>%-12345X
A sample HP LaserJet 4 printer response for unsolicited device status
is shown here. For other printers, responses may vary.
35
(35-000 to 35-999) Messages indicating that operator intervention may be required.
The printer stays online and continues printing, with the potential
for reduced capability. Data may be lost.
40
(40-000 to 40-999) Messages indicating that operator intervention is required.
Printing halts until the condition is resolved. Examples include
paper jam, out of paper, and printer open conditions.
41
(41-000 to 41-999) This category of messages indicates a foreground paper mount.
These conditions occur when paper is out and there is no
alternate paper source available that is loaded with the correct
paper size. The printer is offline under these conditions.
42 and 44
(42-000 to 44-999) These status codes indicate paper jam errors and their
associated error codes and control panel display strings.
43
(43-000 to 43-999) Messages indicating PJL error codes and corresponding control
panel display strings for optional (external) paper handling
devices.
50
(50-000 to 50-999) Hardware errors. Examples include memory errors and fatal print
engine errors.
Status Category Description
@PJL USTATUS DEVICE<CR><LF>
CODE=40021<CR><LF>
DISPLAY="12 PRINTER OPEN"<CR><LF>
ONLINE=FALSE<CR><LF>
<FF>
7-36 Status Readback Commands EN
JOB Variable
The USTATUS JOB = ON command is used to notify the application
every time a JOB command is encountered, when the final page of a
job is in the output tray and an EOJ command has been received, and
when a job has been canceled (only for those printers that support job
cancellation such as the HP LaserJet 4000 series and 5000 series
printers). This is useful for spooling applications requiring feedback
indicating that a particular job has started or completely printed.
If job status is enabled and the printer receives a JOB command, it
resets the page count associated with the unsolicited page status and
returns a job status message.
Note Resetting the page count associated with unsolicited page status
affects only future pages. Pages that are already processed, but not
yet printed, are not affected.
The PAGES=number of pages information associated with unsolicited
EOJ status indicates the number of pages printed on paper. It does
not include any page images that were processed in non-printing
mode (see the “PAGE Variable” discussion.) When in the duplex
mode, each side of a duplex page counts as one page.
EN Status Readback Commands 7-37
Note Some HP LaserJet printers support job cancellation. For information
about unsolicited job status during job cancellation, see the “Job
Cancellation” section in Chapter 5.
Example: Using Unsolicited Job Status
This example turns on unsolicited job status so that the spooler can
be notified when the job starts and completely finishes. A job name is
included so that the spooler can match the status information with the
correct job. (The indented lines indicate a job sent to the spooler from
another application.)
<ESC>%-12345X@PJL <CR><LF>
@PJL USTATUS JOB = ON <CR><LF>
@PJL JOB NAME = "JOB 14993" <CR><LF>
<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . PCL Job . . . <ESC>E
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "JOB 14993" <CR><LF>
<ESC>%-12345X
A sample unsolicited HP LaserJet 4 printer response for this example
is as shown here. For other printers, the response may be different.
@PJL USTATUS JOB<CR><LF>
START<CR><LF>
NAME="JOB 14993"<CR><LF> (from the JOB command)
<FF>
[ . . time period while job is printing . . .]
@PJL USTATUS JOB<CR><LF>
END<CR><LF>
NAME="JOB 14993"<CR><LF> (from the EOJ command)
PAGES=3<CR><LF>
<FF>
7-38 Status Readback Commands EN
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. For
example, when printing two consecutive jobs, the unsolicited EOJ
status message associated with the first job may not arrive at the host
until after the JOB status message of the second job.
PAGE Variable
The USTATUS PAGE = ON command is used to notify the application
that a particular page finished printing. This is useful for applications
such as spoolers, where it is beneficial to monitor the job on a
page-by-page basis. For job recovery, described later in this chapter,
it is helpful to know which pages are completely printed.
The number of pages is incremented by one for each simplex page
formatted, and by two for each duplex page formatted. The page
count includes all pages printed and all pages processed in
non-printing mode since the last JOB or EOJ command. (This is
different than the PAGES = page count returned with the unsolicited
JOB status, which does not include pages processed in non-printing
mode.)
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL USTATUS PAGE = ON <CR><LF>
@PJL JOB <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . Four-page PCL Job . . . <ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ <CR><LF>
<ESC>%-12345X
EN Status Readback Commands 7-39
A sample HP LaserJet 4 printer response for unsolicited page status
is shown here. Other PJL printer responses may vary.
@PJL USTATUS PAGE<CR><LF>
1<CR><LF>
<FF>
@PJL USTATUS PAGE<CR><LF>
2<CR><LF>
<FF>
@PJL USTATUS PAGE<CR><LF>
3<CR><LF>
<FF>
@PJL USTATUS PAGE<CR><LF>
4<CR><LF>
<FF>
7-40 Status Readback Commands EN
TIMED Variable
The TIMED variable allows “automatic polling” of the printer without
host intervention and without exiting the current printer language
(back to PJL). Values from 5 to 300 indicate the time interval between
status messages in seconds. This feature is turned off by setting the
value to 0. The status message returned when this command is
enabled is similar to that solicited by the INFO STATUS command.
Note The accuracy of the timer may vary +/– 10% due to delays in data
transmission and other system variables. To allow for this use a timing
window in your application.
The “CODE=” portion indicates a status code number. See
Appendix D for a complete list of status code numbers. The
“DISPLAY=” portion of the returned status indicates the message
currently displayed on the control panel. The “ONLINE=” portion
indicates whether the printer is online or offline.
Note The “string” portion of the “DISPLAY=string” status message is
localized; the same message displayed on the control panel appears
in whichever language is being used.
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.
Example: Using Timed Unsolicited Status
In this example a status message is sent to the host every 30
seconds.
<ESC>%-12345X@PJL <CR><LF>
@PJL USTATUS TIMED = 30 <CR><LF>
<ESC>%-12345X
EN Status Readback Commands 7-41
A sample HP LaserJet 4 printer response is shown below. Other PJL
printers may respond differently.
Related Commands:
INFO, ECHO, INQUIRE, DINQUIRE, SET, USTATUSOFF
@PJL USTATUS TIMED<CR><LF>
CODE=10001<CR><LF>
DISPLAY="00 READY"<CR><LF>
ONLINE=TRUE<CR><LF>
<FF>
7-42 Status Readback Commands EN
USTATUSOFF Command
The USTATUSOFF command turns off all unsolicited status. This
command eliminates the need to send several commands to turn off
different types of USTATUS.
Syntax:
@PJL USTATUSOFF [<CR>]<LF>
Parameters:
There are no parameters for this command.
Example: Using the USTATUSOFF Command
This example uses the USTATUSOFF command to disable all
unsolicited status before specifying the desired unsolicited status,
which in this case is DEVICE status.
<ESC>%-12345X@PJL <CR><LF>
@PJL USTATUSOFF <CR><LF>
@PJL USTATUS DEVICE = ON <CR><LF>
<ESC>%-12345X
Related Commands:
USTATUS
EN Status Readback Commands 7-43
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 jobits
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.
The following PJL job shows an example that provides job recovery if
a problem occurs. Notice that the USTATUS JOB and USTATUS
PAGE commands are sent prior to the JOB command. If a power
failure or another problem interrupts the job, the unsolicited page
status indicates the last completely printed page.
Note The USTATUS JOB command is not strictly required for job recovery.
However, it is useful for tracking jobs by name, not just page number.
The following example uses the command to show the difference
between the page count returned by the unsolicited job status and the
unsolicited page status.
Sending the Initial Job
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Providing for Recovery <CR><LF>
@PJL USTATUS JOB = ON <CR><LF>
@PJL USTATUS PAGE = ON <CR><LF>
@PJL JOB NAME = "1st Shot" <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E ... 100-page PCL job ... <ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "End of 1st Shot" <CR><LF>
<ESC>%-12345X
7-44 Status Readback Commands EN
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). In this case, the printer processes the first 25 pages
in non-printing mode, and then prints from page 26 through the end of
the job.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Recovering Crashed Job <CR><LF>
@PJL USTATUS JOB = ON <CR><LF>
@PJL USTATUS PAGE = ON <CR><LF>
@PJL JOB NAME = "2nd Try" START = 26 <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E ...Same 100-page PCL job ...<ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "End of Recovery" <CR><LF>
<ESC>%-12345X
In the job above, the first unsolicited page status message is sent
after page 26 lands in the output tray. For an HP LaserJet 4 printer,
the response appears as shown below. Other PJL printers may
respond differently.
@PJL USTATUS PAGE<CR><LF>
26<CR><LF>
<FF>
EN Status Readback Commands 7-45
Additional page status messages are sent after each succeeding
page lands in the output tray. After the remaining 75 pages of the job
are completely printed the host receives unsolicited page and job
status as follows:
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.
@PJL USTATUS PAGE<CR><LF>
100<CR><LF>
<FF>
@PJL USTATUS JOB<CR><LF>
END<CR><LF>
NAME="End of Recovery"<CR><LF>
PAGES=75<CR><LF>
<FF>
7-46 Status Readback Commands EN
EN Device Attendance Commands 8-1
8Device 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.
OPMSG displays a specified “operator message” on the
printer control panel and takes the printer offline.
STMSG displays the specified “status message” on the printer
control panel and takes the printer offline. It returns the name
of the key that the operator pressed to put the printer back
online.
Note Some PJL printers do not support the device attendance commands.
See Appendix A for a list of features supported by each printer.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
8-2 Device Attendance Commands EN
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.
Syntax:
@PJL RDYMSG DISPLAY = "message" [<CR>]<LF>
Parameters:
DISPLAY = "message" — The variable message can be any
combination of printable characters (except quotation marks,
character 34) and spaces, with a limit of 1 line of 16 characters
(see “Comments” below). The message variable is a string
and must be enclosed in double quotes as shown in the
command syntax.
Comments:
Since the RDYMSG command leaves the printer online, it can be
used to display the name of the person printing the current job, or
other pertinent information, while a job is printing. It also can be used
in network environments to display the name of the printer.
Note For the HP LaserJet 4000, 5000, 8000, 8100, Color LaserJet 4500,
and 8500 printers (and newer), use the JOB DISPLAY="display
text" method to display a message on the front panel during a
specific job. For these printers, RDYMSG only replaces the lowest
priority message, which is typically only the READY message.
The command @PJL RDYMSG DISPLAY = "" (or performing a Menu
Reset—“09 Menu Reset”) returns the display to the normal ready
message.
Parameter Functional Range Default
DISPLAY = "message" Roman-8 characters 33 and
35 thru 255, <SP> N/A
EN Device Attendance Commands 8-3
Note This command replaces the lowest priority 00 READY message. If
any higher priority message is displayed (for example, toner low), the
new ready message does not appear until these outstanding
conditions are cleared.
For HP LaserJet 4PJ, 4V, 4MV, 5Si, 5SiMx, and 5Si Mopier printers, if
the LANG variable is set to Japanese, the message is displayed using
the JIS X0201-76 character set.
For the LaserJet 4000, 5000, 8000, and 8100 series printers, if LANG
is set to POLISH, CZECH, or HUNGARIAN, messages are displayed
using the Latin 2 (ISO 8859/2) character set. If LANG is RUSSIAN,
messages are displayed using Cyrillic (ISO 8859/5). For
LANG=TURKISH, the display is in Latin 5 (ISO 8859/9). This is also
true for the HP Color LaserJet 4500 printer, except there is no support
for Turkish or Hungarian on this printer.
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. When this command
is used, the printer returns DISPLAY LINES=value and DISPLAY
CHARACTER SIZE=value as part of the response message. For
example, HP LaserJet 4 and 4M printers return DISPLAY LINES=1,
DISPLAY CHARACTER SIZE=16, indicating that the displayed
message is limited to 1 line of 16 characters.
Example: Using the RDYMSG Command
This example simulates a spooler that prints a job from another
application. The spooler uses the RDYMSG command to display the
name of the person printing the job (while the job is printing).
Note In the example below, the @PJL JOB DISPLAY command has been
added to display the job name on the newer printers. (See the note on
page 8-2.)
After the job is printed, the spooler restores the normal ready
message. (The indented command lines indicate those sent by the
printing application; the remaining lines are sent by the spooler.)
8-4 Device Attendance Commands EN
<ESC>%-12345X@PJL <CR><LF>
@PJL JOB NAME = "Terry's Job" <CR><LF>
@PJL JOB DISPLAY = "Terry's Job" <CR><LF>
@PJL RDYMSG DISPLAY = "TERRY'S JOB" <CR><LF>
<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . PCL Job . . .<ESC>E
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Restore READY message <CR><LF>
@PJL RDYMSG DISPLAY = "" <CR><LF>
@PJL EOJ NAME = "End of Terry's Job" <CR><LF>
<ESC>%-12345X
Related Commands:
OPMSG, STMSG, INFO CONFIG
EN Device Attendance Commands 8-5
OPMSG Command
The OPMSG command prompts the printer to display the specified
message and go offline. Use this command to display a message and
halt printing until the operator presses the On Line, Continue, or
Reset key.
Syntax:
@PJL OPMSG DISPLAY = "message" [<CR>]<LF>
Parameters:
DISPLAY = "message" — The variable message can be any
combination of printable characters (except quotation marks,
character 34) and spaces or horizontal tab characters, with a
limit of 1 line of 16 characters (see “Comments” below). The
message variable is a string and must be enclosed in
quotation marks as shown in the command syntax.
Comments:
On some HP printers, the first two display characters blink. To avoid
blinking, begin the message with two blank spaces.
Some HP LaserJet printers may have a different limit for the number
of display lines and number of display characters. To request the
display limitations, use the INFO CONFIG command. The printer
returns DISPLAY LINES=value and DISPLAY CHARACTER
SIZE=value as part of the response message. For example, the HP
LaserJet 4 and 4M printers return DISPLAY LINES=1, DISPLAY
CHARACTER SIZE=16, indicating that the displayed message is
limited to 1 line of 16 characters.
Parameter Functional Range Default
DISPLAY = "message" Roman-8 characters 33 and
35 – 255, <SP>,<HT> N/A
8-6 Device Attendance Commands EN
Note For HP LaserJet 4PJ, 4V, 4MV, 5Si, 5SiMx, 5Si Mopier printers, if the
LANG variable is set to Japanese, the message is displayed in the
JIS X0201-76 character set.
For the LaserJet 4000, 5000, 8000, and 8100 series printers, if LANG
is set to POLISH, CZECH, or HUNGARIAN, messages are displayed
using the Latin 2 (ISO 8859/2) character set. If LANG is RUSSIAN,
messages are displayed using Cyrillic (ISO 8859/51). For
LANG=TURKISH, the display is in Latin 5 (ISO 8859/9). This is also
true for the HP Color LaserJet 4500 printer, except there is no support
for Turkish or Hungarian on this printer.
Example: Using the 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. Once one of the keys is pressed, the first page is
printed. Then “LOAD PLAIN PAPER” is displayed. When the On Line
or Continue key is pressed, the printer prints the rest of the job.
<ESC>%-12345X@PJL <CR><LF>
@PJL JOB NAME = "JOB 111753" <CR><LF>
@PJL OPMSG DISPLAY = "LOAD LETTERHEAD"<CR><LF>
@PJL <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E This is "Letterhead"(page 1)<ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "EOJ 111753" <CR><LF>
<ESC>%-12345X
Related Commands:
RDYMSG, STMSG, INFO CONFIG
EN Device Attendance Commands 8-7
STMSG Command
The STMSG command prompts the printer to display the specified
message, go offline, and return a status message indicating which
key the operator pressed to return the printer online. Use this
command to display a customized message, to halt printing until the
operator presses the On Line, Continue, or Reset key, and to take a
different action depending on which key the user presses.
Syntax:
@PJL STMSG DISPLAY = "message" [<CR>]<LF>
Return Syntax:
@PJL STMSG DISPLAY="message" <CR><LF>
key <CR><LF>
<FF>
Parameters:
DISPLAY = "message" — The variable message can be any
combination of printable characters (except quotation marks,
character 34) and spaces or horizontal tab characters, with a
limit of 1 line of 16 characters (see comments below). The
message variable is a string and must be enclosed in double
quotes as shown in the command syntax.
key — This variable is returned with the status response after
the operator presses one of three control panel keys. The key
variable has a value of either ONLINE, RESET, JOBCANCEL
or CONTINUE, depending on which key the operator presses
to return the printer online.
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.
Parameter Functional Range Default
DISPLAY = "message" Roman-8 characters 33 and
35 – 255, <SP>,<HT> N/A
key ONLINE, RESET,
CONTINUE, or
JOBCANCEL
N/A
8-8 Device Attendance Commands EN
For the LaserJet 4000, 5000, 8000, and 8100 series printers, if LANG
is set to POLISH, CZECH, or HUNGARIAN, messages are displayed
using the Latin 2 (ISO 8859/2) character set. If LANG is RUSSIAN,
messages are displayed using Cyrillic (ISO 8859/5). For
LANG=TURKISH, the display is in Latin 5 (ISO 8859/9). This is also
true for the HP Color LaserJet 4500 printer, except there is no support
for Turkish or Hungarian on this printer.
Comments:
This command is useful for making a programming decision based on
which key the operator presses. For example, the application can
prompt the user to press Reset, and then wait until the Reset key is
pressed.
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. The printer returns
DISPLAY LINES=value and DISPLAY CHARACTER SIZE=value as
part of the response message. For example, HP LaserJet 4 and 4M
printers return DISPLAY LINES=1, DISPLAY CHARACTER SIZE=16,
indicating that the displayed message is limited to 1 line of 16
characters.
EN Device Attendance Commands 8-9
Example: Using the STMSG Command
This example prompts the printer to display “LOAD FORM 1040” and
goes offline. The printer returns the name of the key that is pressed to
resume operationin this case, the Continue key.
<ESC>%-12345X@PJL <CR><LF>
@PJL <CR><LF>
@PJL STMSG DISPLAY = "LOAD FORM 1040" <CR><LF>
@PJL <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . PCL job . .<ESC>E<ESC>%-12345X
The returned message, if the operator presses the Continue key, is:
@PJL STMSG DISPLAY="LOAD FORM 1040"
CONTINUE
<FF>
Related Commands:
OPMSG, RDYMSG, INFO CONFIG
8-10 Device Attendance Commands EN
EN PJL File System Commands 9-1
9PJL File System
Commands
Introduction
Several HP LaserJet printers have mass storage capabilities for
storing fonts, macros, electronic forms, and other information.
Printers such as the HP LaserJet 4000 and 5000 series printers have
an optional disk drive. The HP LaserJet 4000, 5000 series and some
other printers support flash memory, which is non-volatile memory
contained in modules that are inserted into the printer's SIMM/DIMM
slots. Preferably, the printer's mass memory is managed by a
host-based mass storage application that supports interaction
between host software and the printer disk and/or flash memory.
However, users in some environments might not have a mass storage
management application. The PJL file system commands described
in this chapter are provided in order to make use of printer- based
mass storage when a mass storage management application is not
available. The PJL file system commands described in this chapter
are used the same on both types of printer mass storage (printer disk
drive and flash memory).
Note For information about creating a host-based mass storage
management application, contact your HP support representative.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
9-2 PJL File System Commands EN
The PJL file system consists of eight commands:
These commands are described on the following pages. For feature
support information, see Appendix A.
z FSAPPEND z FSINIT
z FSDELETE z FSMKDIR
z FSDIRLIST z FSQUERY
z FSDOWNLOAD z FSUPLOAD
EN PJL File System Commands 9-3
FSAPPEND Command
The FSAPPEND command appends data to an existing file, or if the
file doesn't exist, creates the file and loads it with the given data.
Syntax:
@PJL FSAPPEND FORMAT:BINARY SIZE=integer
~NAME = "pathname" [<CR>]<LF>
<binary data><ESC>%-12345X
Parameters:
SIZE = integer The size variable indicates the number of
bytes in the file to be appended. The size indicates the number
of bytes immediately following the <LF> to the next UEL
command.
NAME = "pathname" The variable pathname is similar to
an MS-DOS filename, except it is not limited to eight
characters and a three-character extension. The pathname
may contain up to 100 Roman-8 characters per item in the
range 01 through 255, but the first and last characters must not
be a space character (character 32), or character 229. Each
item is delimited by the backslash “ \ ” character. If more than
one backslash character is used (such as \\\\ ), the file system
treats it as one backslash. The maximum number of
characters in a pathname is 255; the maximum number of
items is 9. The volume of the PJL file system is required in the
pathname (the volume range is 0, 1, and 2, depending on the
printer [prior to LaserJet 4000, the only valid volume was 0] —
see the examples on the following page).
Note For the FSAPPEND command, the pathname must be a file (not a
directory).
Parameter Functional Range Default
SIZE=integer 0 to 231 1 N/A
NAME = "pathname" Roman-8 characters 01 thru
255 N/A
9-4 PJL File System Commands EN
Examples of valid pathnames include:
<binary data> This is the binary file data to be appended or
used to create a new file.
Example: Using the FSAPPEND Command
This example demonstrates using the FSAPPEND command to
append a file.
@PJL FSAPPEND FORMAT:BINARY
~NAME = "0:\pcl\macros\OurLogo"
~SIZE = 35<CR><LF>
35 bytes of macro data<ESC>%-12345X
Related Commands:
FSDELETE, FSDIRLIST, FSDOWNLOAD, FSINIT, FSMKDIR,
FSQUERY, FSUPLOAD
0: Volume 0
0:\ Root directory on volume 0
0:\MyDir \MyDir directory
0:\My/Dir\Gen/Dir \Gen/Dir directory in \My/Dir
directory
0:\dir0\file1 file1 file in \dir0 directory
0:\DIR1\DIR2\File1 File1 file in \DIR2 directory in
\DIR1 directory
0:\DIR1\Prefix/Suffix Prefix/Suffix file in \DIR1
directory
EN PJL File System Commands 9-5
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.
Syntax:
@PJL FSDIRLIST NAME = "pathname"
~ENTRY=integer COUNT=integer[<CR>]<LF>
Response Syntax:
@PJL FSDIRLIST NAME = "pathname"
~ENTRY=integer[<CR>]<LF>
filename TYPE=FILE SIZE=integer<CR><LF>
filename TYPE=DIR<CR><LF>
...
<FF>
If the pathname is invalid:
@PJL FSDIRLIST NAME = "pathname"[<CR>]<LF>
FILEERROR=number<CR><LF>
<FF>
Parameters:
NAME = "pathname"for the FSDIRLIST command,
pathname must be a directory (not a file). For a complete
description of the NAME parameter, see the NAME =
"pathname" description on pages 9-2 and 9-3.
ENTRY = integer — Every file or subdirectory that has been
created on the file system is considered an entry. The entry
variable is the number of the starting entry to be displayed. For
Parameter Functional Range Default
NAME="pathname" Roman-8 characters 01
thru 255 N/A
ENTRY=integer 1 to 231 – 1 N/A
COUNT=integer 1 to 231 – 1 N/A
9-6 PJL File System Commands EN
example, to display the directory listing beginning with line 5,
you would use ENTRY=5. The entry value must be greater
than 0. Also, if the entry value is larger than the actual number
of entries, the response will not include any entries.
COUNT = integer The count variable specifies the number
of entries to be returned. If the specified count is greater than
the actual number of entries in the specified range, the actual
number of entries will be displayed.
Printer Responses
The printer response indicates the number of bytes in the listed files
(SIZE=number of bytes). If the pathname is invalid, a FILEERROR
number is returned. This error number is equivalent to the PJL File
System error numbers (32xxx) listed in Appendix D, minus the 32 and
the leading zeros. For example, if the printer returns FILEERROR=17,
the error is equivalent to status code 32017 (Invalid parameter),
meaning the FSDIRLIST command contained an invalid parameter.
See PJL File System Errors (32xxx) in Appendix D for a complete list
of error codes.
Example: Using the FSDIRLIST Command
This example demonstrates using the FSDIRLIST command to return
a directory list from the printer's file system.
@PJL FSDIRLIST NAME = "0:\pcl\macros" ENTRY=1
~COUNT=25 <CR><LF>
A sample response would appear similar to this:
@PJL FSDIRLIST NAME = "0:\pcl\macros"
~ENTRY=1<CR><LF>
. TYPE=DIR<CR><LF>
.. TYPE=DIR<CR><LF>
invoice.prn.rl TYPE=FILE SIZE=1619<CR><LF>
page1.prn.tf TYPE=FILE SIZE=2260<CR><LF>
gen_cond.prn.mt TYPE=FILE SIZE=900<CR><LF>
pclResourceFile TYPE=FILE SIZE=420<CR><LF>
Related Commands:
FSAPPEND, FSDELETE, FSDOWNLOAD, FSINIT, FSMKDIR,
FSQUERY, FSUPLOAD, INFO FILESYS
EN PJL File System Commands 9-7
FSDELETE Command
The FSDELETE command is used to delete files or empty directories
from the printer's file system.
Syntax:
@PJL FSDELETE NAME = "pathname" [<CR>]<LF>
Parameters:
NAME = "pathname"For a complete description of the
NAME parameter, see the NAME = "pathname" description on
pages 9-2 and 9-3.
Example: Using the FSDELETE Command
This example demonstrates using the FSDELETE command to delete
a file from the printer's file system.
@PJL FSDELETE NAME = "0:\pcl\macros\Name: HP
~Logo; Application; ABC; Manufacturer: XYZ;
~Version: 7.9; Date: 8/17/94" <CR><LF>
Related Commands:
FSAPPEND, FSDIRLIST, FSDOWNLOAD, FSINIT, FSMKDIR,
FSQUERY, FSUPLOAD, INFO FILESYS
Parameter Functional Range Default
NAME = "pathname" Roman-8 characters
01 thru 255 N/A
9-8 PJL File System Commands EN
FSDOWNLOAD Command
The FSDOWNLOAD command downloads a file to the printer file
system. If a file with the same name exists, the downloaded file
overwrites it.
Syntax:
@PJL FSDOWNLOAD FORMAT:BINARY SIZE=int
~NAME = "pathname" [<CR>]<LF>
<binary data><ESC>%-12345X
Parameters:
SIZE = integer — The size variable indicates the number of
bytes in the file to be downloaded. The size indicates the
number of bytes immediately following the <LF> to the next
UEL command.
NAME = "pathname" For the FSDOWNLOAD 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 – 9-3.
<binary data> — This is the binary file data to be
downloaded, such as font files and macro data.
Example: Using the FSDOWNLOAD Command
This example demonstrates using the FSDOWNLOAD command to
download a file to the printer file system.
@PJL FSDOWNLOAD FORMAT:BINARY
~NAME = "0:\pcl\macros\Name: HP Logo;
~Application; ABC; Manufacturer: XYZ;
~Version: 7.9; Date:8/7/94" SIZE = 22<CR><LF>
22 bytes of macro data<ESC>%-12345X
Related Commands:
FSAPPEND, FSDELETE, FSDIRLIST, FSINIT, FSMKDIR, FSQUERY,
FSUPLOAD, INFO FILESYS
Parameter Functional Range Default
SIZE=integer 0 to 231 – 1 N/A
NAME = "pathname" Roman-8 characters
01 thru 255 N/A
EN PJL File System Commands 9-9
FSINIT Command
The FSINIT command is used to initialize the printer's mass storage
file system. This FSINIT command must be part of a secure job.
Syntax:
@PJL FSINIT VOLUME = "pathname" [<CR>]<LF>
Parameters:
* Volumes 1: and 2: are only supported on the HP LaserJet 4000 and
newer printers.
VOLUME = "pathname"The variable pathname must be a
volume.
Example: Using the FSINIT Command
This example demonstrates using the FSINIT command to initialize
volume 0 of the printer file system.
@PJL FSINIT VOLUME = "0:" [<CR>]<LF>
Related Commands:
FSAPPEND, FSDELETE, FSDIRLIST, FSDOWNLOAD, FSMKDIR,
FSQUERY, FSUPLOAD, INFO FILESYS
Parameter Functional Range Default
VOLUME = "pathname" 0:, 1:*, 2:* N/A
9-10 PJL File System Commands EN
FSMKDIR Command
The FSMKDIR command creates the specified directory on the
printer file system.
Syntax:
@PJL FSMKDIR NAME = "pathname" [<CR>]<LF>
Parameters:
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.
Example: Using the FSMKDIR Command
The following two command lines demonstrate using the FSMKDIR
command to create directories on the printer file system.
@PJL FSMKDIR NAME = "0:\pcl" [<CR>]<LF>
@PJL FSMKDIR NAME = "0:\pcl\macros" [<CR>]<LF>
Related Commands:
FSAPPEND, FSDELETE, FSDIRLIST, FSDOWNLOAD, FSINIT,
FSQUERY, FSUPLOAD, INFO FILESYS
Parameter Functional Range Default
NAME = "pathname" Roman-8 characters
01 thru 255 N/A
EN PJL File System Commands 9-11
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.
Syntax:
@PJL FSQUERY NAME = "pathname" [<CR>]<LF>
Response Syntax:
If pathname is a file:
@PJL FSQUERY NAME="pathname" TYPE=FILE
~SIZE=integer<CR><LF>
<FF>
If pathname is a directory:
@PJL FSQUERY NAME="pathname" TYPE=DIR<CR><LF>
<FF>
If the pathname is invalid:
@PJL FSQUERY NAME="pathname"<CR><LF>
~FILEERROR=number<CR><LF>
<FF>
Parameters:
NAME = "pathname"For a complete description of the
NAME parameter, see the NAME = "pathname" description on
pages 9-2 and 9-3.
Parameter Functional Range Default
NAME="pathname" Roman-8 characters
01 thru 255 N/A
9-12 PJL File System Commands EN
Printer Responses
The printer response indicates the number of bytes in the queried
files. If the pathname is invalid, a FILEERROR number is returned.
The returned number is equivalent to the PJL File System errors
(32xxx) listed in Appendix D, only without the 32 and the leading
zeros. For example, if the printer returns FILEERROR=7, the error is
equivalent to status code 32007 (Illegal name), meaning the
FSQUERY command contained an illegal NAME variable. 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.
@PJL FSQUERY NAME = "0:\pcl\file1" <CR><LF>
@PJL FSQUERY NAME = "0:\pcl\macro\" <CR><LF>
Related Commands:
FSAPPEND, FSDELETE, FSDIRLIST, FSDOWNLOAD, FSINIT,
FSMKDIR, FSUPLOAD, INFO FILESYS
EN PJL File System Commands 9-13
FSUPLOAD Command
The FSUPLOAD command uploads a file, or a part of a file, from the
printer file system to the host.
Syntax:
@PJL FSUPLOAD NAME = "pathname"
~OFFSET=<number> SIZE=<number>[<CR>]<LF>
Response Syntax:
If the pathname is valid:
@PJL FSUPLOAD FORMAT:BINARY
~NAME = "pathname" OFFSET=<number>
~SIZE=<number><CR><LF>
<SIZE bytes of file data>
<FF>
If the pathname is invalid:
@PJL FSUPLOAD NAME = "pathname"<CR><LF>
FILEERROR=<number><CR><LF>
<FF>
Parameters:
NAME = "pathname" For the FSUPLOAD command, the
variable pathname must be a file name (not a directory). For a
complete description of the NAME parameter, see NAME =
"pathname" on pages 9-2 to 9-3.
OFFSET = integer — The offset variable specifies the offset,
from the beginning of the file, indicating the point to begin
uploading.
Parameter Functional Range Default
NAME="pathname" Roman-8 characters
01 thru 255 N/A
OFFSET=integer 0 to 231 1 N/A
SIZE=integer 0 to 231 1 N/A
9-14 PJL File System Commands EN
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. The returned number is equivalent to the PJL File System
errors (32xxx) listed in Appendix D, only without the 32 and the
leading zeros. For example, if the printer returns FILEERROR=7, the
error is equivalent to status code 32007 (Illegal name), meaning the
FSUPLOAD 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 FSUPLOAD Command
This example demonstrates using the FSUPLOAD command to
upload 512 bytes from a printer file, beginning with byte 25.
@PJL FSUPLOAD NAME = "0:\pcl\filenumber5"
~OFFSET=25 SIZE = 512<CR><LF>
Related Commands:
FSAPPEND, FSDELETE, FSDIRLIST, FSDOWNLOAD, FSINIT,
FSMKDIR, FSQUERY, INFO FILESYS
EN PJL File System Commands 9-15
File System Example
The following is a sequence of commands that can be sent to any
printer with flash memory or a hard disk. The example downloads and
calls a macro from the flash memory or hard disk. See the sections
following this example for a description of each command.
<ESC>%-12345X
~@PJL FSMKDIR NAME ="0:\pcl" <CR><LF>
@PJL FSMKDIR NAME ="0:\pcl\macros" <CR><LF>
@PJL FSDOWNLOAD FORMAT:BINARY
~NAME ="0:\pcl\macros\a_macro" SIZE=29<CR><LF>
<ESC>*p900x1500YThis is the macro
~<ESC>%-12345X
~<ESC>%-12345X@PJL ENTER LANGUAGE=PCL <CR><LF>
<ESC>&f1Y
<ESC>&n8Wa_macro
<ESC>&f4X
<ESC>E
<ESC>%-12345X
~@PJL DEFAULT DISKLOCK = ON <CR><LF>
Note The ~ symbol indicates that this text string is part of the preceding
line. That is, there should be no carriage return or line feed control
codes at the end of the preceding line.
First Command
<ESC>%-12345X
This PJL command causes the printer to exit the active printer
language and give control to PJL.
Second Command
~@PJL FSMKDIR NAME ="0:\pcl" <CR><LF>
This PJL command creates the pcl directory on volume 0: of the
printer's file system.
Third Command
@PJL FSMKDIR NAME ="0:\pcl\macros" <CR><LF>
9-16 PJL File System Commands EN
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<CR><LF>
<ESC>*p900x1500YThis is the macro
~<ESC>%-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). Fourth, it contains the
binary data to be downloaded (<ESC>*p900x1500YThis is the
macro).
Fifth Command
~<ESC>%-12345X@PJL ENTER LANGUAGE=PCL <CR><LF>
This command explicitly enters the PCL language.
Sixth Command
<ESC>&f1Y
The Macro ID command sets the current macro ID to 1.
Seventh Command
<ESC>&n8Wa_macro
The Alphanumeric ID command associates the current macro ID to
the string ID which is a_macro. In this example, the string name must
be the same filename used with the FSDOWNLOAD command in the
fourth command sequence.
EN PJL File System Commands 9-17
The Alphanumeric ID command needs to know the number of bytes
being sent after the terminating W. In this example, we are sending 8
bytes. The first byte, which is the symbol, is the control-byte (The
symbol is the character with a decimal value of 005). This control byte
indicates that the Alphanumeric ID command will be used to
associate the current macro ID to the string ID. The other 7 bytes are
the characters that make up the string ID (a_macro).
Eighth Command
<ESC>&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 <ESC>&f2X and <ESC>&f3X will also work here.
Ninth Command
<ESC>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.
Tenth Command
<ESC>%-12345X
This PJL command causes the printer to exit the active printer
language and return control to PJL.
Eleventh Command
~@PJL DEFAULT DISKLOCK = ON <CR><LF>
This command sets the disk or flash memory to read-only. In this
state, it is not possible to format the disk, download fonts or macros,
or delete fonts or macros.
9-18 PJL File System Commands EN
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. This directory listing
identifies all directories, file names, and file sizes. A directory listing
can be printed from the printer's control panel by selecting either the
Disk Directory page or the Flash Directory page in the Test menu.
Note A file system command sequence can be typed in a text editor and
copied to the printer, but there are some places where binary data
needs to be sent. This is not a problem as long as there is an ASCII
character equivalent to the necessary decimal value. For example,
the decimal value for Escape is 027. There is an ASCII character ()
for this decimal value, thus it can be typed in a text editor.
There might be times when a text editor will not allow you to type a
character with a certain decimal value. For example, you might need
to send the character whose decimal value is 000. There is no ASCII
character for that value, thus a text editor will not allow you to send
this byte to the printer.
EN Job Management 10-1
10 Job Management
Introduction
Some printers, such as the HP LaserJet 8100 and 8500 series,
provide the capability for storing print jobs on the printer's hard disk.
These jobs can be accessed and printed using PJL commands as
described in this chapter.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
The HP LaserJet 8100 and 8500 series printers differ in the way they
support job management. Separate descriptions and examples are
given for each printer.
Note Job retention features are not available in printers that do not have a
hard disk. Software should query the printer to determine if these
features are available and only send the PJL commands to utilize
them if they are available.
HP LaserJet 8100 Printer
Using the SET command and the PJL variables described in this
chapter, the application can assign the job a job name and a user
name, store specific jobs for later printing, print one proof copy and
hold the job until the job is proofed, and add password (HOLDKEY)
protection to a held job.
The following variables are used for job management:
zHOLD zJOBNAME
10-2 Job Management EN
Each variable is described in the following paragraphs. The variable
descriptions are followed by a job management example.
HOLD Variable
Specifies the retention classification of the job, indicating whether the
job is printed immediately or stored.
HOLDKEY Variable
The HOLDKEY variable acts as a password to protect a held job. It is
a four-digit string that is specified in the job stream. A HOLDKEY
value must be specified if HOLDTYPE is PRIVATE (otherwise, the job
will be considered PUBLIC). The variable value can be any four-digit
value from 0000 to 9999. The default value is “”.
zHOLDKEY zUSERNAME
zHOLDTYPE
Values Value Description
(OFF) The job is printed but not retained on the disk after
printing. This is the default.
ON The requested number of copies are printed and the
job is temporarily stored on disk. The job is then
available for printing additional copies through the
control panel and through JetAdmin. The number of
jobs that can be stored is limited by disk space. When
the limit is exceeded, the oldest job is removed from
the disk.
PROOF One copy of the job is printed and remaining copies
are stored on disk. The job is then available to select
for printing via the control panel menus or through
JetAdmin. The job will be deleted from the disk when
the disk space is needed for another Proof and Hold
job but only after the additional copies have been
printed. It will also be deleted when the user sends
down another Proof and Hold job with the same job
name, or if the user explicitly deletes the job.
STORE The job is not printed immediately but is retained on
disk. The job is available to select for printing via the
control panel (PRIVATE/ STORED JOBS menu) or
through JetAdmin. The job will not be deleted from the
disk after printing.
EN Job Management 10-3
HOLDTYPE Variable
The HOLDTYPE variable specifies the privacy level of the job. Valid
values are PUBLIC and PRIVATE.
JOBNAME Variable
This variable is the job name that may be generated by the driver or
obtained from user input. This value may be used in conjunction with
the USERNAME to select a job from the control panel. If the job
stream does not contain a JOBNAME, the printer will assume no job
name. Each subsequent job that is sent down by the same user will
replace the user's last job on disk. The driver is responsible for
determining the size of the printer's control panel and sending a string
of appropriate length.
Note To determine the size of the printer's control panel, use the INFO
CONFIG command, which is explained in Chapter 7. The returned
DISPLAY LINES value indicates the number of lines on the display,
and the DISPLAY CHARACTER SIZE value indicates the number of
characters that can be displayed.
Value Value Description
PUBLIC The job does not require a HOLDKEY value in order to
be released for printing. This is the default value.
PRIVATE The job requires a HOLDKEY value in order to be
released for printing. If the HOLD-TYPE is set to
PRIVATE, a HOLDKEY value must be specified. If no
HOLDKEY is specified, the job will be considered
PUBLIC.
Value Value Description
"jobname string" This string is limited by the size of the printer's
control panel display (up to 80 characters).
10-4 Job Management EN
USERNAME Variable
This variable is the user name that is obtained from user input or by
the driver through some internal method. If the job stream does not
contain a USERNAME the default value will be "NO USER NAME".
The driver is responsible for determining the size of the printer's
control panel and sending a string of appropriate length.
Example: Job Management HP LaserJet 8100
The following PJL example demonstrates job management. It creates
a secure Proof and Hold job that will print one copy and then be held
until the user selects it for printing via the control panel or JetAdmin.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT **Give job a name** <CR><LF>
@PJL SET JOBNAME = "Job_12345" <CR><LF>
@PJL COMMENT **Specify a user name**<CR><LF>
@PJL SET USERNAME = "Slim_Jim" <CR><LF>
@PJL COMMENT **Set Quantity to Print**<CR><LF>
@PJL SET QTY = 4 <CR><LF>
@PJL COMMENT **Specify Proof & Hold**<CR><LF>
@PJL SET HOLD = PROOF<CR><LF>
@PJL COMMENT **Specify private job**<CR><LF>
@PJL SET HOLDTYPE = PRIVATE<CR><LF>
@PJL SET HOLDKEY = "0246"<CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
%!PS-ADOBE . . . PostScript print job . . . ^D
~<ESC>%-12345X
Value Value Description
"username string" This string is limited by the size of the
printer's control panel display. The default
value is "NO USER NAME".
EN Job Management 10-5
HP LaserJet 8500 Printer
The HP LaserJet 8500 printer implements job management in a
different way than the HP LaserJet 8100 printer. For this printer, only
the HOLD = JOB option is supported for the HOLD command. The
HOLDTYPE and HOLDKEY variables are not supported. (See the
descriptions of the HOLD, JOBNAME and USERNAME variables for
more information about their limitations.)
The printer's Proof and Print feature allows the user a fast and easy
way to proof one copy of the job, then quickly print any remaining
copies without waiting for data transmission or processing time for the
subsequent copies. Using the printer's control panel buttons,
selecting the PROOF AND PRINT menu item displays the JOB
NAME and USER NAME on the control panel display. The ITEM keys
can then be used to scroll through the list of printable jobs currently
on the disk. The VALUE keys can be used to change the number of
copies selected. Choosing SELECT launches the job. Once the job is
launched, the number of copies cannot be changed.
When all copies of the job have been completely printed, the file is
removed from the disk. Pressing CANCEL JOB while the job is
printing or when the JOBNAME is displayed on the control panel
cancels printing and deletes the file from the disk.
Turning the printer power off or the occurrence of non-correctable
errors causes the printer to save the file on the printer's disk. The
number of copies completed will not be updated from the original
number if the job does not complete without error. If all copies of the
Proof and Print files have not been printed, the job will remain on the
disk indefinitely until the user specifically deletes the job. The user
can delete the job using the control panel by selecting the job and
setting the number of copies to zero. Alternatively they can select the
job and press the Job Cancel key.
10-6 Job Management EN
HOLD Variable
Specifies the retention classification of the job, indicating whether the
job is printed immediately or stored.
JOBNAME Variable
This variable is the job name that may be generated by the driver or
obtained from user input. This value may be used in conjunction with
the USERNAME to select a job from the control panel. If the job
stream does not contain a JOBNAME, the printer will assume no job
name. Each subsequent job that is sent down by the same user will
replace the user's last job on disk. The driver is responsible for
determining the size of the printer's control panel and sending a string
of appropriate length.
USERNAME Variable
This variable is the user name that is obtained from user input or by
the driver through some internal method. If the job stream does not
contain a USERNAME the default value will be "NO USER NAME".
The driver is responsible for determining the size of the printer's
control panel and sending a string of appropriate length.
Values Value Description
JOB Notifies printer to hold the job until all copies have
been printed.
Value Value Description
"jobname string" For the HP LaserJet 8500, the string is limited
to 16 characters of 7-bit ASCII text [uppercase
A – Z, plus the period (.), underscore (_),
hyphen (–), and asterisk (*)]. The default value
is “”.
Value Value Description
"username string" For the HP LaserJet 8500, the string is
limited to 16 characters of 7-bit ASCII text
[uppercase A – Z, plus the period (.),
underscore (_), hyphen (–), and asterisk (*)].
The default value is "NO USER NAME".
EN Job Management 10-7
Example: Job Management HP LaserJet 8500
The following PJL example demonstrates job management for the HP
LaserJet 8500 printer. It creates a secure Proof and Print job that
prints one copy and then is held until the user selects it for printing via
the control panel.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT **Give job a name** <CR><LF>
@PJL SET JOBNAME = "Job_876543" <CR><LF>
@PJL COMMENT **Specify a user name**<CR><LF>
@PJL SET USERNAME = "Mary_Smith" <CR><LF>
@PJL COMMENT **Set Quantity to Print**<CR><LF>
@PJL SET QTY = 15 <CR><LF>
@PJL COMMENT Specify Proof & Print Job<CR><LF>
@PJL SET HOLD = JOB<CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC E> . . . PCL print job . . . <ESC E>
~<ESC>%-12345X
10-8 Job Management EN
EN Programming Tips for Using PJL 11-1
11 Programming Tips for
Using PJL
Introduction
When using most printer languages, there is usually more than one
way to perform a certain printing function. PJL is no exception.
Properly formed PJL jobs provide the developer with the desired
features while eliminating glitches. This chapter provides tips for
creating efficient PJL jobs that eliminate potential problems.
Note Improperly coded print jobs may work fine in a single-computer/
single-printer environment running only one application, but cause
problems in a multi-application or shared network environment.
The first part of this chapter categorizes PJL applications into three
general types, and provides guidance and examples for each type.
The remainder of the chapter provides hints for handling specific
situations, including using status readback in a multi-user system.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
11-2 Programming Tips for Using PJL EN
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 GeneratorsApplications 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.
Spoolers—Applications that control print jobs generated by
other applications.
Many applications provide more than one of the services listed above.
For example, a Spooler can be used to monitor the printer and
provide control over printer features, and print jobs. If an application
does provide more than one service, only use those PJL commands
appropriate for the provided services.
If applications providing different printer services follow the guidelines
described in this section, they can work together properly. This
chapter lists the commands used by each application type, explains
the functions of each command, and offers several examples
illustrating different PJL functions.
EN Programming Tips for Using PJL 11-3
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.
The UEL command should precede and follow the print job.
Print Data Generators should only use PJL commands when a
corresponding command does not exist in the printer language. This
is recommended so that the application does not override feature
settings and adversely affect future jobs. To change feature settings
for the duration of the job, or until the next PJL reset condition, use
the SET command. Do not use the PJL INITIALIZE command for
Print Data Generators.
Commands Used by Print Data Generators
UEL Use before and after every PJL job.
COMMENT Use to add explanations within PJL code.
ENTER To select the correct printer language for the print
job.
SET To select a desired feature when it is not possible
using the desired printer language (such as PCL
or PostScript).
RESET Use at the end of the job if the SET command is
used in the job.
11-4 Programming Tips for Using PJL EN
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
%!PS-ADOBE ... PostScript code ... ^D
~<ESC>%-12345X
Jobs That Set Printer Features
This example specifies two feature settings that cannot be
selected using the specified printer language:
<ESC>%-12345X@PJL <CR><LF>
@PJL SET RET = LIGHT <CR><LF>
@PJL SET RESOLUTION = 600 <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E ... PCL print data ... <ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL RESET <CR><LF>
<ESC>%-12345X
EN Programming Tips for Using PJL 11-5
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.
Applications should only use PJL commands that request
status if the application is in direct control of the printer and
there is a bi-directional communication channel between the
printer and the application.
Monitor the printer status—Device status and timed status
can inform the application of printer events such as printer
open, paper out, or low toner. The USTATUS DEVICE and
USTATUS TIMED commands are used to monitor printer
status. Applications can continuously monitor the printer for
changes in printer state. When the printer changes state, the
application takes appropriate action, such as informing the
user.
In general, the Printer Utilities described here are not used to print
information, but enable the user to request the current printer feature
settings and modify features as desired.
11-6 Programming Tips for Using PJL EN
Commands Used by Printer Utilities
Printer utilities that are equipped for bi-directional communications
can request printer status using the following commands:
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.
(NOTE: In shared environments, this feature
should be used by system administrators only.)
INQUIRE To request the current setting for a particular
feature.
DINQUIRE To request the default setting for a particular
feature.
INFO To find the printer model, printer configuration,
memory available, status
information, page count, or printer variables.
ECHO To synchronize requested status information.
USTATUS
DEVICE To be informed when the printer status changes.
USTATUS
TIMED To receive unsolicited printer status at periodic
intervals.
EN Programming Tips for Using PJL 11-7
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.
This application functions like a remote control panel. This type of
utility enables users to select PJL features before printing from
another application that cannot select PJL features. In this example,
the DEFAULT command is used instead of the SET command, so that
changes apply to all future print jobs.
Note Since this application uses the DEFAULT command, it changes the
User Default Environment and control panel settings. In multi-user
situations, it should be used only by printer administrators to avoid
unexpected results by other users.
(Reading Status Information)
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Requesting features <CR><LF>
@PJL ECHO 15:18:25.3 07-25-92 <CR><LF>
[. . application discards any printer status readback
information received before the ECHO response . .]
@PJL DINQUIRE RET <CR><LF>
@PJL DINQUIRE RESOLUTION <CR><LF>
[. . application receives status readback from the
DINQUIRE commands showing that RET = OFF and
RESOLUTION = 300. . . .]
<ESC>%-12345X
11-8 Programming Tips for Using PJL EN
(Changing the Default Values)
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Set desired values <CR><LF>
@PJL DEFAULT RET = DARK <CR><LF>
@PJL DEFAULT RESOLUTION = 600 <CR><LF>
@PJL COMMENT Reset PJL to ensure default
~values take effect <CR><LF>
@PJL RESET <CR><LF>
<ESC>%-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 the printer. To restore the
default values, the RESET command is issued before the job closes.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Requesting features <CR><LF>
@PJL ECHO Job #53 11-17-92 08:52:03.7 <CR><LF>
[. . application discards any printer status readback
information received before the ECHO response . .]
@PJL INQUIRE RET <CR><LF>
@PJL INQUIRE PAGEPROTECT <CR><LF>
@PJL INQUIRE RESOLUTION <CR><LF>
<ESC>%-12345X
[. . application receives status readback from the
INQUIRE commands showing that RET = OFF, PAGEPROTECT
= LETTER, and RESOLUTION = 300, which are not the
desired settings. The application then sends SET
commands to modify the settings to the desired value
. .]
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Set desired values <CR><LF>
@PJL SET RET = MEDIUM <CR><LF>
@PJL SET PAGEPROTECT = OFF <CR><LF>
@PJL SET RESOLUTION = 600 <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . PCL file . . .<ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Reset PJL to restore <CR><LF>
@PJL COMMENT control panel defaults <CR><LF>
@PJL RESET <CR><LF>
<ESC>%-12345X
EN Programming Tips for Using PJL 11-9
Figure 11-1 Sample Printing System Components
11-10 Programming Tips for Using PJL EN
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL ECHO Acme #17 8-28-92 5:39:02.9 <CR><LF>
@PJL COMMENT Turn on unsolicited device
~status <CR><LF>
@PJL USTATUS DEVICE = ON <CR><LF>
<ESC>%-12345X
EN Programming Tips for Using PJL 11-11
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).
Spoolers perform one or more of the following operations:
Confirm job completion—To notify the spooler when the job
is completely processed, use the USTATUS JOB = ON
command. When this command is used, the EOJ command at
the end of the job triggers the printer to send unsolicited job
status information when the last page of the job is printed and
in the output tray.
Cancel jobs (only HP LaserJet 5/5M, 5Si/5SiMx/5Si Mopier,
and other printers that support job cancel)—The spooler can
cancel the print job using the PML printer language or a user
can cancel the job using the control panel. If unsolicited job
status is enabled, the printer notifies the application that the
job has indeed been canceled.
Monitor job progress—If you want the spooler to monitor the
page-by-page progress of a job, enable the page status with
the USTATUS PAGE=ON command. As each page lands in
the output tray, the printer sends an unsolicited page status
message to the spooler.
Interact with the user—To flash a message on the printer's
display and take the printer off-line, use the OPMSG or
STMSG commands. These commands are used to notify the
user of a required action before printing can continue. For
example, you can display “LOAD BLUE PAPER” and then wait
until the user presses the Continue or On Line key. To display a
message without taking the printer off-line, use the RDYMSG
command.
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.)
11-12 Programming Tips for Using PJL EN
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
1 For the LaserJet 4000 and newer printers, use the JOB DISPLAY = “display text”
method instead of (or as well as) RDMSG. Refer to the note on page 8-2.
UEL Use before and after every PJL job.
COMMENT Use to add explanations within PJL code.
DEFAULT To modify the default value of a printer feature.
(NOTE: In shared environments, this feature
should be used by system administrators only.)
ENTER Use if responsible for printer language selection or
banner printing.
JOB/EOJ Use to monitor printing status, name jobs, print
portions of a job, mark job boundaries.
OPMSG To display a customized message and take the
printer off-line until the operator presses the On
Line, Continue, or Reset key.
RDYMSG1To replace the control panel “00 READY” message
with a customized message.
EN Programming Tips for Using PJL 11-13
Spoolers equipped for bi-directional communications can monitor
printer status using the following commands:
Spooler Examples
The following examples show jobs used by spooling applications:
Jobs that monitor job progress and confirm job completion
Jobs that notify the user to load specific forms or paper
Jobs that control printer resources and print selected pages
Jobs that print a banner page followed by an application-
generated job (application specifies printer language)
Jobs that print a banner page followed by an application-
generated job (application does not specify printer language)
In each example, the indented lines indicate commands belonging to
a print file created by another application.
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.
USTATUSOFF To turn off all unsolicited status before
specifying the desired USTATUS.
USTATUS PAGE To receive notification as each page lands
in the output tray.
USTATUS JOB To monitor job progress. Sends status
message when job has completed.
11-14 Programming Tips for Using PJL EN
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Monitoring Job Progress <CR><LF>
@PJL COMMENT and Completion <CR><LF>
@PJL ECHO 12:07:54.5 07-26-92 <CR><LF>
[. application discards printer status readback data
received before ECHO response .]
@PJL USTATUS JOB = ON <CR><LF>
@PJL USTATUS PAGE = ON <CR><LF>
@PJL JOB NAME = "Monitoring Job" <CR><LF>
<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E... PCL print data ...<ESC>E
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "End of Monitor Job" <CR><LF>
@PJL USTATUS JOB = OFF <CR><LF>
@PJL USTATUS PAGE = OFF <CR><LF>
<ESC>%-12345X
When the printer processes the JOB command, the following
unsolicited job status message is sent:
@PJL USTATUS JOB
START
NAME="Monitoring Job"
<FF>
EN Programming Tips for Using PJL 11-15
When USTATUS PAGE = ON, the first unsolicited page status
message is sent after page 1 lands in the output tray:
@PJL USTATUS PAGE
1
<FF>
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
<FF>
@PJL USTATUS JOB
END
NAME="End of Monitor Job"
PAGES=38
<FF>
The unsolicited page status indicates that the 38th page printed. The
job status indicates that the EOJ command was received, and that 38
pages were printed. (The page count is incremented by one for each
simplex page formatted, and by two for each duplex page formatted.)
11-16 Programming Tips for Using PJL EN
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL JOB NAME = "Job #65432" <CR><LF>
@PJL OPMSG DISPLAY = "LOAD FORM 1040" <CR><LF>
<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E ... PCL print data ... <ESC>E
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "Job #65432" <CR><LF>
<ESC>%-12345X
Jobs That Control Printer Resources and Print
Selected Pages
The following job prints 1 copy of pages 5 through 8 of the print job.
The START command tells the printer to process pages in
non-printing mode until the specified page (in this case, page 5). The
END command specifies the last page to print. If the END command
is not included, the job prints from page 5 through the end of the
document.
If you need to print more than one copy of each page, send the job
multiple times using the START and END options to get collated
copies. Using the “@PJL SET COPIES = number of copies
command to print multiple copies of a selected page causes
unexpected results because the printer counts physical pages, not
multi-copy collated pages.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Printing selected pages <CR><LF>
@PJL JOB START = 5 END = 8 <CR><LF>
<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . PCL print job . . .<ESC>E
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ <CR><LF>
<ESC>%-12345X
EN Programming Tips for Using PJL 11-17
Spooler Job That Prints a Banner Page Followed by
an Application-Generated Job (Application specifies
printer language)
The following example demonstrates a spooling application that prints
a banner page, and then prints a PostScript job. The application that
produced the print file specifies the printer language.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT Spooling Job with Banner <CR><LF>
@PJL JOB NAME = "Spooler #1" <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . . Banner Page Data . . . <ESC>E
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
%!PS-ADOBE . . PostScript print data . . ^D
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ <CR><LF>
<ESC>%-12345X
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL JOB NAME = "Spooler #2" <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E . . Banner Page Data. .<ESC>E
~<ESC>%-12345X
. . . PCL or PostScript print data . . .
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ <CR><LF>
<ESC>%-12345X
11-18 Programming Tips for Using PJL EN
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. Lines within the
PJL status response begin with a specific keyword, as described in
the command description in Chapter 7, and end with the <CR><LF>
control codes. Future printers may support new keywords in the PJL
status response. Your application should ignore those lines which it
does not understand.
Using Status Readback in a Multi-User System
The printing system consists of all components involved in the
process of turning an application document into a printed sheet of
paper. Common printing system components include the host
computer, applications on the host computer, the operating system
used by the host computer, the cable connecting the host computer to
the printer, and the printer. Other printing system components can
include printer sharing boxes, network servers, spoolers running on
network servers, and I/O cards installed in the printer. For printer
status readback to be useful, all components must be bi-directional.
Some operating system environments, like Microsoft's Windows,
provide the components that interact with the printer so Windows
applications generally do not need to support printer status readback.
The components that may generate printer queries include the host
application, the printer sharing box, the network spooler, and the I/O
card installed in the printer. Printer status readback can allow many
printing system components to function more effectively, not just the
host application. For example, a network I/O card may inject a PJL
JOB command at the beginning of each job and a PJL 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.
EN Programming Tips for Using PJL 11-19
Example Printing System
Figure 11-1 contains an example printing system. The print system
contains one I/O-switching LaserJet printer which is connected to
seven computers. Host computer #1 is connected via the serial I/O
interface. Host computers #2 and #3 are connected through an
external printer sharing box that also buffers print job data. The
printer sharing box is connected to the printer through the IEEE-1284-
compatible I/O interface. Network servers #4 and #5 spool print jobs
from network clients #6 and #7.
Although all the network clients and spoolers are connected to the
same network cable as the printer, only the two network servers are
capable of communicating directly with the printer. In this example,
the network clients spool print jobs to a network server; they can not
interact directly with the printer.
Given the printing system as shown in Figure 11-1, not all of the
printing system components can query the printer and expect a
response back.
Printer Status Readback and Printer Sharing
Host computer #1 is directly connected to the printer via the
bi-directional serial I/O link. If the software on the host computer
supports bi-directional printer communication, applications on host
computer #1 can expect the printer to respond to queries. However, at
the time an application on host computer #1 requests information, the
printer may be processing a print job from a different I/O interface, so
the response to host computer #1's query may be delayed, as
described in the “Printer Status Readback and Printer I/O Switching
section in this chapter.
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. However, since
the printer sharing box is connected to the printer via the Bi-Tronics
I/O interface, which does support bi-directional communication, it is
possible for printer sharing boxes to be designed to support printer
status readback. In fact, the printer sharing box itself may be able to
inject a “print job” to query the printer for specific information.
External printer sharing boxes can be designed to support sending
data from the printer to the host computer. However, the printer
sharing box has to determine which host computer should receive the
11-20 Programming Tips for Using PJL EN
printer's response. The simplest solution for printer sharing boxes is
to forward all data received from the printer to all attached host
computers, and let the applications on each host computer ignore any
impertinent data, as described in the “Handling Unexpected Printer
Responses” section in this chapter.
The printer in this example is also attached directly to a network via a
network interface card installed into the printer's MIO interface.
Network servers #4 and #5 spool print jobs from network clients #6
and #7. In this example, the network clients can not interact directly
with the network-attached printer. The network spoolers can inject a
“print job” to query the printer and can expect to get responses back.
However, for this example, the network operating system does not
provide a mechanism which allows applications running on a network
client to query the printer and get a response.
The printer's I/O card, the printer sharing box, and the spoolers
running on the network servers can query the printer and expect to
receive a response since those components are connected directly to
the printer (i.e., no other printing system component except for the
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 IEEE-1284-compatible I/O
interface or the MIO interface.
An application running on host computer #2 or #3 may receive printer
responses if the printer sharing box supports bi-directional printer
communication. However, since the printer sharing box does not have
enough information to route the response to the correct host
computer, the printer sharing box can forward all printer responses to
all attached host computers and let the application on the host
computer ignore any unneeded printer responses.
Applications on network clients #6 and #7 cannot receive any printer
responses due to the underlying network operating system. However,
the printer sharing box, the I/O card installed in the printer, and
spoolers running on network servers #4 and #5 can all query the
printer and expect a printer response (although the response will not
be immediate if the printer is processing a print job from a different I/O
interface).
EN Programming Tips for Using PJL 11-21
Printer Status Readback Usage
Applications use printer status readback for two primary purposes
(although there are other uses): printer driver configuration and
monitoring device status. Since printer configuration does not change
often (i.e., the amount of installed printer memory does not change
frequently) using printer status readback to assist in initial
configuration (or when the printer's configuration changes) is
straightforward. If the application determines printer status readback
is unavailable (discussed in the “Determining If Printer Status
Readback is Available” section), the application can ask the user for
the information instead of querying the printer.
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. Since the printer informs the application
using unsolicited status, even when the printer is processing a print
job from a different I/O interface, the application gets timely printer
status information. If printer status readback is unavailable, the
application will not be able to provide the user with current printer
state information.
Another use for printer status readback is to determine what volatile
resources (e.g. soft fonts) are available in the printer right before a
print job is sent to the printer. If an application optimizes the printer
job using printer status readback (i.e., does not send soft fonts if the
printer already has the font), then if printer status readback is
unavailable, the application should assume worst case (i.e., the font is
not in the printer) when generating print jobs.
In summary, the application should be designed to take advantage of
printer status readback, if available, but still function if it is unavailable.
Determining If Printer Status Readback is Available
If the application sends a PJL ECHO command (preceded by the
Universal Exit Language command, of course) to the printer and
receives the expected response, then the application can assume
bi-directional communication with the printer is available and
supported solicited status queries will be answered in a timely
fashion.
11-22 Programming Tips for Using PJL EN
However, under some conditions the application will send, or attempt
to send, a PJL ECHO command and not receive a timely response
because of one of two reasons: the printer may not be accepting data
(due to the printer processing a print job from a different I/O interface
or the printer being off-line), or the printing system does not support
printer status readback to the application. If the application does 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. Application developers should not
assume that because a query was sent and a response was not
received in a timely fashion, that the printer system does not support
bi-directional communication. Printer sharing devices may buffer the
query and the response may be available, however the data buffered
before the query may take more than three seconds to process,
delaying the response by more than three seconds.
The application should notify the user that printer status readback is
currently unavailable and query the user to determine how to
proceed. The common choices are: 1) printer busy, continue retrying
until printer status readback is available, 2) printer busy on a long
printer job, temporarily do not use printer status readback, or 3)
printer status readback unavailable due to host-printer configuration,
do not use printer status readback. After obtaining the user's
response, the application can continue as appropriate.
Printer Status Readback and Printer I/O Switching
I/O switching occurs when a printer contains more than one I/O
interface and accepts data from any interface, based on a first-come
first-served basis. Some PJL printers do not support I/O switching.
I/O switching adds complexity to printing solutions taking advantage
of printer status readback. If the printer is currently processing a print
job from a different I/O interface, applications querying the printer will
have to wait for the printer to respond to the query, (or proceed
without using printer status readback). The amount of time until the
printer provides the response is dependent on the length of the
current print job and the length of any other print jobs the printer may
process before processing the application's query.
EN Programming Tips for Using PJL 11-23
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. If
the application times out while trying to send the initial UEL command
after one or more bytes of the command are sent, but before the
entire UEL command is sent, then the application can proceed using
one of the following choices: 1) continue attempting to send the data
to the printer, 2) remember how much of the initial UEL command has
been sent to the printer and attempt to send the rest of the command
at a later time, or 3) stop trying to send the command, making sure
the next command the application sends to the printer is the UEL
command. This is done so the parser inside the printer properly
recognizes all commands following the previously sent partial UEL
command. The printer will properly recognize the UEL command,
even if the
command appears after a partial UEL command.
For example, assume the initial query is:
<ESC>%-12345X@PJL ECHO 08/27/92 09:53:46.5
~033288925
If the printer only accepts "<ESC>%-12", and if the application later
sends:
<ESC>%-12345X@PJL ECHO 08/27/92 09:57:46.5
~6202323802 <LF>
The printer accepts the query and responds with:
@PJL ECHO 08/27/92 09:57:46.5 6202323802<LF>
<FF>
One of the conditions I/O-switching printers use to determine when to
switch to another I/O interface is the idle time of the I/O interface
supplying the current print job. Idle time is defined as the time elapsed
since the 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.
11-24 Programming Tips for Using PJL EN
To keep the I/O interface from timing out, the application can either
send data to the printer more frequently than the timeout setting or
can cause the printer to use a different setting by sending a PJL JOB
command. When I/O-switching printers receive the PJL JOB
command, the printer uses an I/O timeout value equal to ten times the
TIMEOUT environment variable setting or five minutes, whichever is
greater. (If the application sends the PJL JOB command, the
application should send a PJL EOJ command at the end of the job.)
Old Printer Status Readback Responses
Applications need to be designed to handle receiving printer status
readback responses that were generated because of an action
performed by a different application. For example, a word processing
application may send a query to the printer, but because the user
turned off the host computer, the application never got a chance to
retrieve the response from the printer before the host computer was
turned off. When another application, or even the same application at
a later time, queries the printer, the first response is the response to
the word processing application's query.
The currently executing application should accept old printer status
readback responses and discard them until the expected response is
received. Applications should include unique information as part of
the ECHO command, such as the current time and date and a
random number, so that the application can resynchronize with printer
status readback responses.
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. Also, if an application enables unsolicited status and
never accepts responses, the printer's response data buffer can
overflow. The printer limits the amount of memory allotted to hold
responses, and when that memory is full (and the host has not
recently accepted any responses), the printer discards all future
responses until the host accepts the currently queued responses in
the printer.
EN Programming Tips for Using PJL 11-25
When the printer discards responses, the printer inserts the PJL
unsolicited “printer to host data buffer overflow” message:
CE
CODE=10010
DISPLAY="00 READY"
Note Refer to the “HP LaserJet 4 and 5 Family Comments” section in
Appendix A under “Printer Status Readback” for the exact “printer to
host buffer overflow” message sent by HP LaserJet 4 and 5 printer
families.
The PJL unsolicited “printer to host data buffer overflow” message is
always inserted when the printer discards one or more responses,
even if unsolicited status is turned off.
I/O-switching printers set aside memory for each I/O interface. A
response data buffer overflow on one I/O interface does not mean
another I/O interface will also experience the overflow condition. To
keep the printer's response data buffer from overflowing, applications
should not send more than five queries without accepting the printer's
response to those queries.
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. Applications must be
designed to handle situations where the printer's response data buffer
overflows and the printer does not provide the expected response, but
instead provides a PJL unsolicited “printer to host data buffer
overflow” message. The application should resend all unanswered
queries whenever the application receives a PJL unsolicited “printer
to host data buffer overflow” message.
Handling Unexpected Printer Responses
Printer sharing devices, like the external printer sharing box or the
MIO card inserted into the printer as shown in Figure 11-1, do not
have sufficient information to allow the printer sharing device to
properly route printer status readback responses to the host
computer (the one running the application that queried the printer). In
particular, unsolicited PJL status is difficult for the printer sharing
11-26 Programming Tips for Using PJL EN
device to properly route since the unsolicited status response may be
received by the printer sharing box hours after sending the data from
the host computer to the printer that enabled unsolicited status.
Manufacturers of printer sharing devices can choose from the
following options to solve this printer-to-host data routing problem.
1A printer sharing device that is a uni-directional device and does
not support printer-to-host data transfer. Applications need to be
designed to work with uni-directional printer sharing devices.
2A printer sharing device that examines the data received from the
printer and only forwards solicited responses to the host
computer.
A printer sharing device can track which of its I/O interfaces is
currently sending data to the printer, and thus 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.
Before the printer sharing device sends the printer data from a
different I/O interface than the source of the current print job, the
printer sharing device can inject a PJL ECHO command. All
solicited printer responses received before the PJL ECHO
response should be sent to the previously active I/O interface. All
solicited printer responses received after the PJL ECHO
response should be sent to the currently active I/O interface. The
printer sharing device should consume the PJL ECHO response
which was a result of the PJL ECHO command injected by the
printer sharing device.
Applications that use unsolicited PJL device, job, page, or timed
status need to work properly with printer sharing devices that do
not support unsolicited printer-to-host responses.
3A printer sharing device that can route solicited responses as
described in 2 above, plus send all unsolicited responses to all
attached host computers. Applications must be designed to
properly ignore unexpected printer status readback responses.
Ideas on how to design an application to ignore unexpected
printer status readback responses are described in the next
section.
EN Programming Tips for Using PJL 11-27
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. A busy printer, old
printer responses, overflowed printer response buffer, and a
uni-directional printing environment all cause the obvious design
approach to be inadequate. A better design approach is to treat
printer responses as events that cause the application to take some
action. Solicited and unsolicited printer status readback
queries/responses are discussed separately.
Whenever the application sends a solicited query to the printer, the
application should add the query to the “outstanding solicited query”
list. Also, if the application can not proceed until the response is
received, then a watchdog timer should be set so that some event will
be guaranteed to occur in case the application does not receive a
timely response. Whenever a solicited response is received, the
response should be compared to the list of outstanding solicited
queries. If there is no match, then the solicited response should be
discarded. If there is a match, then the query should be removed from
the outstanding solicited query list, any associated watchdog timer
should be disabled, and the application should process the response.
If the application was blocked waiting for the response, then the
application should become unblocked.
If the application does not need an unsolicited status response, then
the application can discard the response.
If the application ever receives the unsolicited PJL “printer to host
data buffer overflow” message, then the application should resend all
queries in the “outstanding solicited query” list. When the application
resends the outstanding solicited queries, it is possible that the
application will receive two responses (one generated because of the
initial 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.
11-28 Programming Tips for Using PJL EN
Given the above structure for sending queries and processing
responses, applications should adhere to the following guidelines:
1If the application sends data to the printer in blocks, followed by
long pauses between blocks (i.e., greater than five seconds), then
it should cause the printer to use a larger I/O interface idle time
value by using the PJL JOB command as described in the
“Printer Status Readback and Printer I/O Switching” section.
2Check status readback availability as described in the
“Determining if Printer Status Readback is Available” section.
3Synchronize with the printer-to-host data stream as described in
the “Old Printer Status Readback Responses” section.
4Do not have more than five outstanding queries before accepting
printer status readback responses. This prevents response data
loss as described in the “Response Data Buffer Overflow”
section.
5Before quitting, turn off all unsolicited status enabled by the
application. Also, accept all responses from the printer that were
generated because of actions performed by the application.
6Do not be dependent on the timing characteristics of a single
printer model. For example, the response time of the
HP LaserJet 4 printer's built-in IEEE-1284-compatible I/O
interface will be different than the timing characteristics of a
IEEE-1284- compatible interface in an I/O card installed into the
printer.
EN Product-Specific Feature Support A-1
AProduct-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.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
A-2 Product-Specific Feature Support EN
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. PJL Feature Support for HP LaserJet, DeskJet, and PaintJet Printers
PJL Command Name IIISi
4/4M
4Si
4SiMx
4 Plus
4M Plus
4V, 4MV
4L
5L
6L 4ML 4P
4MP
4PJ
4LJPro
4LC
5P
5MP
6P
6MP
5Si
5SiMx
5Si
Mopier 5
5M
COMMENT Y Y Y Y Y Y Y Y Y Y
DEFAULT ns Y Y Y Y Y Y Y Y Y
DINQUIRE ns Y Y Y Y Y Y Y Y Y
ECHO ns Y Y Y Y Y Y Y Y Y
ENTER Y Y Y Y Y Y Y Y Y Y
EOJ ns Y Y ns Y Y Y Y Y Y
FSAPPEND, FSDIRLIST,
FSQUERY, FSUPLOAD
ns ns ns ns ns ns ns ns Mopier
only
ns
FSDELETE ns ns ns ns ns ns ns ns Y Y
FSDOWNLOAD ns ns ns ns ns ns ns ns Y Y
FSINIT ns ns ns ns ns ns ns ns Y Y
FSMKDIR ns ns ns ns ns ns ns ns Y Y
INFO ns Y1YY
1YY Y Y Y Y
INITIALIZE ns Y Y Y Y Y Y Y Y Y
INQUIRE ns Y Y Y Y Y Y Y Y Y
JOB ns Y Y ns Y Y Y Y Y Y
OPMSG ns Y Y ns ns Y Y ns Y Y
PJL Y Y Y Y Y Y Y Y Y Y
RDYMSG ns Y Y ns ns Y Y ns Y Y
RESET ns Y Y Y Y Y Y Y Y Y
SET ns Y Y Y Y Y Y Y Y Y
STMSG ns Y Y ns ns Y Y ns Y Y
UEL Y Y Y Y Y Y Y Y Y Y
USTATUS ns Y Y Y2 YY Y Y Y Y
USTATUSOFF ns Y Y Y Y Y Y Y Y Y
1 The LaserJet 4/4M/4L/5L/6L printers support all INFO categories except PAGECOUNT.
2 The LaserJet 4L/5L/6L printers support only the TIMED and DEVICE categories.
EN Product-Specific Feature Support A-3
Table A-1. PJL Feature Support for HP LaserJet, DeskJet, and PaintJet Printers
PJL
Command Name LaserJet
4000 Series
5000 Series
Color LJ
Color LJ
5/5M
DeskJet
1200C DeskJet
1600C PaintJet
XL300
COMMENT YYYYY
DEFAULT Y ns ns Y ns
DINQUIRE Y ns ns Y ns
ECHO Y Y ns Y ns
ENTER YYYYY
EOJ Y Y ns Y1ns
FSAPPEND, FSDIRLIST,
FSQUERY, FSUPLOAD
Y nsnsnsns
FSDELETE Y nsnsns
FSDOWNLOAD Y nsnsnsns
FSINIT Y nsnsnsns
FSMKDIR Y ns ns ns ns
INFO Y Y1ns ns ns
INITIALIZE Y ns ns ns ns
INQUIRE Y RET only ns ns ns
JOB Y NAME only ns Y2ns
OPMSG Y ns ns ns ns
PJL YYYYY
RDYMSG Y ns ns ns ns
RESET Y ns ns Y ns
SET Y RET only ns Y ns
STMSG Y ns ns ns ns
UEL YYYYY
USTATUS Y Y3ns ns ns
USTATUSOFF Y Y ns ns ns
1 Supports only these INFO categories: CONFIG, ID, PAGECOUNT, USTATUS.
2 The DeskJet 1600C printer does not support any options for the JOB and EOJ commands.
3 Supports only these USTATUS categories: DEVICE and JOB.
A-4 Product-Specific Feature Support EN
Table A-1. PJL Feature Support for HP LaserJet, DeskJet, and PaintJet Printers
PJL
Command Name LaserJet
1100 Series LaserJet
2100 Series LaserJet
4500 Series LaserJet
8000/8100 LaserJet
8500 Series
COMMENT YYYYY
DEFAULT YYYYY
DINQUIRE YYYYY
ECHO YYYYY
ENTER YYYYY
EOJ nsYYYY
FSAPPEND, FSDIRLIST,
FSQUERY, FSUPLOAD
ns ns ns ns ns
FSDELETE ns ns ns ns ns
FSDOWNLOAD ns ns ns ns ns
FSINIT ns ns ns ns ns
FSMKDIR nsnsnsnsns
INFO Y1YYYY
INITIALIZE Y3YYYY
INQUIRE YYYYY
JOB nsYYYY
OPMSG ns ns Y Y Y
PJL YYYYY
RDYMSG ns ns Y Y Y
RESET YYYYY
SET YYYYY
STMSG ns ns Y Y Y
UEL YYYYY
USTATUS Y2YYYY
USTATUSOFF YYYYY
1 The LaserJet 1100 Series printers support all INFO categories except PAGECOUNT. Sending the INFO
VARIABLES command also returns COPYPAGECOUNT and SCANPAGECOUNT as well as
PRINTPAGECOUNT.
2 The LaserJet 1100 Series printers support only the TIMED and DEVICE categories. The USTATUS
default is off.
3 The LaserJet 1100 Series printers do not set default and current PJL variable values to factory defaults
for SYMSET and PAPER.
EN Product-Specific Feature Support A-5
Table A-1. PJL Feature Support for HP DesignJet Printers/Plotters
PJL
Command Name 200,
220 230, 250C, 330,
350C, 430, 450C,
455CA, 488CA
600 650C 700, 750C Plus,
750C, 755CM,
2000CP, 2500CP,
1050C, 1055CM,
3000CP, 3500CP
COMMENT Y Y Y Y Y
DEFAULT ns ns ns ns ns
DINQUIRE ns ns ns ns ns
ECHO Y Y Y Y Y
ENTER Y1Y1Y1Y1Y1
EOJ ns Y ns ns Y
FSDELETE ns ns ns ns ns
FSDOWNLOAD ns ns ns ns ns
FSINIT ns ns ns ns ns
FSMKDIR ns ns ns ns ns
INFO Y2Y2Y2Y2Y2
INITIALIZE ns ns ns ns ns
INQUIRE ns ns ns ns ns
JOB ns Y ns ns Y
OPMSG ns ns ns ns ns
PJL ns ns ns ns ns
RDYMSG ns ns ns ns ns
RESET ns Y ns ns Y
SET ns Y3ns ns Y3
STMSG ns ns ns ns ns
UEL Y Y Y Y Y
USTATUS Y4Y4Y4Y4Y4
USTATUSOFF Y Y Y Y Y
1 All HP DesignJets support HPGL2. All HP DesignJets except 2000CP, 2500CP, 3000CP and 3500CP
support HPGL. HP DesignJets 650C, 700, 750C, 750C Plus, 755CM, 1050C, 1055CM, 2500CP and
3500CP also support PostScript when it is installed.
2 All DesignJets except the 600 and 650C support only the CONFIG, ID, STATUS, and USTATUS
categories. DesignJet 600 and 650C support only the USTATUS configuration.
3 See the following section for environment variables supported by DesignJets.
4 All DesignJets support the TIMED and DEVICE categories.
A-6 Product-Specific Feature Support EN
PJL Environment Variable Support
The following tables list all of the current environment variables for
PJL, PCL 5 and PostScript, and show the features supported by each
printer.
Features for the HP LaserJet, DesignJet, and DeskJet 1600C printers
are shown in Tables A-2 through A-5. The table below describes the
printers covered in each table.
The letters “Y” and “ns” indicate the feature is supported and not
supported, respectively. A value in parentheses ( ) indicates that
value is the factory default. The letters “RO” indicate it is supported as
a read only variable. Printers that do not support the SET or
DEFAULT commands, such as the LaserJet IIISi printer, do not
support any environment variables.
Table Pages Features for these Printers
A-2 A-7 to 17 HP LaserJet 4, 4M, 4 Plus, 4M Plus, 4V,
4MV, 4Si, 4SiMx, 4000 Series, 4L, 4ML, 4P,
4MP
A-3 A-18 to 28 HP LaserJet 4PJ, 4LJ Pro, 4LC, 5L, 6L, 5P,
5MP, 6P, 6MP, 5Si, 5SiMx, 5Si Mopier,
HP DeskJet 1600C
A-4 A-29 to 39 HP LaserJet 1100 Series, 2100 Series,
5000 Series, 8000 Series, 8100 Series,
Color LaserJet 4500 Series, 8500 Series
A-5 A-40 to 43 HP DesignJet printers
EN Product-Specific Feature Support A-7
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
AUTOCONT1(OFF) RO RO RO RO Y Y1Y1Y1
ON RO RO RO RO (Y) Y1Y1Y1
AUTOSELECT (ON) ns ns ns ns ns ns ns ns
OFF ns ns ns ns ns ns ns ns
BINDING (LONGEDGE) ns Y ns Y Y ns ns ns
SHORTEDGE ns Y ns Y Y ns ns ns
BITSPERPIXEL 1 or (2) ns ns ns ns Y ns ns ns
CLEARABLE-
WARNINGS1
JOB RO RO RO RO (Y) ns ns Y1
(ON) RO RO RO RO Y ns ns Y1
CONTEXT-
SWITCH
(ON) ns ns ns ns ns ns ns ns
OFF ns ns ns ns ns ns ns ns
COPIES (1) to 999 Y Y Y Y Y Y Y Y
COURIER (REGULAR) ns ns ns ns Y ns ns ns
DARK ns ns ns ns Y ns ns ns
CPLOCK2(OFF) ns Y Y Y Y ns ns ns
ON ns Y Y Y Y ns ns ns
MINIMUM ns ns ns ns Y ns ns ns
MODERATE ns ns ns ns Y ns ns ns
MAXIMUM ns ns ns ns Y ns ns ns
DENSITY11 to 5 (3) RO RO ns ns Y1Y1Y1Y1
DISKLOCK2(OFF) ns ns Y ns Y ns ns ns
ON ns ns Y ns Y ns ns ns
DUPLEX (OFF) ns Y ns Y Y ns ns ns
ON ns Y ns Y Y ns ns ns
ECONOMODE (OFF) ns Y Y ns Y Y Y Y
ON ns Y Y ns Y Y Y Y
FINISH (NONE) ns ns ns ns ns ns ns ns
STAPLE ns ns ns ns ns ns ns ns
FORMLINES 5 to 128 (60) Y Y Y Y Y Y Y Y
1 When a SET or DEFAULT command is used with the AUTOCONT, CLEARABLEWARNINGS, or DENSITY variables, both
the User Default and PJL Current Environment settings are modified (except for the LaserJet 4L, 5L, and 6L printers). It is
recommended these variables not be changed on a job-by-job basis.
2Only modifiable using the DEFAULT command.
A-8 Product-Specific Feature Support EN
HOLD (OFF) ns ns ns ns ns ns ns ns
ON ns ns ns ns ns ns ns ns
PROOF ns ns ns ns ns ns ns ns
STORE ns ns ns ns ns ns ns ns
JOB ns ns ns ns ns ns ns ns
HOLDKEY (""), 0000 to 9999 ns ns ns ns ns ns ns ns
HOLDTYPE (PUBLIC) ns ns ns ns ns ns ns ns
PRIVATE ns ns ns ns ns ns ns ns
IMAGEADAPT (AUTO) ns ns ns ns ns Y ns ns
OFF ns ns ns ns ns Y ns ns
ON ns ns ns ns ns Y ns ns
INTRAY1 (UNLOCKED) RO RO RO RO ns ns ns ns
LOCKED RO RO RO RO ns ns ns ns
INTRAY2 (UNLOCKED) RO RO RO RO ns ns ns ns
LOCKED RO RO RO RO ns ns ns ns
INTRAY3 (UNLOCKED) RO RO RO ns ns ns ns ns
LOCKED RO RO RO ns ns ns ns ns
INTRAY1SIZE (LETTER) RO RO RO RO RO ns ns ns
LEGAL RO RO RO RO RO ns ns ns
A4 RO RO RO RO RO ns ns ns
EXECUTIVE RO RO RO RO RO ns ns ns
LEDGER ns ns RO ns ns ns ns ns
A3 ns ns RO ns ns ns ns ns
JISB4 nsns ROns ns nsnsns
JISB5 nsns ROns RO nsnsns
CUSTOM nsns ROns RO nsnsns
COM10 RO RO RO ns RO ns ns ns
MONARCH RO RO RO ns RO ns ns ns
C5, DL RO RO RO ns RO ns ns ns
B5 RO RO RO ns RO ns ns ns
JPOST nsns ROns ns nsnsns
JPOSTD ns ns RO ns ns ns ns ns
A5 ns ns ns ns RO ns ns ns
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
EN Product-Specific Feature Support A-9
INTRAY2SIZE (LETTER) RO RO RO RO RO ns ns ns
LEGAL RO RO RO RO RO ns ns ns
A4 RO RO RO RO RO ns ns ns
EXECUTIVE RO RO ns RO RO ns ns ns
LEDGER ns ns RO ns ns ns ns ns
A3 ns ns RO ns ns ns ns ns
JISB4 nsns ROns ns nsnsns
JISB5 nsns ROns RO nsnsns
CUSTOM nsns nsns RO nsnsns
A5 ns ns ns ns ns ns ns ns
COM10 nsns nsns ns nsnsns
INTRAY3SIZE (LETTER) RO RO RO ns RO ns ns ns
LEGAL RO RO RO ns RO ns ns ns
A4 RO RO RO ns RO ns ns ns
EXECUTIVE RO RO ns ns RO ns ns ns
COM10, DL ns RO ns RO ns ns ns ns
MONARCH ns RO ns RO ns ns ns ns
LEDGER ns ns RO ns ns ns ns ns
A3, JISB4 ns ns RO ns ns ns ns ns
JISB5 nsns nsns RO nsnsns
CUSTOM nsns nsns RO nsnsns
INTRAY4SIZE (COM10) RO RO ns ns RO ns ns ns
MONARCH RO RO ns ns RO ns ns ns
C5, DL, B5 RO RO ns ns RO ns ns ns
JPOSTD ns ns ns ns ns ns ns ns
INTRAY5SIZE LETTER ns ns ns ns RO ns ns ns
LEGAL nsns nsns RO nsnsns
A4 ns ns ns ns RO ns ns ns
A3 ns ns ns ns ns ns ns ns
LEDGER ns ns ns ns ns ns ns ns
JISB4 nsns nsns ns nsnsns
EXEC nsns nsns RO nsnsns
JISB5 nsns nsns RO nsnsns
CUSTOM nsns nsns RO nsnsns
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
A-10 Product-Specific Feature Support EN
INTRAY6SIZE Tray-dependent ns ns ns ns RO ns ns ns
INTRAY7SIZE Tray-dependent ns ns ns ns RO ns ns ns
INTRAY8SIZE Tray-dependent ns ns ns ns RO ns ns ns
IOBUFFER1ON ns Y Y ns Y ns ns ns
OFF ns Y Y ns Y ns ns ns
AUTO ns Y Y ns (Y) ns ns ns
IOSIZE110 to max. available
memory
ns Y Y ns Y ns ns ns
JOBATTR "attribute string" ns ns ns ns Y ns ns ns
JOBID (OFF) ns ns ns ns ns ns ns ns
ON ns ns ns ns ns ns ns ns
JOBIDVALUE 0 to 65535 ns ns ns ns ns ns ns ns
JOBNAME "jobname string"nsns nsns ns nsnsns
JOBOFFSET OFF ns ns ns Y (Y) ns ns ns
(ON) ns ns ns Y Y ns ns ns
LANG DANISH ns ns ns ns Y ns Y Y
GERMAN ns ns ns ns Y ns Y Y
ENGLISH ns ns ns ns (Y) ns (Y) (Y)
SPANISH ns ns ns ns Y ns Y Y
FRENCH ns ns ns ns Y ns Y Y
ITALIAN ns ns ns ns Y ns Y Y
DUTCH ns ns ns ns Y ns Y Y
NORWEGIAN ns ns ns ns Y ns Y Y
POLISH ns ns ns ns Y ns Y Y
PORTUGUESE ns ns ns ns Y ns Y Y
FINNISH ns ns ns ns Y ns Y Y
SWEDISH ns ns ns ns Y ns Y Y
TURKISH ns ns ns ns Y ns Y Y
JAPANESE ns ns ns ns Y ns ns ns
CZECH ns ns ns ns Y ns ns ns
HUNGARIAN ns ns ns ns Y ns ns ns
RUSSIAN ns ns ns ns Y ns ns ns
1 The IOBUFFER and IOSIZE variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE commands.
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
EN Product-Specific Feature Support A-11
LOWTONER (ON) RO ns ns ns ns ns ns ns
OFF RO ns ns ns ns ns ns ns
(CONTINUE) ns RO RO RO Y ns ns ns
STOP ns RO RO RO Y ns ns ns
MANUALFEED (OFF) Y Y Y Y Y Y Y Y
ON YY YY Y YYY
MEDIASOURCE TRAY1 ns ns ns ns ns ns ns ns
TRAY2 nsns nsns ns nsnsns
TRAY3 nsns nsns ns nsnsns
MEDIATYPE TRANSPARENCY ns ns ns ns ns ns ns ns
GLOSSY ns ns ns ns ns ns ns ns
SPECIAL ns ns ns ns ns ns ns ns
PAPER nsns nsns ns nsnsns
MPTRAY MANUAL RO RO RO ns ns ns ns ns
CASSETTE (RO) RO RO ns Y1ns ns ns
FIRST RO (RO) (RO) ns (Y)1ns ns ns
ORIENTATION (PORTRAIT) Y Y Y Y Y Y Y Y
LANDSCAPE Y Y Y Y Y Y Y Y
OUTBIN (UPPER) ns ns ns Y Y ns ns ns
LOWER ns ns ns Y ns ns ns ns
OUTBINPROCESS 0 to 255 ns ns ns ns ns ns ns ns
OUTLINEPOINTSIZE 0 to 999 (72) ns ns ns ns Y ns ns ns
OUTTONER (STOP) ns ns ns ns ns ns ns ns
CONTINUE ns ns ns ns ns ns ns ns
PAGEPROTECT OFF (Y) ns ns (Y) ns Y Y Y
LETTER. LEGAL Y ns ns Y ns ns Y Y
A4 Y ns ns Y ns ns Y Y
ON ns Y Y ns Y Y ns ns
AUTO ns (Y) (Y) ns (Y) (Y) (Y) (Y)
1For LaserJet 4000 series printers, the MPTRAY variable can only be changed using the PJL DEFAULT
command.
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
A-12 Product-Specific Feature Support EN
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.7"
only])
LETTER4(Y) (Y) (Y) (Y) (Y) (Y) (Y) (Y)
LEGAL Y Y Y Y Y Y Y Y
A44YY YY Y YYY
LEDGER ns ns Y ns ns ns ns ns
A3 ns ns Y ns ns ns ns ns
JIS B4 ns ns Y ns ns ns ns ns
JISB5 nsns Y ns Y nsnsns
EXECUTIVE Y Y Y Y Y Y Y Y
COM10 Y Y Y Y Y Y Y Y
MONARCH, DL Y Y Y Y Y Y Y Y
C5 Y Y Y ns Y Y Y Y
B5 Y Y Y ns Y Y Y Y
CUSTOM ns ns Y ns Y ns Y Y
JPOST ns ns Y ns ns ns ns ns
JPOSTD ns ns Y ns ns ns ns ns
A5 ns ns ns ns Y ns ns ns
PARALLEL SLOW ns ns ns ns ns ns ns ns
FAST ns ns ns ns ns ns ns ns
PASSWORD1(0) to 65535 ns Y Y Y Y ns ns ns
PERSONALITY2AUTO (Y) (Y) (Y) (Y) (Y) ns (Y) (Y)
PCL Y Y Y Y Y ns Y Y
POSTSCRIPT Y Y Y Y Y ns Y Y
ESCP ns ns Y2,3 ns ns ns ns ns
INSTALLED ns ns ns ns ns ns ns ns
PLANESINUSE (3) ns ns ns ns ns ns ns ns
1 nsns nsns ns nsnsns
POWERSAVE ON nsY Y Y (Y) nsnsns
OFF nsY Y Y Y nsnsns
1 The PASSWORD variable is only supported with the DEFAULT, DINQUIRE, and INQUIRE commands.
2 For the LaserJet 4PJ printer, PERSONALITY is a port-specific variable. For all other LaserJet printers,
personality is not I/O port-specific. Available only if the optional ESC/P personality is installed.
3 Available only if the optional ESC/P personality is installed.
4 If configured for metric paper sizes, A4 is the default paper size and DL is the default envelope size.
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
EN Product-Specific Feature Support A-13
POWERSAVE-TIME1 nsns nsns ns nsnsns
15 ns Y Y Y Y ns ns ns
30 ns (Y) (Y) Y (Y) ns ns ns
60 ns Y Y (Y) Y ns ns ns
120 ns Y Y Y Y ns ns ns
180 ns Y Y Y Y ns ns ns
240 ns ns ns ns ns ns ns ns
480 ns ns ns ns ns ns ns ns
PRINTQUALITY DRAFT ns ns ns ns ns ns ns ns
NORMAL ns ns ns ns ns ns ns ns
HIGH ns ns ns ns ns ns ns ns
QTY (1) to 999 ns ns ns ns Y ns ns ns
RENDERMODE COLOR ns ns ns ns ns ns ns ns
GRAYSCALE nsns nsns ns nsnsns
REPRINT (AUTO) ns ns ns ns Y ns ns ns
ON ns ns ns ns Y ns ns ns
OFF ns ns ns ns Y ns ns ns
RESOLUTION 300 Y Y Y Y Y ns (RO) Y
600 (Y) (Y) (Y) (Y) (Y) ns ns (Y)
1200 ns ns ns ns Y ns ns ns
RESOURCESAVE1ON ns Y Y RO Y ns ns ns
OFF ns Y Y RO (Y) ns ns ns
AUTO ns (Y) (Y) RO Y ns ns ns
RESOURCE-
SAVESIZE1
0 to maximum
available memory
(in100 Kbyte
increments)
ns Y Y Y Y ns ns ns
RET OFF YY YY Y YYY
LIGHT Y Y Y ns Y Y Y Y
MEDIUM (Y) (Y) (Y) ns (Y) (Y) (Y) (Y)
DARK Y Y Y ns Y Y Y Y
ON ns ns ns (Y) ns ns ns ns
TIMEOUT 5 to 300 (15) Y Y Y Y Y ns Y Y
1 These variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE commands. RESOURCESAVESIZE is a
personality-specific variable.
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
A-14 Product-Specific Feature Support EN
USERNAME "username string"nsns nsns ns nsnsns
WIDEA4 (NO) ns ns ns ns Y ns ns ns
YES ns ns ns ns Y ns ns ns
PCL-Specific Variables
FONTNUMBER (0) to n (maxi-mum
value depends on
the currently set
font source)
YY YY Y YYY
FONTSOURCE (I) Y Y Y Y Y Y Y Y
M1,M2,M3 . . Mn Y Y Y Y Y ns ns Y
CYYnsnsnsnsnsns
C1 ns ns ns Y ns ns ns ns
C2 ns ns ns Y ns ns ns ns
SYYYYYYYY
LINETERMINATION (0), 1, 2, 3 ns ns ns ns ns ns ns ns
PITCH 0.44 to 99.99
(10.00)
YY YY Y YYY
PTSIZE 4.00 to 999.75
(12.00)
YY YY Y YYY
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
EN Product-Specific Feature Support A-15
SYMSET
(continued on the
following pages)
DESKTOP Y Y Y Y Y Y Y Y
ISO4 Y Y Y Y Y Y Y Y
ISO6 Y Y Y Y Y Y Y Y
ISO11 Y Y Y Y Y Y Y Y
ISO15 Y Y Y Y Y Y Y Y
ISO17 Y Y Y Y Y Y Y Y
ISO21 Y Y Y Y Y Y Y Y
ISO60 Y Y Y Y Y Y Y Y
ISO69 Y Y Y Y Y Y Y Y
ISOL1 Y Y Y Y Y Y Y Y
ISOL2 Y Y Y Y Y Y Y Y
ISOL5 Y Y Y Y Y Y Y Y
ISOL6 ns ns ns ns Y ns ns ns
LEGAL Y Y Y Y Y Y Y Y
MATH8 Y Y Y Y ns Y Y Y
MCTEXT YY YY Y YYY
MSPUBL Y Y Y Y ns Y Y Y
PC775 ns ns ns ns Y ns ns ns
PC8 Y Y Y Y (Y) Y Y Y
PC850 YY YY Y YYY
PC852 YY YY Y YYY
PC8DN Y Y Y Y Y Y Y Y
PC8TK Y Y Y Y Y Y Y Y
PC1004 ns ns ns ns Y ns ns ns
PIFONT Y Y Y Y ns Y Y Y
PSMATH Y Y Y Y ns Y Y Y
PSTEXT Y Y Y Y Y Y Y Y
ROMAN8 (Y) (Y) (Y) (Y) Y (Y) (Y) (Y)
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
A-16 Product-Specific Feature Support EN
SYMSET
continued
VNINTL Y Y Y Y ns Y Y Y
VNMATH Y Y Y Y ns Y Y Y
VNUS Y Y Y Y ns Y Y Y
WIN30 Y Y Y Y Y Y Y Y
WINBALT ns ns ns ns Y ns ns ns
WINL1 Y Y Y Y Y Y Y Y
WINL2 Y Y Y Y Y Y Y Y
WINL5 YY YY Y YYY
WIN31J ns ns Y1ns Y ns ns ns
Port-Specific Variables
PERSONALITY2ESCP ns ns ns ns ns ns ns ns
PCL nsns nsns ns nsnsns
ESC/P-Specific Variables
CARRIAGE-
RETURN
(CR) ns ns Y1ns ns ns ns ns
CRLF ns ns Y1ns ns ns ns ns
CHARACTER-SET (KANA) ns ns Y1ns ns ns ns ns
EG ns ns Y1ns ns ns ns ns
TOPMARGIN (TM19MM) ns ns Y1ns ns ns ns ns
TM6MM ns ns Y1ns ns ns ns ns
ANKCONDENSE ON ns ns Y1ns ns ns ns ns
(OFF) ns ns Y1ns ns ns ns ns
FONT (MSMINCHO) ns ns Y1ns ns ns ns ns
MSGOTHIC ns ns Y1ns ns ns ns ns
1 Only present when the optional ESC/P personality is installed
2 PERSONALITY is only a port-specific variable for the LaserJet 4PJ printer. For all other printers, it is a
general variable. For all other printers, see the PERSONALITY variable in the tables on pages B-12, B-23,
and B-35.
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
EN Product-Specific Feature Support A-17
PostScript-Specific Variables1
ADOBEMBT OFF ns ns ns ns ns ns ns ns
ON ns ns ns ns ns ns ns ns
(AUTO) ns ns ns ns ns ns ns ns
JAMRECOVERY (OFF) ns Y Y Y ns ns ns ns
ON ns Y Y Y ns ns ns ns
PRTPSERRS (OFF) Y Y Y Y Y ns Y Y
ON Y Y Y Y Y ns Y Y
1 Provided PostScript is installed. PostScript is an option in some printers.
Table A-2. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 4
4M 4 Plus
4M Plus 4V
4MV 4Si
4SiMx 4000
Series 4L 4ML 4P
4MP
A-18 Product-Specific Feature Support EN
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
AUTOCONT1(OFF) Y1Y1Y1Y2Y2YROns
ON Y1Y1Y1Y2Y2YROns
AUTOSELECT (ON) ns ns ns ns ns ns ns Y3
OFF ns nsnsns ns ns nsY3
BINDING (LONGEDGE) ns ns ns ns ns Y Y ns
SHORTEDGE ns nsnsns ns Y Y ns
BITSPERPIXEL 1 or (2) ns ns ns ns ns ns ns ns
CLEARABLE-
WARNINGS1JOB Y1ns ns ns ns ns RO ns
(ON) Y1ns ns ns ns ns RO ns
CONTEXT-
SWITCH (ON) ns ns ns ns ns ns ns Y3
OFF ns nsnsns ns ns nsY3
COPIES (1) to 999 Y Y Y Y Y Y Y Y
COURIER (REGULAR) ns ns ns ns Y ns Y ns
DARK ns ns ns ns Y ns Y ns
CPLOCK2 (OFF) ns nsnsns ns Y Y ns
ON ns ns ns ns ns Y Y ns
MINIMUM ns ns ns ns ns ns ns ns
MODERATE ns ns ns ns ns ns ns ns
MAXIMUM ns nsnsns ns ns nsns
DENSITY11 to 5 (3) Y1Y1Y1Y2Y2YROns
DISKLOCK2(OFF) ns nsnsns ns Y Y ns
ON ns ns ns ns ns Y Y ns
DUPLEX (OFF) ns ns ns ns ns Y Y ns
ON ns ns ns ns ns Y Y ns
ECONOMODE (OFF) Y Y Y Y Y Y Y ns
ON Y YYY Y Y Yns
FINISH (NONE) ns ns ns ns ns Y4ns ns
STAPLE ns ns ns ns ns Y4ns ns
FORMLINES 5 to 128 (60) Y Y Y Y Y Y Y Y
1 When a SET or DEFAULT command is used with the AUTOCONT, CLEARABLEWARNINGS, or DENSITY variables,
both the User Default and PJL Current Environment settings are modified (except for the LaserJet 4L and 5L printers). It
is recommended these variables not be changed on a job-by-job basis.
2 Only modifiable using the DEFAULT command.
3 DeskJet 1600C — these variables are only available using the DEFAULT and DINQUIRE commands.
4 The FINISH variable is only supported by the 5Si Mopier.
EN Product-Specific Feature Support A-19
HOLD (OFF) ns nsnsns ns ns nsns
ON ns ns ns ns ns ns ns ns
PROOF ns ns ns ns ns ns ns ns
STORE ns nsnsns ns ns nsns
JOB ns nsnsns ns ns nsns
HOLDKEY (""), 0000 to 9999 ns ns ns ns ns ns ns ns
HOLDTYPE (PUBLIC) ns ns ns ns ns ns ns ns
PRIVATE ns nsnsns ns ns nsns
IMAGEADAPT (AUTO) ns ns Y ns ns ns ns ns
OFF ns ns Y ns ns ns ns ns
ON ns ns Y ns ns ns ns ns
INTRAY1 (UNLOCKED) ns ns ns ns ns ns RO Y1
LOCKED ns ns ns ns ns ns RO Y1
INTRAY2 (UNLOCKED) ns ns ns ns ns ns RO ns
LOCKED ns ns ns ns ns ns RO ns
INTRAY3 (UNLOCKED) ns ns ns ns ns ns RO Y1
LOCKED ns ns ns ns ns ns RO Y1
INTRAY1SIZE (LETTER) ns ns ns ns ns RO RO ns
LEGAL ns nsnsns ns RO ROns
A4 ns ns ns ns ns RO RO ns
EXECUTIVE ns nsnsns ns RO ROns
LEDGER ns ns ns ns ns RO ns ns
A3 ns ns ns ns ns RO ns ns
JISB4 ns nsnsns ns RO nsns
JISB5 ns nsnsns ns RO nsns
CUSTOM ns nsnsns ns RO nsns
COM10 ns nsnsns ns RO ROns
MONARCH ns ns ns ns ns RO RO ns
C5, DL ns ns ns ns ns RO RO ns
B5 ns ns ns ns ns RO RO ns
JPOST ns nsnsns ns ns nsns
JPOSTD ns ns ns ns ns RO ns ns
A5 ns ns ns ns ns ns RO ns
1 DeskJet 1600C — these variables are only available using the DEFAULT and DINQUIRE commands.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
A-20 Product-Specific Feature Support EN
INTRAY2SIZE (LETTER) ns ns ns ns ns RO RO ns
LEGAL ns nsnsns ns RO ROns
A4 ns ns ns ns ns RO RO ns
EXECUTIVE ns nsnsns ns ns ROns
LEDGER ns ns ns ns ns ns ns ns
A3 ns ns ns ns ns ns ns ns
JISB4 ns nsnsns ns ns nsns
JISB5 ns nsnsns ns ns nsns
CUSTOM ns nsnsns ns ns nsns
A5 ns ns ns ns ns ns ns ns
COM10 ns nsnsns ns ns nsns
INTRAY3SIZE (LETTER) ns ns ns ns ns RO RO ns
LEGAL ns nsnsns ns RO ROns
A4 ns ns ns ns ns RO RO ns
EXECUTIVE ns nsnsns ns ns ROns
COM10, DL ns ns ns ns ns ns ns ns
MONARCH ns ns ns ns ns ns ns ns
LEDGER ns ns ns ns ns RO ns ns
A3, JISB4 ns nsnsns ns RO nsns
JISB5 ns nsnsns ns ns nsns
CUSTOM ns nsnsns ns ns nsns
INTRAY4SIZE (COM10) ns ns ns ns ns RO RO ns
MONARCH ns ns ns ns ns RO RO ns
C5, DL, B5 ns ns ns ns ns RO RO ns
JPOSTD ns ns ns ns ns RO ns ns
INTRAY5SIZE LETTER ns ns ns ns ns RO ns ns
LEGAL ns nsnsns ns RO nsns
A4 ns ns ns ns ns RO ns ns
A3 ns ns ns ns ns RO ns ns
LEDGER ns ns ns ns ns RO ns ns
JISB4 ns nsnsns ns RO nsns
EXEC ns ns ns ns ns ns ns ns
JISB5 ns nsnsns ns ns nsns
CUSTOM ns nsnsns ns ns nsns
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
EN Product-Specific Feature Support A-21
INTRAY6SIZE Tray-dependent ns ns ns ns ns ns ns ns
INTRAY7SIZE Tray-dependent ns ns ns ns ns ns ns ns
INTRAY8SIZE Tray-dependent ns ns ns ns ns ns ns ns
IOBUFFER 1ON ns ns ns Y Y (Y) Y ns
OFF ns ns Y Y Y Y Y ns
AUTO ns ns (Y) Y Y Y (Y) ns
IOSIZE110–max. memory ns ns ns Y Y Y Y ns
JOBATTR "attribute string" ns ns ns ns ns Y Y ns
JOBID (OFF) ns ns ns ns ns ns ns ns
ON ns ns ns ns ns ns ns ns
JOBIDVALUE 0 to 65535 ns ns ns ns ns ns ns ns
JOBNAME "jobname string" ns nsnsns ns ns nsns
JOBOFFSET OFF ns nsnsns ns Y nsns
(ON) ns ns ns ns ns Y ns ns
LANG DANISH ns ns ns Y Y Y ns ns
GERMAN ns ns ns Y Y Y ns ns
ENGLISH Y Y ns (Y) (Y) (Y) ns ns
SPANISH ns ns ns Y Y Y ns ns
FRENCH ns ns ns Y Y Y ns ns
ITALIAN ns ns ns Y Y Y ns ns
DUTCH ns ns ns Y Y Y ns ns
NORWEGIAN ns nsnsY Y Y nsns
POLISH ns ns ns Y Y Y ns ns
PORTUGUESE ns ns ns Y Y Y ns ns
FINNISH ns ns ns Y Y Y ns ns
SWEDISH ns nsnsY Y Y nsns
TURKISH ns nsnsY Y Y nsns
JAPANESE (Y) nsnsns ns Y nsns
CHINESE ns (Y) ns ns ns ns ns ns
CZECH ns nsnsns ns ns nsns
HUNGARIAN ns ns ns ns ns ns ns ns
RUSSIAN ns nsnsns ns ns nsns
1 The IOBUFFER and IOSIZE variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE
commands.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
A-22 Product-Specific Feature Support EN
LOWTONER (ON) ns ns ns ns ns ns ns ns
OFF ns nsnsns ns ns nsns
(CONTINUE) ns nsnsns ns Y ROns
STOP ns ns ns ns ns Y RO ns
MANUALFEED (OFF), ON Y Y Y Y Y Y Y ns
MEDIASOURCE TRAY1 ns ns ns ns ns ns ns Y1
TRAY2 ns nsnsns ns ns nsns
TRAY3 ns nsnsns ns ns nsY1
MEDIATYPE TRANSPARENCY ns ns ns ns ns ns ns Y
GLOSSY ns ns ns ns ns ns ns Y
SPECIAL ns ns ns ns ns ns ns Y
PAPER ns nsnsns ns ns nsY
MPTRAY MANUAL ns ns ns Y2ns ns ns ns
CASSETTE ns ns ns Y2Y2ns RO ns
FIRST ns ns ns Y2Y2ns RO ns
ORIENTATION (PORTRAIT) Y Y Y Y Y Y Y Y
LANDSCAPE Y Y Y Y Y Y Y Y
OUTBIN (UPPER) ns ns ns ns ns Y ns ns
LOWER ns nsnsns ns Y nsns
OPTIONALOUT
PUTBIN1 . . . 62
ns ns ns ns ns Y ns ns
OUTBINPROCESS 0 to 255 ns ns ns ns ns ns ns ns
OUTLINEPOINTSIZE 0 to 999 (72) ns ns ns ns ns ns ns ns
OUTTONER (STOP) ns ns ns ns ns ns ns ns
CONTINUE ns ns ns ns ns ns ns ns
PAGEPROTECT OFF Y Y Y ns ns ns ns (Y)
LETTER, LEGAL Y Y ns ns ns ns ns Y
A4 Y Y ns ns ns ns ns Y
ON ns ns Y Y Y Y Y ns
AUTO (Y) (Y) (Y) (Y) (Y) Y (Y) ns
1 DeskJet 1600C — these variables are only available using the DEFAULT and DINQUIRE commands.
2 For the LaserJet 5P/5MP printers, the MPTRAY variable can only be changed using the PJL DEFAULTcommand. The
LaserJet 6P/6MP printers allow both the DEFAULT and SET commands.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
EN Product-Specific Feature Support A-23
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.7"
only])
LETTER Y Y (Y) (Y) (Y) Y (Y) (Y)
LEGAL Y YYY Y Y YY
A4 (Y) (Y) Y Y Y Y Y Y
LEDGER ns ns ns ns ns Y ns ns
A3 ns ns ns ns ns Y ns ns
JIS B4 ns ns ns ns ns Y ns ns
JISB5 Y Y ns ns Y Y ns ns
EXECUTIVE Y Y Y Y Y Y Y ns
COM10 Y YYY Y Y Yns
MONARCH, DL Y Y Y Y Y Y Y ns
C5 Y YYY Y Y Yns
B5 Y YYY Y Y Yns
CUSTOM Y Y ns Y Y Y ns ns
JPOST Y Y ns ns Y ns ns ns
JPOSTD Y Y ns ns Y Y ns ns
A5 ns ns ns ns Y ns Y ns
PARALLEL SLOW ns ns ns ns ns ns ns Y2
FAST ns ns ns ns ns ns ns Y2
PASSWORD1(0) to 65535 ns ns ns Y Y Y Y ns
PERSONALITY3AUTO ns ns ns (Y) (Y) Y (Y) ns
PCL Y (Y) (Y) Y Y Y Y Y2
POSTSCRIPT ns ns ns Y Y Y Y Y2
ESCP (Y)3ns ns ns ns Y ns ns
INSTALLED ns ns ns ns ns ns ns (Y)
PLANESINUSE (3) ns ns ns ns ns ns ns ns
1 ns nsnsns ns ns nsns
POWERSAVE (ON) ns ns ns ns ns Y Y Y2
OFF ns nsnsns ns Y Y Y2
1 The PASSWORD variable is only available using the DEFAULT, DINQUIRE and INQUIRE commands.
2 DeskJet 1600C — these variables are only available using the DEFAULT and DINQUIRE commands.
3 For the LaserJet 4PJ printer, PERSONALITY is a port-specific variable. For all other LaserJet printers, personality is not
I/O port-specific.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
A-24 Product-Specific Feature Support EN
POWERSAVE-TIME1 ns nsnsns ns ns nsns
15 ns ns ns ns ns Y Y Y1
30 ns ns ns ns ns Y (Y) (Y)1
60 ns ns ns ns ns (Y) Y Y1
120 ns ns ns ns ns Y Y Y1
180 ns ns ns ns ns Y Y Y1
240 ns ns ns ns ns ns ns ns
480 ns ns ns ns ns ns ns ns
PRINTQUALITY DRAFT ns ns ns ns ns ns ns Y1
NORMAL ns ns ns ns ns ns ns Y1
HIGH ns ns ns ns ns ns ns Y1
QTY (1) to 999 ns ns ns ns ns Y3ns ns
RENDERMODE COLOR ns ns ns ns ns ns ns Y1
GRAYSCALE ns ns ns ns ns ns ns Y1
REPRINT (AUTO) ns ns ns ns Y ns ns ns
ON ns ns ns ns Y ns ns ns
OFF ns ns ns ns Y ns ns ns
RESOLUTION 300 Y Y Y Y Y Y Y (Y)
600 (Y) (Y) (Y) (Y) (Y) (Y) (Y) Y
1200 ns ns ns ns ns ns ns ns
RESOURCESAVE2ON ns ns ns Y Y Y Y ns
OFF ns nsnsY Y Y Y ns
AUTO ns ns ns Y Y Y Y ns
RESOURCE-
SAVESIZE2
0–max. available
memory (100 Kb
increments)
ns ns ns Y Y Y Y ns
RET OFF Y YYY Y Y Yns
LIGHT Y Y ns Y Y ns Y ns
MEDIUM (Y) (Y) ns (Y) (Y) ns (Y) ns
DARK Y Y ns Y Y ns Y ns
ON ns ns (Y) ns ns (Y) ns ns
1 DeskJet 1600C — these variables are only available using the DEFAULT and DINQUIRE commands.
2 These variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE commands. RESOURCESAVESIZE is
a personality-specific variable.
3 QTY is only supported on the HP LaserJet 5Si Mopier.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
EN Product-Specific Feature Support A-25
TIMEOUT 5 to 300 (15) Y Y ns Y Y Y Y Y1
USERNAME "username string" ns nsnsns ns ns nsns
WIDEA4 (NO) ns ns ns ns Y ns Y ns
YES ns nsnsns Y ns Y ns
PCL-Specific Variables
FONTNUMBER (0) to n (max.
depends on the font
source)
Y YYY Y Y Yns
FONTSOURCE (I) Y Y Y Y Y Y Y ns
M1,M2,M3 .. Mn Y2ns ns Y Y Y Y ns
C ns nsnsns ns ns nsns
C1 ns ns ns ns ns ns ns ns
C2 ns ns ns ns ns ns ns ns
S Y YYY Y Y Yns
LINETERMINATION (0), 1, 2, 3 ns ns ns ns ns ns ns ns
PITCH 0.44 to 99.99 (10.00) Y Y Y Y Y Y Y Y1,3
PTSIZE 4.00 to 999.75 (12.00) Y Y Y Y Y Y Y ns
RESOURCE-
SAVESIZE4
0–max. available
memory (100 Kb
increments)
ns ns ns Y Y Y Y ns
1DeskJet 1600C — these variables are only available using the DEFAULT and DINQUIRE commands.
2 The LaserJet 4JL Pro printer does not support font SIMMs.
3The DeskJet 1600C only supports the values 8.00, 10.00, 12.00, 16.67, 18.00, 20.00.
4These variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE commands.
RESOURCESAVESIZE is a personality-specific variable.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
A-26 Product-Specific Feature Support EN
SYMSET
(continued on the
following pages)
DESKTOP Y Y Y Y Y Y Y Y1
ISO4 Y Y Y Y Y Y Y Y1
ISO6 Y Y Y Y Y Y Y Y1
ISO11 Y Y Y Y Y Y Y Y1
ISO15 Y Y Y Y Y Y Y Y1
ISO17 Y Y Y Y Y Y Y Y1
ISO21 Y Y Y Y Y Y Y Y1
ISO60 Y Y Y Y Y Y Y Y1
ISO69 Y Y Y Y Y Y Y Y1
ISOL1 Y Y Y Y Y Y Y Y1
ISOL2 Y Y Y Y Y Y Y Y1
ISOL5 Y Y Y Y Y Y Y Y1
ISOL6 ns ns ns ns Y ns Y ns
LEGAL Y YYY Y Y YY1
MATH8 Y YYY nsY ns
Y1
MCTEXT Y YYY Y Y YY
MSPUBL Y YYY nsY ns
Y1
PC775 ns ns ns ns Y ns Y ns
PC8 Y Y (Y) Y (Y) (Y) (Y) Y1
PC850 Y Y Y Y Y Y Y Y1
PC852 Y Y Y Y Y Y Y Y1
PC8DN Y YYY Y Y YY1
PC8TK Y YYY Y Y YY1
PC1004 ns ns ns ns Y ns Y ns
PIFONT Y YYY nsY ns
Y1
PSMATH Y YYY nsY ns
Y1
PSTEXT Y YYY Y Y YY1
ROMAN8 Y YY(Y)Y Y YY1
1 DeskJet 1600C — these variables are only available using the DEFAULT and DINQUIRE commands.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
EN Product-Specific Feature Support A-27
SYMSET
(continued)
VNINTL Y YYY nsY ns
Y2
VNMATH Y YYY nsY ns
Y2
VNUS Y Y Y Y ns Y ns Y2
WIN30 Y YYY Y Y YY2
WINBALT ns nsnsns Y ns Y ns
WINL1 Y YYY Y Y YY2
WINL2 Y YYY Y Y YY2
WINL5 Y Y Y Y Y Y Y Y2
WIN31J (Y) ns ns ns ns Y ns ns
GB2312 ns (Y) ns ns ns ns ns ns
Port-Specific Variables
PERSONALITY1ESCP Y nsnsns ns ns nsns
PCL Y ns ns ns ns ns ns ns
ESC/P-Specific Variables
CARRIAGE-
RETURN
(CR) Y nsnsns ns Y3ns ns
CRLF Y nsnsns ns Y3ns ns
CHARACTER-SET (KANA) Y ns ns ns ns Y3ns ns
EG Y nsnsns ns Y3ns ns
TOPMARGIN (TM19MM) Y ns ns ns ns Y3ns ns
TM6MM Y ns ns ns ns Y3ns ns
ANKCONDENSE ON Y ns ns ns ns Y3ns ns
(OFF) Y ns ns ns ns Y3ns ns
FONT (MSMINCHO) Y ns ns ns ns Y3ns ns
MSGOTHIC Y ns ns ns ns Y3ns ns
1 PERSONALITY is only a port-specific variable for the LaserJet 4PJ printer. For all other printers, it is a
general variable. For all other printers, see the PERSONALITY variable in the tables on pages B-12,
B-23, and B-35.
2DeskJet 1600C — these variables are only available using the DEFAULT and DINQUIRE commands.
3 Only present when the optional ESC/P personality is installed.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
A-28 Product-Specific Feature Support EN
PostScript-Specific Variables1
ADOBEMBT OFF ns ns ns Y ns ns ns ns
ON ns ns ns Y ns ns ns ns
(AUTO) ns ns ns Y ns ns ns ns
JAMRECOVERY (OFF) ns ns ns Y Y Y Y ns
ON ns ns ns Y Y Y Y ns
PRTPSERRS (OFF) ns ns ns Y Y Y Y ns
ON ns ns ns Y Y Y Y ns
RESOURCESAVE-
SIZE 2
0–max. available
memory (100 Kb
increments)
ns ns ns Y Y Y Y ns
1 Provided PostScript is installed. PostScript is an option in some printers.
2These variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE commands.
RESOURCESAVESIZE is a personality-specific variable.
Table A-3. PJL Environment Variables for HP LaserJet and DeskJet Printers
Environment
Variable Variable
Values 4PJ
4LJ Pro 4 LC 5L
6L 5P
5MP 6P
6MP 5Si
5SiMx,
Mopier
5
5M 1600C
EN Product-Specific Feature Support A-29
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
AUTOCONT1OFF (Y)1(Y)2YYYYRO
ON Y1Y2(Y) (Y) (Y) (Y) RO
AUTOSELECT (ON) ns ns ns ns ns ns ns
OFF ns ns ns ns ns ns ns
BINDING (LONGEDGE) ns ns Y Y ns ns Y
SHORTEDGE ns ns Y Y ns ns Y
BITSPERPIXEL 1 or (2) [or (8)3]ns ns Y3YYYns
CLEARABLE-
WARNINGS1
JOB ns ns (Y) (Y) (Y) (Y) Y1
ON ns ns Y Y Y Y (Y)1
CONTEXT-
SWITCH
(ON) ns ns ns ns ns ns ns
OFF ns ns ns ns ns ns ns
COPIES (1) to 999 Y Y Y Y Y Y Y
COURIER (REGULAR) ns Y Y Y Y Y Y
DARK ns Y Y Y Y Y Y
CPLOCK2 (OFF) ns ns Y Y Y Y Y
ON ns ns Y Y Y Y Y
MINIMUM ns ns Y Y Y Y Y
MODERATE ns ns Y Y Y Y Y
MAXIMUM ns ns Y Y Y Y Y
DENSITY11 to 5 (3) Y1Y2ns Y1Y1Y1Y1
DISKLOCK2(OFF) ns ns ns Y Y Y Y
ON ns ns ns Y Y Y Y
DUPLEX (OFF) ns ns Y Y Y Y Y
ON ns ns Y Y Y Y Y
ECONOMODE (OFF) Y Y ns Y Y Y ns
ON Y Y ns Y Y Y ns
FINISH4(NONE) ns ns ns ns Y Y ns
STAPLE ns ns ns ns Y Y ns
FORMLINES 5 to 128 (60) Y Y Y Y Y Y Y
1 When a SET or DEFAULT command is used with the AUTOCONT, CLEARABLEWARNINGS, or DENSITY variables,
both the User Default and PJL Current Environment settings are modified (except for the LaserJet 4L, 5L, 6L, and 1100
Series printers). It is recommended these variables not be changed on a job-by-job basis.
2Only modifiable using the DEFAULT command.
3 BITSPERPIXEL always snaps to 8 for the LaserJet 4500 printer.
4 FINISH is only modifiable using the SET command.
A-30 Product-Specific Feature Support EN
HOLD1(OFF) ns ns ns ns ns Y ns
ON ns ns ns ns ns Y ns
PROOF ns ns ns ns ns Y ns
STORE ns ns ns ns ns Y ns
JOB ns ns ns ns ns ns Y
HOLDKEY1(""), 0000 to 9999 ns ns ns ns ns Y ns
HOLDTYPE1(PUBLIC) ns ns ns ns ns Y ns
PRIVATE ns ns ns ns ns Y ns
IMAGEADAPT (AUTO) Y ns ns ns ns ns ns
OFF Y ns ns ns ns ns ns
ON Y ns ns ns ns ns ns
INTRAY1 (UNLOCKED) ns Y ns ns ns ns ns
LOCKED ns Y ns ns ns ns ns
INTRAY2 (UNLOCKED) ns Y ns ns ns ns ns
LOCKED ns Y ns ns ns ns ns
INTRAY3 (UNLOCKED) ns Y ns ns ns ns ns
LOCKED ns Y ns ns ns ns ns
INTRAY1SIZE (LETTER) ns ns RO RO RO RO RO
LEGAL ns ns RO RO RO RO RO
A4 ns ns RO RO RO RO RO
EXECUTIVE ns ns RO RO RO RO RO
LEDGER ns ns ns ns RO RO RO
A3, JISB4 ns ns ns ns RO RO RO
JISB5 ns ns RO RO RO RO RO
CUSTOM ns ns RO RO RO RO RO
COM10 ns ns RO RO RO RO RO
MONARCH ns ns RO RO RO RO RO
C5, DL ns ns RO RO RO RO RO
B5 ns ns RO RO RO RO RO
JPOST ns ns ns ns ns ns RO
JPOSTD ns ns ns ns RO RO RO
A5 ns ns RO RO RO RO RO
ROC8K, ROC16K ns ns ns ns ns RO RO
JISEXEC ns ns ns ns ns RO RO
1 HOLD, HOLDKEY, and HOLDTYPE are only modifiable using the SET command.
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
EN Product-Specific Feature Support A-31
INTRAY2SIZE (LETTER) ns ns RO RO RO RO RO
LEGAL nsnsRO RO RORORO
A4 ns ns RO RO RO RO RO
EXECUTIVE nsnsRO ROnsnsRO
LEDGER ns ns ns ns ns ns RO
A3 ns ns ns ns ns ns RO
JISB4 nsnsns ns RORORO
JISB5 nsnsRO ROnsnsRO
CUSTOM ns ns RO RO ns ns RO
A5 ns ns RO ns ns ns RO
COM10 nsnsRO ns nsnsRO
UNKNOWNPAPER1ns ns RO ns ns ns RO
INTRAY3SIZE (LETTER) ns ns RO RO RO RO RO
LEGAL nsnsRO RO RORORO
A4 ns ns RO RO RO RO RO
EXECUTIVE nsnsRO ROnsnsRO
COM10, DL ns ns ns ns ns ns RO
MONARCH ns ns ns ns ns ns RO
LEDGER ns ns ns ns RO RO RO
A3, JISB4 nsnsns ns RORORO
JISB5 nsnsRO ROnsnsRO
CUSTOM ns ns RO RO ns ns RO
UNKNOWNPAPER1ns ns RO ns ns ns RO
INTRAY4SIZE (COM10) ns ns ns RO RO RO RO
MONARCH ns ns ns RO RO RO RO
C5, DL, B5 ns ns ns RO RO RO RO
JPOSTD ns ns ns ns RO RO RO
1 This variable responds with UNKNOWNPAPER when the paper tray is pulled out.
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
A-32 Product-Specific Feature Support EN
INTRAY5SIZE LETTER nsnsns ROROROns
LEGAL nsnsns ROROROns
A4 ns ns ns RO RO RO ns
A3 ns ns ns ns RO RO ns
LEDGER ns ns ns ns RO RO ns
JISB4 nsnsns ns ROROns
EXEC ns ns ns RO ns ns ns
JISB5 nsnsns RO nsnsns
CUSTOM ns ns ns RO ns ns ns
INTRAY6SIZE Tray-dependent ns ns ns RO RO RO ns
INTRAY7SIZE Tray-dependent ns ns ns RO RO RO ns
INTRAY8SIZE Tray-dependent ns ns ns RO RO RO ns
IOBUFFER1ON ns Y Y Y Y Y ns
OFF ns Y Y Y Y Y ns
AUTO ns Y (Y) (Y) Y Y ns
IOSIZE110 to max. available
memory
ns Y Y Y Y Y ns
JOBATTR "attribute string" ns ns Y Y Y Y Y
JOBID (OFF) ns ns Y Y Y Y ns
ON ns ns Y Y Y Y ns
JOBIDVALUE 0 to 65535 ns ns ns Y Y Y ns
JOBNAME "jobname string"nsnsns ns nsY Y
JOBOFFSET OFF ns ns ns (Y) Y Y ns
(ON) ns ns ns Y Y Y ns
1 The IOBUFFER and IOSIZE variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE
commands.
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
EN Product-Specific Feature Support A-33
LANG DANISH ns Y Y Y Y Y Y
GERMAN ns Y Y Y Y Y Y
ENGLISH ns (Y) (Y) (Y) (Y) (Y) (Y)
SPANISH ns Y Y Y Y Y Y
FRENCH ns Y Y Y Y Y Y
ITALIAN ns Y Y Y Y Y Y
DUTCH ns Y Y Y Y Y Y
NORWEGIAN ns Y Y Y Y Y Y
POLISH ns Y Y Y Y Y ns
PORTUGUESE ns Y Y Y Y Y Y
FINNISH ns Y Y Y Y Y Y
SWEDISH ns Y Y Y Y Y Y
TURKISH ns Y ns Y Y Y ns
JAPANESE ns ns Y Y Y Y ns
CHINESE nsnsns ns nsnsns
CZECH nsns Y Y Y Y ns
HUNGARIAN nsnsns Y Y Y ns
RUSSIAN nsns Y Y Y Y ns
LOWTONER (CONTINUE) ns ns Y Y Y Y Y
STOP ns ns Y Y Y Y Y
MANUALFEED (OFF) Y Y ns Y Y Y Y
ON YYns Y YYY
MEDIASOURCE TRAY1 ns ns ns ns ns ns ns
TRAY2 nsnsns ns nsnsns
TRAY3 nsnsns ns nsnsns
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
A-34 Product-Specific Feature Support EN
MEDIATYPE TRANSPARENCY ns ns ns ns ns ns Y
GLOSSY ns ns ns ns ns ns Y
PAPER nsnsns ns nsnsY
PREPRINTED ns ns ns ns ns ns Y
LETTERHEAD ns ns ns ns ns ns Y
PREPUNCHED ns ns ns ns ns ns Y
LABELS ns ns ns ns ns ns Y
BOND ns ns ns ns ns ns Y
RECYCLED ns ns ns ns ns ns Y
COLOR nsnsns ns nsnsY
CARDSTOCK ns ns ns ns ns ns Y
HEAVY nsnsns ns nsnsY
TYPE28161 ns ns ns ns ns ns Y
TYPE28162 ns ns ns ns ns ns Y
ENVELOPE ns ns ns ns ns ns Y
MPTRAY MANUAL ns ns ns ns ns ns ns
CASSETTE ns Y Y1Y1YYY
FIRST ns (Y) (Y)1(Y)1(Y) (Y) Y
ORIENTATION (PORTRAIT) Y Y Y Y Y Y Y
LANDSCAPE Y Y Y Y Y Y Y
OUTBIN (UPPER) ns ns RO Y Y Y Y
LOWER nsnsns ns Y Y Y
OPTIONAL
OUTPUTBIN1...16
ns ns ns ns Y Y Y
(1.. 9)
OUTBINPROCESS 0 to 255 ns ns ns ns Y Y ns
OUTLINEPOINTSIZE 0 to 999 (72) ns ns Y Y Y Y ns
OUTTONER (STOP) ns ns Y ns ns ns ns
CONTINUE ns ns Y ns ns ns ns
PAGEPROTECT OFF Y ns ns ns ns ns ns
ON YYns Y YYns
AUTO (Y) (Y) ns (Y) (Y) (Y) ns
1 For LaserJet 5000 and Color LaserJet 4500 series printers, the MPTRAY variable can only be changed
using the PJL DEFAULT command.
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
EN Product-Specific Feature Support A-35
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)
LETTER3(Y) (Y) (Y) (Y) (Y) (Y) (Y)
LEGAL YYY Y YYY
A43YYY Y YYY
LEDGER ns ns ns ns Y Y Y
A3, JISB4 nsnsns ns Y Y Y
JISB5 ns Y Y Y Y Y Y
EXECUTIVE Y Y Y Y Y Y Y
COM103YYY Y YYY
MONARCH Y Y Y Y Y Y Y
DL3YYY Y YYY
C5 YYY Y YYY
B5 YYY Y YYY
CUSTOM ns Y Y Y Y Y Y
JPOST ns Y ns ns ns ns ns
JPOSTD ns Y ns ns Y Y Y
A5 ns Y Y Y Y Y Y
ROC8K, ROC16K ns ns ns ns ns Y ns
JISEXEC ns ns ns ns ns Y ns
PARALLEL SLOW ns ns ns ns ns ns ns
FAST ns ns ns ns ns ns ns
PASSWORD1(0) to 65535 ns Y Y Y Y Y Y
PERSONALITY2AUTO ns (Y) (Y) (Y) (Y) (Y) (Y)
PCL (Y) Y Y Y Y Y Y
POSTSCRIPT ns Y Y Y Y Y Y
PLANESINUSE 1 or (3)4ns ns Y ns ns ns ns
POWERSAVE ON nsns(Y) (Y) (Y)(Y)Y
OFF nsnsY Y Y Y Y
1 The PASSWORD variable is only supported with the DEFAULT, DINQUIRE, and INQUIRE commands.
2 For the LaserJet 4PJ printer, PERSONALITY is a port-specific variable. For all other LaserJet printers,
personality is not I/O port-specific. Available only if the optional ESC/P personality is installed.
3 If configured for metric paper sizes, A4 is the default paper size and DL is the default envelope size.
4 Monochrome = 1, color = 3
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
A-36 Product-Specific Feature Support EN
POWERSAVETIME 1 ns ns Y ns ns ns ns
15 ns ns ns Y Y Y ns
30 ns ns Y (Y) Y Y Y
60 ns ns (Y) Y (Y) (Y) Y
120 ns ns Y Y Y Y ns
180 ns ns ns Y Y Y Y
240 ns ns Y ns ns ns ns
480 ns ns Y ns ns ns Y
PRINTQUALITY DRAFT nsnsns ns nsnsns
NORMAL ns ns ns ns ns ns ns
HIGH ns ns ns ns ns ns ns
QTY (1) to 999 ns ns ns Y Y Y Y
RENDERMODE COLOR ns ns ns ns ns ns Y
GRAYSCALE nsnsns ns nsnsY
REPRINT (AUTO) ns Y ns Y Y Y ns
ON ns Y Y Y Y Y ns
OFF ns Y (Y) Y Y Y ns
RESOLUTION 300 Y Y ns Y Y Y ns
600 (Y) Y (Y) (Y) (Y) (Y) (Y)
1200 ns (Y) ns Y ns ns ns
RESOURCESAVE1ON ns Y ns Y Y Y ns
OFF ns Y ns (Y) (Y) (Y) ns
AUTO ns (Y) ns Y Y Y ns
RET OFF YYns Y YYns
LIGHT n Y ns Y Y Y ns
MEDIUM n (Y) ns (Y) (Y) (Y) ns
DARK n Y ns Y Y Y ns
ON (Y) ns ns ns ns ns ns
TIMEOUT 5 to 300 (15) ns Y Y Y Y Y Y
1 These variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE commands.
RESOURCESAVESIZE is a personality-specific variable.
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
EN Product-Specific Feature Support A-37
USERNAME "username string"nsnsns ns nsY Y
WIDEA4 (NO) ns Y ns Y Y Y Y
YES ns Y ns Y Y Y Y
PCL-Specific Variables
FONTNUMBER (0) to n (maximum
value depends on
the currently set font
source)
YYY Y YYY
FONTSOURCE (I) Y Y (Y) Y Y Y Y
M1,M2,M3 . . Mn ns Y Y Y Y Y Y
C nsnsns ns nsnsns
C1 ns ns ns ns ns ns ns
C2 ns ns ns ns ns ns ns
S YYY Y YYY
LINETERMINATION (0), 1, 2, 3 ns Y ns ns ns ns ns
PITCH 0.44 to 99.99
(10.00)
YYY Y YYY
PTSIZE 4.00 to 999.75
(12.00)
YYY Y YYY
RESOURCE-
SAVESIZE1
0 to max. available
memory (in 100 Kb
increments)
ns Y ns Y Y Y ns
1 These variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE commands.
RESOURCESAVESIZE is a personality-specific variable.
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
A-38 Product-Specific Feature Support EN
SYMSET
(continued on the
following pages)
DESKTOP Y Y Y Y Y Y Y
ISO4 Y Y Y Y Y Y Y
ISO6 Y Y Y Y Y Y Y
ISO11 Y Y Y Y Y Y Y
ISO15 Y Y Y Y Y Y Y
ISO17 Y Y Y Y Y Y Y
ISO21 Y Y Y Y Y Y Y
ISO60 Y Y Y Y Y Y Y
ISO69 Y Y Y Y Y Y Y
ISOL1 Y Y Y Y Y Y Y
ISOL2 Y Y Y Y Y Y Y
ISOL5 Y Y Y Y Y Y Y
ISOL6 ns Y Y Y Y Y Y
LEGAL YYY Y YYY
MATH8 Y ns ns ns ns ns ns
MCTEXT YYY Y YYY
MSPUBL Y ns ns ns ns ns ns
PC775 ns Y Y Y Y Y Y
PC8 (Y) (Y) (Y) (Y) (Y) (Y) (Y)
PC850 Y Y Y Y Y Y Y
PC852 Y Y Y Y Y Y Y
PC8DN YYY Y YYY
PC8TK YYY Y YYY
PC1004 ns Y Y Y Y Y Y
PIFONT Y ns ns ns ns ns ns
PSMATH Y ns ns ns ns ns ns
PSTEXT Y Y Y Y Y Y Y
ROMAN8 YYY Y YYY
VNINTL Y ns ns ns ns ns ns
VNMATH Y ns ns ns ns ns ns
VNUS Y ns ns ns ns ns ns
WIN30 YYY Y YYY
WINBALT ns Y Y Y Y Y Y
WINL1 YYY Y YYY
WINL2 YYY Y YYY
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
EN Product-Specific Feature Support A-39
SYMSET
continued
WINL5 Y Y Y Y Y Y Y
WIN31J ns ns ns Y Y Y ns
Port-Specific Variables
PERSONALITY2ESCP ns ns ns ns ns ns ns
PCL nsnsns ns nsnsns
ESC/P-Specific Variables1
CARRIAGE-
RETURN
(CR) ns ns ns ns ns ns ns
CRLF ns ns ns ns ns ns ns
CHARACTER-SET (KANA) ns ns ns ns ns ns ns
EG ns ns ns ns ns ns ns
TOPMARGIN (TM19MM) ns ns ns ns ns ns ns
TM6MM nsnsns ns nsnsns
ANKCONDENSE ON nsnsns ns nsnsns
(OFF) ns ns ns ns ns ns ns
FONT (MSMINCHO) ns ns ns ns ns ns ns
MSGOTHIC ns ns ns ns ns ns ns
1 Only present when the optional ESC/P personality is installed
2 PERSONALITY is only a port-specific variable for the LaserJet 4PJ printer. For all other printers, it is a
general variable. For all other printers, see the PERSONALITY variable in the tables on pages B-12,
B-23, and B-35.
PostScript-Specific Variables1
ADOBEMBT OFF ns ns ns ns ns ns ns
ON ns ns ns ns ns ns ns
(AUTO) ns ns ns ns ns ns ns
JAMRECOVERY (OFF) ns Y ns ns ns ns Y
ON ns Y ns ns ns ns Y
PRTPSERRS (OFF) ns Y Y Y Y Y Y
ON ns Y Y Y Y Y Y
RESOURCE-
SAVESIZE2
0 to max. available
memory (in 100 Kb
increments)
ns Y ns Y Y Y ns
1 Provided PostScript is installed. PostScript is an option in some printers.
2 These variables can only be used with the DEFAULT, DINQUIRE, and INQUIRE commands.
RESOURCESAVESIZE is a personality-specific variable.
Table A-4. PJL Environment Variables for HP LaserJet Printers
Environment
Variable Variable
Values 1100
Series 2100
Series 4500
Series 5000
Series 8000
Series 8100
Series 8500
Series
A-40 Product-Specific Feature Support EN
Table A-5. PJL Environment Variables for HP DesignJets
Environment
Variable1
Variable
Values 230 250C 330 350C 430 450C 455CA 488CA
COMPRESSRAST. (all values) ns ns ns ns ns ns ns ns
IMAGELOCATION (all values) ns ns ns ns ns ns ns ns
MARGINS NORMAL ns ns ns ns ns ns ns ns
SMALLER ns ns ns ns ns ns ns ns
EXTENDED ns ns ns ns ns ns ns ns
MEDIASOURCE (all values) ns ns ns ns ns ns ns ns
MIRROR ON, (OFF) Y Y Y Y Y Y Y Y
ORIENTATION (PORTRAIT) Y Y Y Y Y Y Y Y
LANDSCAPE Y Y Y Y Y Y Y Y
PAGELENGTH-
ACCURACY
(all values) ns ns ns ns ns ns ns ns
PALETTESOURCE (DEVICE) Y Y Y Y Y Y Y Y
SOFTWARE Y Y Y Y Y Y Y Y
PAPERLENGTH 0 to 432000 Y Y Y Y Y Y Y Y
PAPERWIDTH 0 to 432000 Y Y Y Y Y Y Y Y
PRINTAREA (FULLSIZE) ns ns ns ns Y Y Y Y
INKEDAREA ns ns ns ns Y Y Y Y
REFILLDURAT'N (all values) ns ns ns ns ns ns ns ns
REFILLTHRESH. (all values) ns ns ns ns ns ns ns ns
REFILLTYPE (all values) ns ns ns ns ns ns ns ns
RENDERMODE (COLOR) ns Y ns Y ns Y Y Y
GRAYSCALE ns Y ns Y ns Y Y Y
RESOLUTION (300) Y Y Y Y Y Y Y Y
600 ns ns ns ns ns ns ns ns
RET ON ns ns (Y) (Y) (Y) (Y) (Y) (Y)
OFF ns ns Y Y Y Y Y Y
AUTO ns ns ns ns ns ns ns ns
1 The HP DesignJet 200, 220, 600, and 650C do not support any environment variables.
EN Product-Specific Feature Support A-41
Table A-5. PJL Environment Variables for HP DesignJets
Environment
Variable1
Variable
Values 700 750C 750C
Plus 755CM 1050C 1055CM
COMPRESSRAST.(all values) nsnsnsnsY Y
IMAGELOCATION (all values) ns ns ns ns Y Y
MARGINS NORMAL (Y) (Y) (Y) (Y) (Y) (Y)
SMALLERYYYYnsns
EXTENDED ns ns ns ns Y Y
MEDIASOURCE (all values) ns ns ns ns Y Y
MIRROR ON, (OFF)YYYYYY
ORIENTATION (PORTRAIT)YYYYYY
LANDSCAPEYYYYYY
PAGELENGTH-
ACCURACY
EXACT nsnsnsnsnsns
OPTIMIZEDnsnsnsnsY Y
CONSTANT ns ns ns ns ns ns
MAXIMUM nsnsnsnsY Y
PALETTESOURCE (DEVICE) YYYYYY
SOFTWAREYYYYYY
PAPERLENGTH 0 to 432000 YYYYYY
PAPERWIDTH 0 to 432000 YYYYYY
PRINTAREA (FULLSIZE) Y ns Y Y2YY
INKEDAREA Y ns Y Y2YY
REFILLDURAT'N (all variables) ns ns ns ns ns ns
REFILLTHRESH. (all variables) ns ns ns ns ns ns
REFILLTYPE (all variables) ns ns ns ns ns ns
RENDERMODE (COLOR) nsYYYYY
GRAYSCALEnsYYYYY
RESOLUTION (300), 600 YYYYYY
RET ON nsnsY (Y2)(Y) (Y)
OFF nsnsY Y2YY
AUTO ns ns (Y) Y2YY
1 The HP DesignJet 200, 220, 600, and 650C do not support any environment variables.
2 Supported on the model C3198B only.
A-42 Product-Specific Feature Support EN
Table A-5. PJL Environment Variables for HP DesignJets
Environment
Variable Variable
Values 2000CP 2500CP 3000CP 3500CP
COMPRESSRASTER-
STORAGE
(ON) ns ns ns ns
OFF nsnsnsns
IMAGELOCATION (DISK), RAM ns ns ns ns
MARGINS NORMAL YYYY
SMALLER YYYY
EXTENDED (Y) (Y) (Y) (Y)
MEDIASOURCE MANUALFEED ns ns ns ns
ROLL1 ns ns ns ns
MIRROR ON, (OFF) YYYY
ORIENTATION (PORTRAIT) YYYY
LANDSCAPE YYYY
PAGELENGTH-
ACCURACY
EXACT YYYY
OPTIMIZED YYYY
CONSTANT YYYY
MAXIMUM nsnsnsns
PALETTESOURCE (DEVICE), SOFTWARE YYYY
PAPERLENGTH 0 to 432000 YYYY
PAPERWIDTH 0 to 432000 YYYY
PRINTAREA (FULLSIZE) YYYY
INKEDAREA YYYY
REFILLDURATION NORMAL, QUICK ns ns Y Y
REFILLTHRESHOLD 5 to 100 ns ns Y Y
REFILLTYPE INTERLEAVED ns ns Y Y
SHARP nsnsY Y
RENDERMODE (COLOR) YYYY
GRAYSCALE YYYY
RESOLUTION (300) YYYY
600 YYYY
RET ON nsnsnsns
OFF nsnsnsns
AUTO ns ns ns ns
EN Product-Specific Feature Support A-43
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. The LaserJet IIISi printer does not
perform context switching.
The HP LaserJet IIISi printer does not support any PJL status
readback commands, environment variable commands, or device
attendance commands.
For an example that uses the PJL features found in the
HP LaserJet IIISi printer, see the “Using the ENTER Command”
example in Chapter 4.
A-44 Product-Specific Feature Support EN
Comments about HP LaserJet Printers
This section explains some important points that should be
considered when using PJL with HP LaserJet 4, LaserJet 5, and
Color LaserJet printer families, and the HP LaserJet 6P/6MP printers.
Support for the features described in this section varies. HP LaserJet
family printers that support a particular feature are listed at the
beginning of each feature description.
Printer Language Switching
Printers that perform context switching automatically switch printer
languages when both of the following conditions are met:
The PERSONALITY variable is set to AUTO.
The print job contains printable data but does not contain an
ENTER command immediately before the printable data.
Note HP LaserJet 4PJ and 4LJ Pro printers perform implicit language
switching, but not context switching.
HP LaserJet 4V and 4MV printers cannot context-switch into the
ESC/P language—use explicit switching instead.
Under these conditions, the printer samples the incoming printable
data and looks for indications of a particular printing 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.
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.
Printers supporting printer language switching:
HP LaserJet 4, 4M, 4 Plus, 4M Plus, 4V, 4MV, 4Si, 4SiMx,
4ML, 4P, 4MP, 4PJ, 4LJ Pro, 4000 series, 5, 5M, 5P, 5MP,
6P, 6MP, 5Si, 5SiMx, 5Si Mopier, HP Color LaserJet,
HP Color LaserJet 5, 5M, 2100 series, 4500 series,
5000 series, 8000 series, 8100 series, 8500 series
EN Product-Specific Feature Support A-45
Printer Status Readback
When requesting status information from the printer, ignore all status
information that you did not request. For example, if you request INFO
ID and get USTATUS or some other response, ignore that response
and read the next one until you receive the INFO ID response.
Due to other printer users in a multi-user system, there may be
situations where the printer status buffer overflows, and instead of
receiving requested status information, you receive the 10010 error.
(For the HP LaserJet 4 and 5 family printers except for the LaserJet
4PJ, the 30010 error is returned for “buffer overflow” instead of the
normal 10010 error code. HP LaserJet 4PJ and 4LJ Pro printers
return the 10010 error code.) Reading the 10010 or 30010 error
clears the status buffer; if you receive either error, resend the status
request.
Printers supporting printer status readback:
HP LaserJet 4, 4M, 4 Plus, 4M Plus, 4V, 4MV, 4Si, 4SiMx, 4L,
4ML, 4P, 4MP, 4PJ, 4LJ Pro, 4LC, 4000 series, 5, 5M, 5L, 5P,
5MP, 6L, 6P, 6MP, 5Si, 5SiMx, 5Si Mopier, HP Color LaserJet,
HP Color LaserJet 5, 5M, 1100 series, 2100 series, 4500
series, 5000 series, 8000 series, 8100 series, 8500 series
A-46 Product-Specific Feature Support EN
Commands That Affect Printer Memory
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.
When changing the I/O buffering or resource saving settings.
Reconfiguring printer memory erases all volatile personality-specific
resource information, including downloaded fonts, PCL macros, and
PostScript dictionaries (however no I/O data is lost). Memory can be
reconfigured only when these conditions actually change the page
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.
If resource saving is enabled, memory is reconfigured, but all volatile
personality-specific resource information (such as fonts, macros, and
PostScript dictionaries) are not lost (see “Resource Saving” below). If
resource saving is disabled, these resources are erased.
Printers that reconfigure memory due to PJL commands:
HP LaserJet 4, 4M, 4 Plus, 4M Plus, 4V, 4MV, 4Si, 4SiMx, 4ML,
4P, 4MP, 4PJ, 4LJ Pro, 4LC, 4000 series, 5, 5M, 5P, 5MP, 6L,
6P, 6MP, 5Si, 5SiMx, 5Si Mopier, HP Color LaserJet, HP Color
LaserJet 5, 5M, LaserJet 1100 series, 2100 series, 4500
series, 5000 series, 8000 series, 8100 series, 8500 series
EN Product-Specific Feature Support A-47
Resource Saving
Resource saving is a feature that allows you to prevent loss of
permanent resources (such as fonts, macros, and PostScript
dictionaries) when the printer language, page protection, or resolution
status changes. You can use either PJL or the control panel to
configure resource saving on HP 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
The printers listed above handle the following conditions as PJL job
boundaries. When any of these conditions occur, the User Default
Environment values are loaded into the PJL Current Environment,
which then are loaded into the Modified Print Environment.
Control panel reset
Printer language-specific exit command, such as ^D for
PostScript. (Printer language-specific exit commands are not
job boundaries when within a PJL JOB/EOJ command pair.)
Data stream idle timeout (this occurs when a PJL job is in
progress and there is no data received over the I/O for a
specified length of time). To avoid a timeout, use the PJL JOB
or ENTER commands, since using the JOB or ENTER
commands increases the time the printer waits for I/O data.
This increase is because the printer is processing a job with
clearly indicated start-of-job and end-of-job data stream
commands. See the following “Timeouts” section.
Printers that support resource saving:
HP LaserJet 4 Plus, 4M Plus, 4V, 4MV, 4Si, 4SiMx, 4000 series, 5,
5M, 5P, 5MP, 6P, 6MP, 5Si, 5SiMx, 5Si Mopier, 2100 series, 5000
series, 8000 series, 8100 series
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, 4500 series,
8500 series, LaserJet 2100 series, 5000 series, 8000 series,
8100 series
A-48 Product-Specific Feature Support EN
Using the control panel to perform a self test, or to print a
typeface list or demo page.
A job boundary indicated by the I/O card, such as the
AppleTalk end-of-file.
Timeouts
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.
The TIMEOUT variable set using PJL or the control panel establishes
the job timeout duration for those jobs that do not contain JOB or
ENTER commands. For jobs that do contain the JOB or ENTER
commands, the printer uses an extended timeout duration, which is
equal to five minutes or ten times the TIMEOUT value, whichever is
greatest.
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, 2100 series, 4500 series,
5000 series, 8000 series, 8100 series, 8500 series
EN Product-Specific Feature Support A-49
Backward-Compatibility Mode
If the printer detects PCL data immediately after a job boundary, it
enters a backward-compatibility mode that responds like an HP
LaserJet III printer. This lasts until the next job boundary is detected.
For backward- compatibility mode to occur, the PERSONALITY
variable must be set to AUTO or PCL, and the job must contain only
PCL dataif any PJL commands are received during the job, the
printer does not enter backward-compatibility mode.
There are two differences between backward-compatibility mode and
normal operating mode. In backward-compatibility mode, when a PCL
printer language reset (<ESC>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.
Note Because HP LaserJet 4L, 5L, 6L, and 1100 series printers do not
support job boundaries (JOB/EOJ), they always load the PJL Current
Environment variables into the Modified Print Environment after
receiving an <ESC>E reset.
Also, when a backward-compatible job ends with a partial page (one
not terminated with a form feed or PCL printer language reset) and
the job times out, the job does not immediately end, printing the
partial page. Instead, the printer waits to see if the next job sent
consists of more PCL data (from the same I/O port), which it then
appends to the partial page already in the printer. (This works the
same way as the HP LaserJet III printer, which does not have a job
timeout.) If PJL data is received instead, the partial page is printed
before the new PJL job is executed.
Printers that support the backward-compatibility mode:
HP LaserJet 4, 4M, 4 Plus, 4M Plus, 4V, 4MV, 4Si, 4SiMx, 4L, 4ML,
4P, 4MP, 4PJ, 4LJ Pro, 4LC, 4000 series, 5, 5M, 5L, 5P, 5MP, 6L, 6P,
6MP, 5Si, 5SiMx, 5Si Mopier, HP Color LaserJet, HP Color LaserJet
5, 5M, 1100 series, 2100 series, 4500 series, 5000 series, 8000
series, 8100 series, 8500 series
A-50 Product-Specific Feature Support EN
PJL Job Security
The printers listed above provide two PJL security features: password
protection and control panel lockout. HP LaserJet 4V/4MV and
5Si/5SiMx printers also provide disk lock protection. As discussed in
Chapter 5, the DEFAULT command can be used to set a PJL
password. Once the password is set, all succeeding jobs must issue
the correct password in order to enable the DEFAULT and 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. For more information on CPLOCK, DISKLOCK and
other security issues, see “PJL Job Security” in Chapter 5.
Printers that support PJL job security:
HP LaserJet 4/4M Plus, 4V, 4MV, 4Si, 4SiMx, 4000 series, 5,
5M, 5Si, 5SiMx, 5Si Mopier, 2100 series, 4500 series, 5000
series, 8000 series, 8100 series, 8500 series (5P, 5MP, 6P,
6MP, 2100: password only),
EN Product-Specific Feature Support A-51
LaserJet Printers with Reduced-Function
Control Panels
HP LaserJet 4L, 4LJ Pro, 4ML, 4LC, 5P, 6P, 6MP, 5L, 6L and 1100
series printers have no control panel to specify printer settings. These
printers have several features that are different than those of other
PJL printers. This section describes those differences and how they
affect the use of PJL.
No device attendance commands are supportedthese
printers rely on unsolicited status to inform the user.
•No NVRAM (HP LaserJet 4L/5L/6L only)because these
printers are designed to conserve energy and do not have a
power switch, they are never turned off. Therefore, they do not
need NVRAM to store feature settings. To simulate a power
cycle, use the RESET command to initialize all PJL variables
except PAPERSIZE.
For the LaserJet 1100 series printers, the RESET command
does not initialize the PAGECOUNT, SYMSET, and PAPER
variables. Instead, it sets the current value equal to the stored
default value.
For the LaserJet 1100 series printers, the INITIALIZE
command does not reset the PJL variables stored in NVRAM
back to the factory values. It sets their current values to the
stored default values.
No multiple I/Os or job boundaries supported (LaserJet
4L/5L/6L/1100 series only)these printers are designed for
single-user environments. They do not support I/O switching or
the concept of job boundaries. Therefore, the JOB and EOJ
commands are not supported.
No multiple language support (LaserJet 4L/5L/6L only)there
is no support for multiple printer languages. PCL 5 is the sole
printer language. Even though there is only one language, use
the PJL ENTER LANGUAGE command to specify PCL.
•EconoModea toner-saving feature that produces draft-like
pages when top-quality printing is not necessary.
A-52 Product-Specific Feature Support EN
Color LaserJet Printer Comments
The Color LaserJet printer supports context-sensitive language
switching, true end-of-job notification, job boundary recognition, and
automatic I/O switching. See the PJL Feature Support table in the
beginning of this chapter for a list of the PJL features supported. Note
that the SET and INQUIRE commands are limited to only being used
with the RET variable.
HP DeskJet 1200C and 1600C Printer Family
Comments
This sections explains some important points that should be
considered when using PJL with the DeskJet 1200C and 1600C
family printers. Support for the features described in this section
varies. The HP DeskJet 1200C and 1600C family printers that
support a particular feature are listed at the beginning of each feature
description.
Printer Language Switching
Printers that perform context switching automatically switch printer
languages when both of the following conditions are met:
For the DeskJet 1200C and 1200CM: when the rear panel DIP
switch is set in the “Context On” position.
For the DeskJet 1600C and 1600CM: when the PJL
“CONTEXTSWITCH” environment variable is set to ON.
The print job contains printable data but does not contain a
PJL ENTER LANGUAGE command immediately before the
printable data.
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.
Printers that support printer language switching:
HP DeskJet 1200C, 1200CM, 1600C, 1600CM
EN Product-Specific Feature Support A-53
Although the printer can accurately select printer languages this way,
we recommend that every job containing printable data include an
ENTER LANGUAGE command to explicitly switch to the correct
printer language. This method improves performance and eliminates
errors in printer language switching. It also guarantees that the
correct language is always selected.
Note The value of the PARALLEL feature as shipped from the factory is
FAST. When a front panel reset is performed, the value is defaulted to
SLOW.
Printer Environment
Unlike most PJL variables, the following environment variable defaults
are not stored in the printer's NVRAM. The primary use is to set
job-specific parameters like those available through the DeskJet
1200C family front panel. This means that they will be reset to the
factory default values after a power cycle.
Printers that support printer environment variables:
HP DeskJet 1600C, 1600M
A-54 Product-Specific Feature Support EN
Printer Status Readback
Because the DeskJet 1600C and 1600CM do not support USTATUS
or INFO, only the requested status information will come back from
the printer.
Commands That Affect Printer Memory
Three conditions may cause the printer to reconfigure user memory:
When the printer language changes, either explicitly by using
the ENTER command, or implicitly.
When the page protection setting changes, either using the
SET, DEFAULT, or RESET commands.
When the resolution is changed using either the SET or
DEFAULT commands.
Reconfiguring printer memory may erase all volatile
personality-specific resource information, including downloaded fonts,
PCL macros, and PostScript dictionaries (however no I/O data is lost).
Memory can be reconfigured only when these conditions actually
change the page 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.
Variables Not Stored in NVRAM
COPIES PAGEPROTECT
FORMLINES PAPER
MEDIASOURCE PRINTQUALITY
MEDIATYPE RENDERMODE
ORIENTATION RESOLUTION
Printers that support printer status readback:
HP DeskJet 1600C, 1600M
Printers affected by memory reconfiguration:
HP DeskJet 1600C, 1600M
EN Product-Specific Feature Support A-55
Resource Saving
None of the DeskJet 1200C or 1600C printer families support
resource saving.
Printer Specific Job Boundaries
Unlike the LaserJet 4 family of printers, no implicit PJL job boundaries
are recognized. There are no additional conditions which will cause
the User Default Environment values to be loaded into the PJL
Current Environment, or (subsequently) to be loaded into the
Modified Print Environment.
Timeouts
These printers have a timeout capability which is used to recover
when jobs are interrupted by situations such as host failures. The
timeout duration varies depending on the data received by the printer.
The TIMEOUT variable set using PJL establishes the I/O timeout
durations to wait before switching to another pending I/O. If the printer
has not received printable data, it will wait for the TIMEOUT duration
before closing the current job and switching to another pending I/O. If
the printer has received printable data and is waiting for more data,
the printer uses an extended timeout duration, which is equal to five
minutes or ten times the TIMEOUT value, whichever is greatest.
Printers that support printer specific job boundaries:
HP DeskJet 1200C, 1200CM, 1600C, 1600CM
Printers that support printer timeouts:
HP DeskJet 1600C, 1600CM
A-56 Product-Specific Feature Support EN
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).
Input selection can be controlled by selecting a media type
rather than a particular input tray—this feature is controlled
using PCL, instead of PJL, but it may affect the manner in
which PJL code is written (see the PCL 5 Comparison Guide
for more information concerning this feature).
Jobs may be canceled using the printer control panel. If
unsolicited status is enabled when jobs are canceled, the
printer responds with a status message (see the “Job
Cancellation” section in Chapter 5 for more information).
A PCL and PostScript-supported disk accessory is available
for storing information such as fonts and macros. Chapter 9
describes the PJL file system that manages the files on the
printer disk.
The default symbol set is PC-8 instead of Roman-8.
The LaserJet 5Si and 5SiMx printers have a top (correct-order)
output tray, holding 500 pages, and a side (100-sheet face-up)
output tray.
The LaserJet 5Si Mopier printer has a top (correct-order)
output tray, holding 500 pages, a side (100-sheet face-up)
output tray, a multi-bin mailbox (5 bins) and a stapler bin. (See
the following page for instructions on stapling or collating
documents.)
EN Product-Specific Feature Support A-57
HP LaserJet 5Si Mopier Comments
PJL commands are used to specify the destination bin and control
printer functions such as stapling and collating multiple copies.
Specifying the Output Bin
Documents are sent to specific output bins using the
@PJL SET OUTBIN command. The HP LaserJet 5Si Mopier bin
definitions are as follows:
Stapling Documents
To staple a document, include the following PJL command in the PJL
header at the beginning of the job (see the example on the following
page):
@@PJL SET FINISH=STAPLE
To staple the output using this command, the printer automatically
determines which bin is the stapling bin, so the output bin does not
need to be specified using the @PJL SET OUTBIN command. The
printer uses the EOJ command to determine the end of job so that the
job can be stapled correctly.
Note Future printers may enable stapling using a different command
sequence.
Bin Description OUTBIN Variable Name
Engine face-down bin UPPER
High Capacity Output (HCO)
face-up bin OPTIONALOUTBIN1
Stapling bin (in mailbox mode) OPTIONALOUTBIN7
Stapling bin (in stacker or job-
separator modes) OPTIONALOUTBIN3
First non-stapling bin in mailbox
mode (only bin in stacker and
job-separator modes)
OPTIONALOUTBIN2
Last non-stapling bin (bottom bin in
mailbox mode) OPTIONALOUTBIN6
A-58 Product-Specific Feature Support EN
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.
In order to print multiple copies of the job this way, it is important that
the print job not include the printer language's number of copies
command in the data stream (such as the PCL command ?&l#X).
These commands produce uncollated copies.
When printing multiple copies of a job, use the @PJL SET QTY as
early as possible in the job. If the printer does not detect that a job is
to be mopied by the end of the formatting of the second page (to allow
for one banner page), the job will not be mopied.
The following example would print 5 collated, stapled copies of a print
job.
<ESC>%-12345X@PJL <CR><LF>
@PJL JOB NAME = "Job #12345" <CR><LF>
@PJL COMMENT *** Set Mopies to 5 *** <CR><LF>
@PJL SET QTY = 5 <CR><LF>
@PJL COMMENT ** Send to stapler bin **<CR><LF>
@PJL SET FINISH = STAPLE
<ESC>%-12345X@PJL <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E ... PCL print data ... <ESC>E
~<ESC>%-12345X
~<ESC>%-12345X@PJL <CR><LF>
@PJL EOJ NAME = "Job #12345" <CR><LF>
<ESC>%-12345X
EN Product-Specific Feature Support A-59
HP LaserJet 4000 and 5000 Series Comments
The LaserJet 4000 and 5000 series printers have a PJL feature set
similar to the LaserJet 5Si/5SiMx printers. Listed below are some of
the differences between the printers.
In addition to the LaserJet 5Si/5SiMx printer features, the LaserJet
4000 and 5000 series printers have:
1200 dpi print resolution
Support for the Czechoslovakian, Hungarian, and Russian
languages
Support for slightly different paper sizes
More Resolution Enhancement technology (REt) settings
Support for the CLEARABLEWARNINGS, COURIER,
MPTRAY, REPRINT, and WIDEA4 environment variables
I/O Buffer Variables
Reconfiguring the size of the LaserJet 4000 and 5000 series I/O
buffers via the data stream can be difficult. The user may try to send
data to the printer while the I/O buffers are being reconfigured, which
results in the data being consumed until the reconfiguration is
complete. While it is not anticipated that these commands will be
used often, it is expected that they will be used at least occasionally.
For this reason, a special communication sequence has been
proposed between the printer and this software, so that the I/O
buffers may be reconfigured via the data stream without I/O being
lost.
The following sequence assumes that the printer is idle. Any I/O being
sent by other users will be lost.
1The software sends the job which includes a PJL command
changing the configuration of the I/O buffers.
2The software also sends an @PJL ECHO command at the end of
the job, followed by a UEL command.
3The printer sends the echo command back to the host.
4After the end of the job, the printer goes offline and reconfigures
the I/O buffers.
A-60 Product-Specific Feature Support EN
5The software may resume sending data after it sees the printer
go back online.
6If 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.
Paper Tray Configuration
The LaserJet 4000 and 5000 series paper tray configurations are set
up as follows:
Other trays are dynamically assigned at power-up, based on the tray's
number (for example, if you have a LaserJet 4000 or 5000 series
printer with an optional tray, tray 1 (MP tray) would be 0, the first
cassette number 2, the second cassette number 3, and the optional
cassette number 5 (number 4 is reserved for the envelope feeder).
Tray Number Description
0 Multi-purpose tray
1 Manual feed tray
2 Unknown tray
4 Envelope feeder
x Other trays (see below)
EN Product-Specific Feature Support A-61
HP LaserJet 1100 Series Comments
The HP LaserJet 1100 series printers have a PJL feature set very
similar to the HP LaserJet 6L printer. Listed below are some of the
differences.
The INFO VARIABLES command returns the number of pages
that have been copied, printed, and scanned
(COPYPAGECOUNT, PRINTPAGECOUNT, and
SCANPAGECOUNT).
For the LaserJet 1100 series printers, the RESET command
does not initialize the PAGECOUNT, SYMSET, and PAPER
variables. Instead, it sets the current value equal to the stored
default value.
When a SET or DEFAULT command is used with the
AUTOCONT or DENSITY variables, the User Default and PJL
Current Environment settings are not modified as they are on
most LaserJet printers.
For the LaserJet 1100 series printers, the INITIALIZE
command does not reset the PJL variables stored in NVRAM
back to the factory values. It sets their current values to the
stored default values (see the following paragraph).
The HP LaserJet 1100 PJL variables can be set to factory
values by performing a control panel NVRAM INIT. This is
done by holding down the control panel button and cycling the
power. When the power comes on, continue to hold down the
control panel button. The LEDs will flash briefly when the
power comes on, and then will go off. Hold the button down
until the LEDs cycle once, then release the button.
A-62 Product-Specific Feature Support EN
HP LaserJet 2100 Series Comments
The HP LaserJet 2100 series printers have PJL features similar to the
HP LaserJet 6P and 6MP printers. Some of the differences are listed
below:
Instead of using the MPTRAY variable, use the INTRAY1
variable to set the default configuration of Tray 1 (the MP Tray).
The HP LaserJet 2100 series printers add the PCL-specific
LINETERMINATION variable, which allows the carriage return,
line feed, and form feed characters to be remapped (see the
LINETERMINATION variable description in Chapter 6).
EN Product-Specific Feature Support A-63
HP Color LaserJet 4500 Series Comments
This section describes some of the distinguishing PJL features of the
HP Color LaserJet 4500 series printers.
The JOBID variable is added to enable or disable the job ID
information returned in the status readback at the start and
end of jobs.
HP Color LaserJet 4500 series printers may remove the JOB
DISPLAY = "display text" message from the control
panel display before the last page reaches the output bin.
The control panel display messages and status readback text
can now be set to the Japanese language.
The OUTTONER variable determines how the printer
processes a toner-out event. If this variable is set to STOP,
printing will stop when a toner-out event occurs. If this variable
is set to CONTINUE, a toner-out message will be generated,
but printing will continue. The default value for this variable is
STOP.
The PLANESINUSE variable defines the number of planes of
data in a job. A value of 1 indicates a monochrome job, while a
value of 3 indicates a color job. The default value is 3.
This printer adds some new POWERSAVETIME values (1,
240, 480 minutes), and does not support the 15 and 180
minute values.
A-64 Product-Specific Feature Support EN
HP LaserJet 8000 and 8100 Series Comments
The PJL feature set used by the HP LaserJet 8000 and 8100 series
printers is similar to that of the HP LaserJet 4000 series printers. The
HP LaserJet 8100 also adds support for a few more paper sizes
(ROC8K, ROC16K, and JISEXEC) and adds job management
features (PROOF and HOLD jobs — see Chapter 10 for more
information on job management PJL commands).
EN Product-Specific Feature Support A-65
HP Color LaserJet 8500 Series Comments
As part of its paper stacking flexibility, the HP Color LaserJet 8500
printer allows the user to switch the Mail Box Mode (MBM) to any of
the following three settings:
• Stacker
• Separator
•Mailbox
The preferred way to change the Mail Box Mode is using the printer's
control panel. This feature is usually controlled by the printer
administrator and can be programmatically set using HP JetAdmin.
A-66 Product-Specific Feature Support EN
EN PJL Command Summary B-1
BPJL Command
Summary
COMMENT
@PJL COMMENT <words> [<CR>]<LF>
DEFAULT
@PJL DEFAULT [LPARM : personality | IPARM : port]
~variable = value [<CR>]<LF>
DINQUIRE
@PJL DINQUIRE [LPARM : personality | IPARM : port]
~variable [<CR>]<LF>
DINQUIRE Response
@PJL DINQUIRE [LPARM:personality | IPARM:port]
~variable <CR><LF>
value <CR><LF>
<FF>
ECHO
@PJL ECHO [<words>] [<CR>]<LF>
ECHO Response
@PJL ECHO [<words>] <CR><LF>
<FF>
ENTER
@PJL ENTER LANGUAGE = personality [<CR>]<LF>
B-2 PJL Command Summary EN
EOJ
@PJL EOJ [NAME = "job name"] [<CR>]<LF>
FSAPPEND
@PJL FSAPPEND FORMAT:BINARY SIZE=integer
~NAME = "pathname" [<CR>]<LF>
<binary data><ESC>%-12345X
FSDELETE
@PJL FSDELETE NAME = "pathname" [<CR>]<LF>
FSDIRLIST
@PJL FSDIRLIST NAME = "pathname" ENTRY=integer
~COUNT=integer[<CR>]<LF>
FSDIRLIST Response
@PJL FSDIRLIST NAME = "pathname"
~ENTRY=integer[<CR>]<LF>
filename TYPE=FILE SIZE=integer<CR><LF>
filename TYPE=DIR<CR><LF>
...
<FF>
FSDOWNLOAD
@PJL FSDOWNLOAD FORMAT:BINARY SIZE=integer
~NAME = "pathname" [<CR>]<LF>
<binary data><ESC>%-12345X
FSINIT
@PJL FSINIT VOLUME = "pathname" [<CR>]<LF>
FSMKDIR
@PJL FSMKDIR NAME = "pathname" [<CR>]<LF>
EN PJL Command Summary B-3
FSQUERY
@PJL FSQUERY NAME = "pathname" [<CR>]<LF>
FSQUERY Response
If pathname is a file:
@PJL FSQUERY NAME="pathname" TYPE=FILE
~SIZE=integer<CR><LF>
<FF>
If pathname is a directory:
@PJL FSQUERY NAME="pathname" TYPE=DIR<CR><LF>
<FF>
FSUPLOAD
@PJL FSUPLOAD NAME = "pathname" OFFSET=<number>
SIZE=<number>[<CR>]<LF>
FSUPLOAD Response
If the pathname is valid:
@PJL FSUPLOAD FORMAT:BINARY NAME = "pathname"
~OFFSET=<number> SIZE=<number><CR><LF>
<SIZE bytes of file data>
<FF>
INFO
@PJL INFO category [<CR>]<LF>
INFO Response
@PJL INFO category <CR><LF>
[1 or more lines printable characters or <WS>
followed by <CR><LF>]
<FF>
INITIALIZE
@PJL INITIALIZE [<CR>]<LF>
B-4 PJL Command Summary EN
INQUIRE
@PJL INQUIRE [LPARM : personality | IPARM : port]
~variable [<CR>]<LF>
INQUIRE Response
@PJL INQUIRE [LPARM:personality | IPARM:port]
~variable <CR><LF>
value <CR><LF>
<FF>
JOB
@PJL JOB [NAME="job name"][START=first
~page][END=last page][PASSWORD = number] <CR><LF>
OPMSG
@PJL OPMSG DISPLAY = "message" [<CR>]<LF>
PJL
@PJL [<CR>]<LF>
RDYMSG
@PJL RDYMSG DISPLAY = "message" [<CR>]<LF>
RESET
@PJL RESET [<CR>]<LF>
SET
@PJL SET [LPARM : personality | IPARM : port]
~variable = value [<CR>]<LF>
STMSG
@PJL STMSG DISPLAY = "message" [<CR>]<LF>
EN PJL Command Summary B-5
STMSG Response
@PJL STMSG DISPLAY="message" <CR><LF>
key <CR><LF>
<FF>
UEL
<ESC>%-12345X
USTATUS
@PJL USTATUS variable = value [<CR>]<LF>
Unsolicited Status Message (not a response, but
returned when printer events occur)
@PJL USTATUS variable <CR><LF>
[1 or more lines of printable characters or <WS>
followed by <CR><LF>]
<FF>
USTATUSOFF
@PJL USTATUSOFF [<CR>]<LF>
B-6 PJL Command Summary EN
EN Programming Examples C-1
CProgramming
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. The second example is a batch file that demonstrates the use
of the RDYMSG command to create your own “ready” message while
printing your job.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
C-2 Programming Examples EN
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.
<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT **Beginning of PCL Job** <CR><LF>
@PJL COMMENT **Enter PCL (& HP-GL/2)* <CR><LF>
@PJL ENTER LANGUAGE = PCL <CR><LF>
<ESC>E<ESC>%0BIN;SP1;PA1010,1010;PW2.2;
~PD5310,1010,5310,5310,1010,5310,1010,1010;
~PU;PA2280,3040;
~SD1,277,2,1,4,20,5,0,6,0,7,4148;
~DT*;SS;LBPCL Print Job*;
~<ESC>%0A<FF><ESC>E
~<ESC>%-12345X@PJL <CR><LF>
@PJL COMMENT *** END OF PCL JOB & *** <CR><LF>
@PJL COMMENT ** START OF POSTSCRIPT * <CR><LF>
@PJL ENTER LANGUAGE = POSTSCRIPT <CR><LF>
5 setlinewidth<CR>
100 100 moveto<CR>
0 300 rlineto<CR>
300 0 rlineto<CR>
0 -300 rlineto<CR>
closepath<CR>
stroke<CR>
185 240 moveto<CR>
/Helvetica findfont 20 scalefont setfont<CR>
(PostScript Job) show<CR>
showpage<CR>
^D
~<ESC>%-12345X
EN Programming Examples C-3
/****************************************************/
/* SWITCH.C (Switching Printer Languages) */
/****************************************************/
#include <stdio.h>
main()
{
FILE *prn; /* initialization section */
/************ open PRN for writing ***************/
prn = fopen("lpt1","wb");
/****** Send UEL command and @PJL<CR><LF> *****/
fprintf(prn,"\033%%-12345X@PJL \n");
fprintf(prn,"@PJL COMMENT **Beginning of PCL Job** \n");
fprintf(prn,"@PJL COMMENT **Enter PCL (& HP-GL/2)* \n");
fprintf(prn,"@PJL ENTER LANGUAGE = PCL \n");
fprintf(prn,"\033E\033%%0BIN;SP1;PA1010,1010;PW2.2;");
fprintf(prn,"PD5310,1010,5310,5310,1010,5310,1010,1010;");
fprintf(prn,"PU;PA2280,3040;");
fprintf(prn,"SD1,277,2,1,4,20,5,0,6,0,7,4148;");
fprintf(prn,"DT*;SS;LBPCL Print Job*;"); /** Print text **/
fprintf(prn,"\033%%0A\f\033E"); /*Exit HP-GL/2, <FF>, <Esc>E*/
fprintf(prn,"\033%%-12345X@PJL \n"); /*** UEL & @PJL ***/
fprintf(prn,"@PJL COMMENT *** END OF PCL JOB & *** \n");
fprintf(prn,"@PJL COMMENT ** START OF POSTSCRIPT * \n");
fprintf(prn,"@PJL ENTER LANGUAGE = POSTSCRIPT \n");
fprintf(prn,"5 setlinewidth\r"); /** PostScript Code **/
fprintf(prn,"100 100 moveto\r");
fprintf(prn,"0 300 rlineto\r");
fprintf(prn,"300 0 rlineto\r");
fprintf(prn,"0 -300 rlineto\r");
fprintf(prn,"stroke\r");
fprintf(prn,"185 240 moveto\r");
fprintf(prn,"/Helvetica findfont 20 scalefont setfont\r");
fprintf(prn,"(PostScript Job) show\r"); /** Print text **/
fprintf(prn,"showpage\r");
fprintf(prn,"\004"); /**** ^D *******/
fprintf(prn,"\033%%-12345X"); /*** UEL Command ***/
fclose(prn);
}
Notice the %% required to print the % character
C-4 Programming Examples EN
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 (<ESC>%-12345X). In this
file, be sure to substitute ASCII character 27, the escape character,
for <ESC>, and do not add any spaces or characters after the X.
Then create a batch file as shown here, and save it as
PRINTPJL.BAT, in the same directory as the “UEL” file. The batch file
uses the DOS ECHO command to send PJL commands and the DOS
COPY command with the /B option to send the UEL file and
pre-existing PRN file to the printer.
@ECHO OFF
CLS
ECHO Printing the %1 Job!
COPY UEL /B PRN:
ECHO @PJL > PRN:
ECHO @PJL JOB > PRN:
ECHO @PJL JOB DISPLAY = "%1" > PRN:
ECHO @PJL RDYMSG DISPLAY = "%1" > PRN:
ECHO @PJL ENTER LANGUAGE = PCL > PRN:
COPY %1 /B PRN:
COPY UEL /B PRN:
ECHO @PJL COMMENT Restore READY message > PRN:
ECHO @PJL RDYMSG DISPLAY = "" > PRN:
ECHO @PJL EOJ > PRN:
COPY UEL /B PRN:
@ECHO ON
Note For the HP LaserJet 4000 printer, and newer printers, the RDYMSG
DISPLAY method will not replace the front panel display message.
Use the JOB DISPLAY = “display text” method. Use both methods to
ensure compatibility with all printers. See page 8-2.
EN Programming Examples C-5
To use this batch file, type the name of the batch file,
followed by the name of the print file, as follows:
PRINTPJL printfilename
The printfilename is displayed while the job is being downloaded to
the printer.
C-6 Programming Examples EN
EN PJL Status Codes D-1
DPJL 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.
Note that since the string portion of the “DISPLAY=string” is localized,
developers should use the “CODE=” value in applications.
Note For information about products newer than those included in this
book, see the Printer Job Language Technical Reference Addendum,
which includes product-specific information about newer products, as
well as commands and variables added to PJL to support these
newer products.
Status Code Groupings
PJL status codes are grouped as follows, with the first two digits
indicating a message category:
Informational Messages (10xxx)
Background Paper Mount (11xyy)
Background Paper Tray Status (12xyy)
Output Bin Status (15xxy)
PJL Parser Errors (20xxx)
PJL Parser Warnings (25xxx)
PJL Semantic Errors (27xxx)
Auto-Continuable Conditions (30xxx)
D-2 PJL Status Codes EN
PJL File System Errors (32xxx)
Possible Operator Intervention Conditions (35xxx)
Operator Intervention Required (40xxx)
Foreground Paper Mount (41xyy)
Paper Jam Errors (42xyy)
Optional (External) Paper Handling Device Errors (43xyy)
LaserJet 4000/5000 Paper Jam Information (44xyy)
Hardware Errors (50xxx)
The following pages list the status codes in numerical order, by
groups. For a complete description of each control panel display
string, see the user and service manuals for each printer.
Informational Messages (10xxx) *
Status
Code Control Panel Display String or Code Meaning
10001 00 READY (online)
[Personality-specific ready message] (online)
[PJL RDYMSG] (online)
68 READY/SERVICE (online) or PERFORM USER
MAINTENANCE or 68 NVRAM FULL, SETTINGS NOT
SAVED
10002 00 READY (offline) or [Personality-specific ready
message] (offline) or [PJL RDYMSG] (off-line) or 68
READY/SERVICE (offline).
Form-feeding printable data due to key press
10003 02 WARMING UP (or initializing—DesignJet)
10004 05 SELF TEST or INTERNAL TEST
10005 07 RESET, CLEARING MEMORY
10006 16 TONER LOW
10007 CANCELING JOB
10010 ** STATUS BUFFER OVERFLOW
* All of these messages are localized. They appear in the currently selected
language as displayed on the control panel.
** If creating applications for the HP LaserJet 4 and 5 printer families, see
“Printer Status Readback” in the “HP LaserJet 4 and 5 Family Comments”
section in Appendix A.
EN PJL Status Codes D-3
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 RESETTING MENUS TO
DEFAULTS
10019 09 RST ACTIVE IO or RESETTING ACTIVE IO
10020 09 RESET ALL I/O
10021 08 COLD RESET or RESTORING FACTORY
SETTINGS
10022 06 CONFIG PAGE or PRINTING CONFIGURATION
PAGE
10023 PROCESSING JOB or PROCESSING JOB FROM
ENV FEEDER or PROCESSING JOB FROM TRAY X
(X = tray code)
10024 PRESS SELECT TO FORMFEED or DATA RECEIVED
10025 ACCESS DENIED
10026 NO JOB TO CANCEL
10027 CLEARING PAPER PATH
10028 PRINTING ERROR LOG
10029 FORMFEEDING
Status
Code Control Panel Display String or Code Meaning
D-4 PJL Status Codes EN
Background Paper Loading (11xyy)
Background paper loading messages appear when a paper input
source is out of paper, but another paper source is available and
loaded with the correct paper size. The printer stays online in these
situations since it can switch to the other paper source. (“Foreground”
paper loading messages are sent when there are no alternate paper
sources loaded with the same size paper. The printer goes offline and
waits for someone to load paper. Foreground error messages are
listed later in the chapter [41xyy].)
Background paper loading messages are in the format 11xyy. The
following tables list the x and y values for these messages. For
example, 11202 is a background paper loading message indicating to
load the PC tray with letter-size paper.
10030 Job message — a print job has been received
containing the optional DISPLAY="message" token pair
associated with the PJL JOB command.
10031 ENGINE CLEANING
X = Tray Code Tray
0 MP Tray or Multi-Purpose Tray1 or Duplex
tray
1 Manual Feed
2 PC Tray or Upper Cassette or
Universal Tray2
3 LC Tray or Lower Cassette or
Universal Tray3
4 EE Tray or Envelope Feeder
5 Any HCI Tray
Status
Code Control Panel Display String or Code Meaning
EN PJL Status Codes D-5
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
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
D-6 PJL Status Codes EN
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.
X = Tray Code Tray
0 MP Tray or Multi-Purpose Tray1
1 Manual Feed
2 PC Tray or Upper Cassette or Universal
Tray2
3 LC Tray or Lower Cassette or Universal
Tray3
4 EE Tray or Envelope Feeder
5 Any HCI Tray
YY = Status Code Tray Status
01 Tray Open
02 Tray Lifting
EN PJL Status Codes D-7
Output Bin Status (15xxy)
Output bin status messages occur when an output bin is full. The
messages are in the format 15xxy. The following tables list the x and y
values for these messages. For example, 15031 indicates that output
bin number 3 is full.
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.)
XX = Output Bin Tray
0 - 99 Output Bin Number
Y = Status Code Tray Status
1 Output Bin Full
2 Output Bin Open
3 Output Bin Broken
Status
Code Display String or Code Meaning
20001 Generic syntax error (entire PJL command ignored)
20002 Unsupported command
20004 Unsupported personality, system, or I/O port
20005 PJL command buffer overflow
20006 Illegal character or line terminated by the Universal Exit
Language command
20007 <WS> or [<CR>]<LF> missing after closing quotes
20008 Invalid character in an alphanumeric value
20009 Invalid character in a numeric value
20010 Invalid character at the start of a string, alphanumeric
value, or numeric value
D-8 PJL Status Codes EN
20011 String missing closing double-quote character
20012 Numeric value starts with a decimal point
20013 Numeric value does not contain any digits
20014 No alphanumeric value after command modifier
20015 Option name and equal sign encountered, but the value
field is missing
20016 More than one command modifier
20017 Command modifier encountered after an option
(command modifier must precede option)
20018 Command not an alphanumeric value
20019 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
Status
Code Display String or Code Meaning
EN PJL Status Codes D-9
PJL Parser Warnings (25xxx)
This group of status codes denote PJL parser warnings, which
indicates that part of the PJL command is ignored.
Status
Code Display String or Code Meaning
25001 Generic warning error (part of the PJL command
ignored)
25002 PJL prefix missing
25003 Alphanumeric value too long
25004 String too long
25005 Numeric value too long
25006 Unsupported option name
25007 Option name requires a value which is missing
25008 Option name requires a value of a different type
25009 Option name received with a value, but this option does
not support values
25010 Same option name received more than once
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 is not supported
25017 String empty, option ignored
25018 A Universal Exit Language command was
expected but not found.
D-10 PJL Status Codes EN
PJL Semantic Errors (27xxx)
This group of status codes denote PJL semantic errors. As much of
the command is executed as possible, depending on the current
configuration of the printer.
Status
Code Display String or Code Meaning
27001 Generic semantic error
27002 EOJ command encountered without a previously
matching JOB command. An EOJ command does not
have a matching JOB command if the number of valid
EOJ commands received is greater than the number of
valid JOB commands received.
27003 Password protected—attempted to change NVRAM
value when password is set and the job is not a secure
PJL job.
27004 Cannot modify the value of a read-only variable.
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.
EN PJL Status Codes D-11
Auto-Continuable Conditions (30xxx)
This list specifies the set of PJL error codes and corresponding
control panel display strings for auto-continuable conditions. If no
action is taken, the device automatically continues if auto-continue is
set to true (except for 30035 and 30036 errors).
Status Code Display String or Code Meaning
30010 * STATUS BUFFER OVERFLOW
30016 20 MEM OVERFLOW or 20 MEMORY OVERFLOW
DATA LOST or 20 INSUFFICIENT MEMORY,
PRESS GO KEY
30017 21 PRINT OVERRUN or 21 PRINT OVERRUN DATA
LOST or 21 PAGE TOO COMPLEX
30018 40 ERROR or 40.1 HP MIO 1 ERROR
or 40.2 HP MIO 2 ERROR or
40 SER IO ERROR
30027 22 I/O CONFIG ERROR or 22 SER IO ERROR
22 HP MIO 1 IO ERROR CHECK SETUP or 22 HP
MIO 2 IO ERROR CHECK SETUP or 22 PARALLEL
IO ERROR CHECK SETUP
30034 41.x ERROR or 41.3 PAPER ERROR
30035 68 ERROR CHECK CONFIGURATION or 68
NVRAM ERROR, SETTINGS NOT SAVED or 68
ERROR
30036 68 SERVICE or 68 NVRAM FULL CHECK
CONFIGURATION or 68 NVRAM ERROR,
SETTINGS NOT SAVED
30072 49 REMOVE PAGE
30076 PERSONALITY MEMORY OVERFLOW/ OUT OF
MEMORY
30094 41.1 GENERAL MISPRINT ERROR
* If creating applications for the HP LaserJet 4 and 5 printer families, see
“Printer Status Readback” in the “HP LaserJet 4 and 5 Printer Family
Comments” section in Appendix A.
D-12 PJL Status Codes EN
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.5 NOISY VIDEO SYNC REQ SIGNAL
30099 INVALID INPUT SOURCE
30100 INVALID OUTPUT DESTINATION
30101 BINDING AGENT OUT OF SUPPLIES
30102 BINDING AGENT MEDIA MISALIGNMENT
30103 BINDING AGENT MEDIA CAPACITY
EXCEEDED
30104 EXTERNAL INPUT DEVICE PAPER PATH ERROR
30105 EXTERNAL OUTPUT DEVICE PAPER PATH
ERROR
30106 EXTERNAL INPUT DEVICE OPERATIONAL
ERROR
30107 EXTERNAL OUTPUT DEVICE OPERATIONAL
ERROR
30108 40 HP MIO ERROR, PRESS GO KEY
30109 40 BAD SERIAL DATA FORMAT, PRESS GO KEY
30110 22 HP MIO ERROR, PRESS GO KEY
30111 22 PARALLEL IO ERROR, PRESS GO KEY
30112 22 SERIAL IO ERROR, PRESS GO KEY
30113 STOPPING CHECK LAST PAGE
30114 PRESS SELECT TO CANCEL JOB
30119 MEDIA FEED ERROR
Status Code Display String or Code Meaning
EN PJL Status Codes D-13
PJL File System Errors (32xxx)
This list specifies the set of error codes for the PJL file system.
Status
Code Display String or Code Meaning
32000 General error
32001 Volume not available
32002 Disk full
32003 File not found
32004 No free file descriptors
32005 Invalid number of bytes
32006 File already exists
32007 Illegal name
32008 Can't delete root
32009 File operation attempted on a directory
32010 Directory operation attempted on a file
32011 Not same volume
32012 Read only
32013 Directory full
32014 Directory not empty
32015 Bad disk
32016 No label
32017 Invalid parameter
32018 No contiguous space
32019 Can't change root
32020 File Descriptor obsolete
32021 Deleted
32022 No block device
D-14 PJL Status Codes EN
Potential Operator Intervention
Conditions (35xxx)
This list specifies the set of PJL error codes and corresponding
control panel display strings for conditions where operator
intervention may be required. The device says “online” and continues
to operate, possibly with reduced functionality. Data may be lost.
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
Status Code Display String or Code Meaning
35028 BAD MIO
35029 W1 IMAGE ADAPT or IMAGE ASSIST or MEMORY
LOW, PAGE SIMPLIFIED
35030 WA JOB ALTERED
35031 W2 INVALID PERS or REQUESTED LANGUAGE
NOT AVAILABLE
35032 WL WARNINGS LOST
35037 W3 JOB ABORTED or CANCELING JOB or
INSUFFICIENT MEMORY, JOB CLEARED
35039 W9 JOB 600/LTR
35040 W0 JOB 600/A4
Status
Code Display String or Code Meaning
EN PJL Status Codes D-15
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 DISK, FLASH, or RAMDISK
as appropriate)
35084 WM JOB 600/LGL
35085 WM JOB 600/A3
35086 WM JOB 600/11x17
35087 WM JOB 300/A3*
35088 WM JOB 300/11x17*
35115 Volume 1 NOT INIT (Volume 1 is not initialized.
Volume 1 will be indicated as either DISK, FLASH, or
RAMDISK as appropriate)
35117 Volume 2 NOT INIT (Volume 2 is not initialized.
Volume 2 will be indicated as either DISK, FLASH, or
RAMDISK as appropriate.)
* For some printers, the WM JOB 300 message (35081) may be used
instead.
Status Code Display String or Code Meaning
D-16 PJL Status Codes EN
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 Display String or Code Meaning
40000 SLEEP MODE (STANDBY)*
40005 Cartridge error during align cartridges (or reading
setup sheet—DesignJet)
40010 14 NO EP CART or INSTALL TONER CARTRIDGE
or no electrical contact with one or more ink
cartridges (DesignJet)
40011 Accessing ink cartridges (DesignJet)
40019 REMOVE PAPER FROM [bin name]
40020 NO MICR TONER or INSTALL MICR TONER
CARTRIDGE
40021 12 PRINTER OPEN OR NO EP CART or CLOSE
PRINTER COVER (or lower lever or lower
window—DesignJet)
40022 13 PAPER JAM or REMOVE PAPER JAM
40024 FE CARTRIDGE
40026 PC INSTALL or INSTALL TRAY 2
40038 16 LOW TONER or TONER LOW or TONER LOW,
PRESS GO KEY
40046 FI INSERT CART
40047 FR REMOVE CART
40048 [PJL OPMSG]
40049 [PJL STMSG]
40050 50 SERVICE or 50 FUSER ERROR, CYCLE
POWER
40051 51 ERROR or 51 PRINTER ERROR, CYCLE
POWER
40052 52 ERROR or 52 PRINTER ERROR, CYCLE
POWER
40053 53-xy-zz ERROR
* This is not an error. The printer is waiting for data.
EN PJL Status Codes D-17
40054 54 ERROR
40055 55 ERROR
40056 56 ERROR
40057 57 SERVICE or 57 MOTOR FAILURE, CALL
SERVICE
40058 58 SERVICE or FAN MOTOR FAILURE, CALL
SERVICE
40059 59 ERROR
40061 61.x SERVICE
40062 62.x SERVICE
40063 63 SERVICE
40064 64 SERVICE or PRINTER ERROR, CYCLE
POWER
40065 65 SERVICE
40066 External paper handling device failure
40067 67 SERVICE
40068 69 SERVICE
40069 70 ERROR
40070 71 ERROR
40071 72 SERVICE
40079 PRINTER MANUALLY TAKEN OFFLINE or
OFFLINE or FORMFEEDING or SERVICE MODE
or 00 OFFLINE
40080 EE INCOMPATIBLE or
LC INCOMPATIBLE
40083 FS DISK FAILURE or 311.1.1 DISK FAILURE or
Volume 0 FAILURE (Volume 0 will be indicated as
either DISK, FLASH, or RAMDISK as appropriate)
40089 INCOMPLETE TRAY 3 INSTALLED
40090 INCOMPATIBLE ENVELOPE FEEDER INSTALLED
40092 81 SERVICE (XXX)
40093 REMOVE DUPLEX JAM
Status Code Display String or Code Meaning
D-18 PJL Status Codes EN
40096 41.3 UNEXPECTED PAPER SIZE
CHECK PAPER IN TRAY
40099 56.1 ERROR PRESS SELECT KEY
40100 56.2 ERROR PRESS SELECT KEY
40102 FINISHER ALIGN ERROR [BIN NAME]
40103 FINISH LIMIT REACHED [BIN NAME]
40104 INPUT DEVICE FEED PATH OPEN
40105 OUTPUT DEVICE DELIVERY PATH OPEN
40106 INPUT OPERATION ERROR X.YY
40107 OUTPUT OPERATION ERROR X.YY
40116 Volume 1 FAILURE (Failure on Volume 1. Volume 1
will be indicated as either DISK, FLASH, or
RAMDISK as appropriate)
40118 Volume 2 FAILURE (Failure on Volume 2. Volume 2
is indicated as either DISK, FLASH, or RAMDISK
as appropriate.)
40119 PAPER MISFEED
40120 Open face-up output bin
40121 Close face-up output bin
40122 Duplexer must be installed
40123 Duplexer error, remove duplexer
40124 Bad duplexer connection
40128 DRUM ERROR REPLACE DRUM KIT
40129 DRUM LIFE OUT REPLACE DRUM KIT
40130 DRUM LIFE LOW REPLACE DRUM KIT
40131 TRANSFER KIT OUT REPLACE KIT
40132 TRANSFER KIT LOW REPLACE KIT
40141 WASTE TONER FULL
REPLACE DRUM KIT
40142 INSTALL DRUM KIT
40143 REINSTALL TRANSFER BELT
40144 PRESS GO TO PRINT
PRESS SELECT TO CHANGE TONER
40146 41.5 UNEXPECTED PAPER TYPE
CHECK PAPER IN TRAY
Status Code Display String or Code Meaning
EN PJL Status Codes D-19
Foreground Paper Loading (41xyy)
Foreground paper loading messages are sent when one of the paper
input sources is out of paper and there is no other input source
available and loaded with the correct paper size. When this occurs,
the printer goes offline until someone loads paper.
The messages are in the format 41xyy. The following tables list the X
and Y values for these messages. For example, 41303 is a
foreground paper loading message indicating to load the LC tray with
legal-size paper.
X = Tray Code Tray
0 Multi-Purpose Tray or
Envelope Tray
1 Manual Feed
2 PC Tray or Universal Tray2
3 LC Tray or Universal Tray3
4 EE Tray or Envelope Feeder
5 Any HCI Tray
9 All Trays Empty
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
D-20 PJL Status Codes EN
Paper Jam Messages (LaserJet 5Si/5SiMx
only) (42xyy)
Foreground paper loading messages are sent when one of the paper
input sources is out of paper and there is no other input source
available and loaded with the correct paper size. When this occurs,
the printer goes offline until someone loads paper.
The messages are in the format 42xyy, where x is the number of
jammed pages that need to be cleared and yy is the location of the
jam that was detected. The following table lists the y values for these
messages. For example, 42203 indicates 2 pages are jammed in the
fuser output.
11 DL Envelope
12 Japan B4 Paper
13 Japan B5 Paper
14 B5 Envelope
15 Custom Media Paper
16 J-Postcard (or JB4 paper—LaserJet 6P,
LaserJet 2100)
17 J-RoundTrip Postcard (or JB5 paper—
LaserJet 6P, LaserJet 2100)
18 A5 Paper (or JPostcard—LaserJet 6P
19 Letter-R Paper (or JDoublePostCard—
LaserJet 6P, LaserJet 2100)
20 A4-R Paper (or A5 Paper—LaserJet 6P,
LaserJet 2100)
21 A5-R Paper
22 Japan B5-R Paper
23 Exec-R Paper
24 A6 Paper
25 Foolscap Paper
26 Japan B6 Paper
YY = Media Code Media Size
EN PJL Status Codes D-21
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 Fuser accordion jam
15 Printer could not auto eject paper
D-22 PJL Status Codes EN
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.
x = Device Paper Handling Device
1 First device attached to PHC
2 Second device attached to PHC
3 Third device attached to PHC
4 Fourth device attached to PHC
5 Fifth device attached to PHC
yy = Code Error Code
1 Unable to communicate with the PHC
2 Out of sequence packet
3 Bad transaction
4 Invalid status bits
5 Invalid status code
6 Invalid device specified
7 Invalid tray specified
8 Invalid bin specified
9 Invalid number of special purpose bytes
10 Invalid number of NVEE bytes
11 General PHC malfunction
12 Bad PHC RAM
13 PHC ROM checksum error
14 Faulty PHC FIFO
15 PHC cannot communicate with device(s)
16 PHC never ready during initialization
EN PJL Status Codes D-23
LaserJet 4000 / 5000 Series Paper Jam
Messages (44xyy)
This category contains unsolicited status error messages related to
paper jams (for the LaserJet 4000 and 5000 series printers only). The
messages are in the format 44xyy, where x is the number of sheets in
the printer, and yy is the location of the jammed sheet.
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
x Description
0 – 9 Number of jammed sheets
yy Jam Location
00 Paper jam in unknown location
01 Paper jam in the paper input area
02 Paper jam in the paper output area (may need to
open rear door of printer)
03 Paper jam underneath the top cover. Remove toner
cartridge to clear.
04 Paper jam in the duplexer
05 Paper jam in the duplex front cover area
06 Paper jam in the face down output area
07 Paper jam in the front door area
yy = Code Error Code
D-24 PJL Status Codes EN
Hardware Errors (50xxx)
These status codes are sent out when a hardware problem exists and
the printer is working well enough to send status messages.
Status Code Display String or Code Meaning
50000 General Hardware Failure
50001 ROM or RAM Error, ROM Checksum Failed
(or interface error [DesignJet])
50002 RAM Error, RAM Test Failed
(or part malfunction [DesignJet])
50003 Engine Fuser Error
50004 Engine Beam Detect Error
50005 Engine Scanner Error
50006 Engine Fan Error
50007 Engine Communications Error
50008 50.1 FUSER ERROR CYCLE POWER or LOW
FUSER TEMPERATURE
50009 50.2 FUSER ERROR CYCLE POWER or FUSER
TOOK TOO LONG TO WARM UP
50010 50.3 FUSER ERROR CYCLE POWER or FUSER
TOO HOT
50011 50.4 FUSER ERROR CYCLE POWER or BAD
FUSER
50012 51.1 ERROR PRESS SELECT KEY or BEAM
DETECT MALFUNCTION
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
EN PJL Status Codes D-25
50016 57.1 FAN FAILURE CALL SERVICE or FAN MOTOR
1 FAILURE
50017 57.2 FAN FAILURE CALL SERVICE or FAN MOTOR
2 FAILURE
50018 57.2 FAN FAILURE CALL SERVICE or FAN MOTOR
3 FAILURE
50019 57.4 FAN FAILURE CALL SERVICE or FAN MOTOR
4 FAILURE
50020 UPPER INPUT TRAY LIFTER MALFUNCTION
50021 LOWER INPUT TRAY LIFTER MALFUNCTION
50022 58.3 PRINTER ERROR CYCLE POWER or
MULTIPURPOSE TRAY LIFTER MALFUNCTION
50023 59.1 PRINTER ERROR CYCLE POWER or MAIN
MOTOR STARTUP FAILURE
50024 59.2 PRINTER ERROR CYCLE POWER or MAIN
MOTOR ROTATION FAILURE
50025 FINISHER MALFUNCTION [BIN NAME] or
EXTERNAL BINDING DEVICE HAS A
MALFUNCTION
50026 DEVICE ERROR X.YY CYCLE POWER or AN
EXTERNAL DEVICE HAS REPORTED A
MALFUNCTION
50027 DUPLEX ERROR CHECK DUPLEX UNIT or
DUPLEX UNIT GUIDE FAILED AND REQUIRES
SERVICE
50028 55.XX ERROR PRESS SELECT KEY or
COMMUNICATION FAILURE BETWEEN
FORMATTER AND ENGINE
Status Code Display String or Code Meaning
D-26 PJL Status Codes EN
50029 64 PRINTER ERROR CYCLE POWER or VIDEO
DMA TRANSFER TIMED OUT
50030 FAN MOTOR 5 FAILURE
50031 FAN MOTOR 6 FAILURE
50032 FAN MOTOR 7 FAILURE
50033 FAN MOTOR 8 FAILURE
505xx Firmware Error, Power Cycle
50599 Processor Error, Power Cycle
Status Code Display String or Code Meaning
EN Glossary-1
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. For
LaserJet printers with automatic I/O switching, if there is no current
print job, then automatic I/O switching is enabled and all I/O ports are
active.
Auto-Continue
If the auto-continue mode is configured to ON, the printer continues
printing during certain non-fatal error conditions. If auto-continue is
OFF and these same conditions occur, the printer goes off-line until
the Continue or On Line key is pressed. Auto-continue mode can be
configured using the printer's control panel or using PJL commands
(refer to the user's manual for the specific PCL 5 printer).
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.
Glossary-2 EN
After a job boundary is encountered and there is no data available
from the active I/O port, all the I/O ports are enabled and checked for
available data. The first port to receive data is the new active I/O port.
The other ports are temporarily disabled, the print job processed, and
then the automatic I/O switching process repeats.
Configuration
Configuration is the process of changing printer settings. The printer
is configured using the control panel or PJL.
Context-Sensitive Printer Language Selection
Context-sensitive printer language selection is a method of selecting
a printer language by looking at the first portion of a job to discover
clues as to which printer language to use. The syntax differences in
each printer language allow the language to be determined.
Context-sensitive language selection is only operational if the control
panel variable PERSONALITY is set to AUTO and the print job does
not contain a PJL ENTER command before non-PJL data.
Control Code
A control code is a non-printable ASCII character that initiates a
printer function, for example carriage return (<CR>), line feed (<LF>),
and form feed (<FF>).
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.
Download
The process of transferring data, including soft fonts, macros, or
raster data from a host computer to the printer.
Environment
See “Print Environment.
EN Glossary-3
Explicit Switching
Explicit switching occurs when a printer language is activated due to
processing a PJL ENTER command.
Factory Default
Factory defaults refer to the feature settings that are programmed into
the printer at the factory. These values are stored in read-only
memory and cannot be changed. Factory default settings are in use
unless you override them using either the control panel or by sending
printer commands.
Factory Default Environment
A factory default is a setting programmed into the printer at the
factory. The group of all the printer's factory settings is referred to as
the Factory Default Environment.
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 context-sensitive 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.
Macro
A macro is a collection of escape sequences, control codes, and data
downloaded to the printer. Its execution can be initiated using a single
command.
Modified Print Environment
Once a printer language, such as PCL, is entered, the current feature
settings constitute the modified print environment. Whenever a
feature setting is altered using printer language commands, the new
setting is recorded in the Modified Print Environment.
Glossary-4 EN
Non-Printing Mode
Printing selected pages in a print job by sending the entire print job,
the desired starting page number, and the ending page number. The
PJL JOB command options START and END are used to provide the
starting page number and the ending page number. When the printer
processes the pages that are not printed, the printer is said to be in
non-printing mode.
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.
Personality
The printer firmware related to transforming a particular type of
printer language data, like PCL or PostScript, into images that the
printer's operating system can print. The printer uses different
personalities (different firmware) to handle data from different printer
languages. PCL and PostScript commands are each processed by
separate firmware.
New personalities can be added to some LaserJet printers using
means such as cartridges or ROM SIMMs. PJL is not a personality
(you cannot print using PJL). See “Personality Switching.
Personality Switching
The process of shutting down the current personality and activating
the appropriate personality to process the next print job. For example,
when the printer is processing PCL data, the PCL personality is
activated; for PostScript data, the PostScript personality is activated.
EN Glossary-5
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. Properly formed
PJL jobs always begin and end with the UEL command.
PJL Reset Condition
A PJL reset condition prompts the printer to load the User Default
values into the PJL Current Environment, which are then loaded into
the Modified Print Environment. In this document, the term PJL reset
condition refers to any of the following events: a power-on, UEL
command (when not between a JOB/EOJ command pair), the @PJL
INITIALIZE, @PJL RESET, @PJL JOB, or @PJL EOJ commands.
Also included are other printer-specific events, such as control panel
reset, a printer language-specific exit command (when not between a
JOB/EOJ pair), such as ^D for PostScript, and data stream idle
timeouts (see Appendix A for information about job boundaries and
timeouts for the HP LaserJet 4 and 5 printer families).
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 11 for more
information about creating well-formed jobs.
Print Environment
The group of all the printer's current feature settings, collectively, is
referred to as the print environment. The print environment is
modified using printer commands and control panel settings.
Glossary-6 EN
Printer Language
A set of syntax and semantic rules used to control a printer. PCL and
PostScript are both printer languagesthey both contain commands
that enable the user to control where marks are printed on a page.
Ready Message
A ready message is displayed on the control panel display when no
error conditions are present. When errors occur, an error message
replaces the ready message until the situation is corrected or the
printer auto-continues. The PJL RDYMSG command is used to
specify a ready message to replace the “00 READY” message.
Secure PJL Job
A “secure” PJL job is a job that contains the correct password in the
JOB command. See the “PJL Job Security” section in Chapter 5 for
more information.
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.
Universal Exit Language (UEL) Command
A PJL command, understood by all LaserJet personalities, that
prompts the active personality to finish processing the current job and
exit the personality. PJL also recognizes the UEL command and,
when received, PJL discards any unprocessed partial PJL command
and prepares to accept the next PJL command.
EN Glossary-7
Unsolicited Status
Unsolicited status (USTATUS) is printer status information sent as a
result of certain printer events occurring, such as when the printer
runs out of paper, a job finishes printing, or when a certain time
period elapses. There are several types of unsolicited status
(DEVICE, JOB, PAGE, and TIMED); unsolicited status must be
enabled with the USTATUS command.
User Default
A user default is a default value that is selectable by way of the
operator control panel or the PJL DEFAULT command.
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-8 EN
EN 1
Index
Symbols
@PJL 2-5
| (vertical bar) Glossary-1
Numerics
10010 error 11-25
1A (line continuation character) Glossary-
1
A
active I/O port Glossary-1
alphanumeric variables 2-7
ANKCONDENSE variable 6-33
application design ideas 11-27
application developers 1-iii
AUTOCONT variable 6-12
auto-continuable conditions D-11
auto-continue Glossary-1
automatic I/O switching Glossary-1
AUTOSELECT variable 6-12
B
background paper loading D-4, D-6
backward-compatibility mode A-49
batch file example C-4
BINDING variable 6-12
Bi-Tronics interface 11-19
BITSPERPIXEL variable 6-13
blank lines not allowed 3-3
buffer overflow 11-24, A-45
C
C programming language C-1
cancelling print jobs 5-13
CARRIAGERETURN variable 6-33
CHARACTERSET variable 6-33
CLEARABLEWARNINGS variable 6-13
collating multiple copies A-58
Color LaserJet 4500 series printers A-63
Color LaserJet 8500 series printers A-65
Color LaserJet printer A-52
command 2-4
command format 2-4
command modifier 2-4
command summary 3-6, B-1
commands grouped by application 3-6
COMMENT command 4-6
example 4-6
compatibility of PJL 1-4
compatibility with LaserJet III A-49
compatibility with PCL 1-5
compatibility with PostScript 1-5
COMPRESSRASTERSTORAGE variable
6-13
configuration Glossary-2
configuration information
requesting 7-17
configuration status 7-1
context switching 4-7
context-sensitive printer language
selection Glossary-2
context-sensitive switching 4-2
CONTEXTSWITCH variable 6-13
Continue key 6-13
control code Glossary-2
control codes 2-3
control panel lock 5-11
control panel messages, changing 8-1
control panel settings 3-4
conventions, manual 2-1
COPIES variable 6-14
CPLOCK variable 5-11, 6-14
current environment 6-2
D
default Glossary-2
DEFAULT command 2-5, 6-3, 6-7, 6-10,
6-35, 6-36
example 6-38, 6-40
default variables 7-10
DENSITY variable 6-14
design ideas 11-27
DesignJet printers A-5, A-40, A-41, A-
42
DeskJet 1200C printer A-3
DeskJet 1200C/1600C family A-52
device attendance commands 8-1
device status 7-33
DEVICE variable 7-33
DINQUIRE command 7-10
example 7-12
example, language-specific 7-13
disk lock 5-11
DISKLOCK variable 5-11, 6-14
download Glossary-2
DUPLEX variable 6-14
Index-
2 EN
E
ECHO command 7-3, 7-14, 11-26
example 7-15
EconoMode A-51
ECONOMODE variable 6-14
ENTER command 2-3, 4-4, 6-7
example 4-5
ENTER LANGUAGE command A-44
environment Glossary-2
environment commands 6-1
environment variable support A-6
environment variables 6-11
environments 6-2
changing settings 6-5
defaulting 6-2
example (changing settings) 6-6
Factory Default 6-2, 6-7
Modified Print 6-2, 6-3, 6-7
PJL Current 6-2, 6-3, 6-7
printer language-specific 6-7
summary 6-6
User Default 6-2, 6-3, 6-7
EOJ command 5-8, 6-9
errors, processing 2-9
Esc/P printer language 4-4, 6-21, 6-26
variables 6-33
ESC/P-specific variables 6-31
example printing system 11-19
examples, programming C-1
explicit switching 4-7, Glossary-3
F
Factory Default Environment 6-2, 6-7,
Glossary-3
environments 6-2
feature comparison A-1
feature settings 6-1
file system commands 9-1
FILEERROR 9-6
FINISH variable 6-14
font sources 7-25
FONT variable 6-33
FONTNUMBER 7-25
FONTNUMBER variable 6-27, 6-28
FONTSOURCE variable 6-29
foreground paper loading D-19
format of PJL commands 2-4
FORMLINES variable 6-15
front panel control 1-3
FSAPPEND command 9-3
FSDELETE command 9-7
FSDIRLIST command 9-5
FSDOWNLOAD command 9-8
FSINIT command 5-10, 9-9
FSMKDIR command 9-10
FSQUERY command 9-11
FSUPLOAD command 9-13
H
hardware errors D-24
HOLD variable 6-15, 10-2, 10-6
HOLDKEY variable 6-15, 10-2
HOLDTYPE variable 6-15, 10-3
HP Explorer Software 1-iii
I
I/O Buffering 6-17
I/O switching 11-22
I/O timeouts 6-25
identifiers 2-3
IMAGEADAPT variable 6-15
IMAGELOCATION variable 6-15
implicit switching 4-7, 6-21, 6-26,
Glossary-3
INFO command 7-16
INFO CONFIG command 7-17
example 7-19
INFO FILESYS command 7-21
INFO ID command 7-17
INFO MEMORY command 7-22
INFO PAGECOUNT command 7-23
INFO STATUS command 7-24
INFO USTATUS command 7-29
INFO VARIABLES command 7-25
informational messages D-2
INITIALIZE command 6-2, 6-5, 6-7, 6-9,
6-39, 6-40
example 6-40, 6-41
initializing printer 6-10
INQUIRE command 6-7, 7-5
example (request feature settings) 7-7
example, language-specific 7-8
INTRAY1 variable 6-15
INTRAY1SIZE variable 6-16
INTRAY2 variable 6-16
INTRAY2SIZE variable 6-16
INTRAY3 variable 6-16
INTRAY3SIZE variable 6-16
INTRAY4SIZE variable 6-16
INTRAY5SIZE variable 6-17
INTRAY6SIZE variable 6-17
INTRAY7SIZE variable 6-17
INTRAY8SIZE variable 6-17
introduction to PJL 1-1
invalid commands 2-9
IOBUFFER variable 6-17
IOSIZE variable 6-17
IPARM parameter (port-specific) 6-35, 6-
36, 6-37, 6-40, 6-45, 7-5, 7-10
Index-
EN 3
J
JAMRECOVERY variable 6-31
Japanese character set 2-8
JIS X0201-76 character set 2-8, 5-4, 8-3,
8-6, 8-7
job boundaries 5-4
job boundaries, printer-specific A-47
job boundary Glossary-3
job cancellation 5-13
JOB command 5-2, 6-9
example 5-5, 5-6
job management commands 10-1
job recovery 7-43
job requirements 4-2
job security 5-10, A-50
job separation commands 5-1
JOB variable 7-36
JOB/EOJ pairs 5-2, 5-8
JOBATTR variable 6-17
JOBID variable 6-17
JOBIDVALUE variable 6-17
JOBNAME variable 6-18, 6-24, 10-3,
10-6
JOBOFFSET variable 6-18
K
kernel commands 4-1
L
LANG variable 5-4, 6-18
language switching 1-1, 1-3, A-44
example C-2
printer language switching 4-7
languages, switching 3-4
LaserJet 1100 series A-51
LaserJet 1100 series printers A-61
LaserJet 2100 series printers A-62
LaserJet 4 family comments A-44
LaserJet 4 printer 1-4
LaserJet 4000 and 5000 series printers
paper jam messages D-23
LaserJet 4000 series printers A-44, A-59
LaserJet 4500 series printers A-63
LaserJet 4L printer A-51
LaserJet 4LC printer A-51
LaserJet 4ML printer A-51
LaserJet 4P printer 6-26, 6-37
LaserJet 4PJ printer 2-8, 5-4, 6-21, 6-
30, 8-3, 8-6, 8-7, A-2
LaserJet 5000 series printers A-59
LaserJet 5L printer A-51
LaserJet 5Si Mopier printer A-56, A-57
LaserJet 5Si/5SiMx printers A-56, A-57
LaserJet 6L printer 6-2, A-51
LaserJet 6P/6MP printers A-44, A-51
LaserJet 8000 series printers A-64
LaserJet 8500 series printers A-65
LaserJet IIISi printer 1-4, A-43
line spacing (FORMLINES) 6-15
line termination 3-3
LINETERMINATION variable 6-30
LOWTONER variable 6-18
LPARM 2-4
PCL 6-27
personality 6-12
POSTSCRIPT 6-31
M
macro Glossary-3
manual organization 1-iv
MANUALFEED variable 6-18
MEDIASOURCE variable 6-18
MEDIATYPE variable 6-18
memory available 7-22
memory, commands that affect A-46
minimum set of PJL commands 4-1
MIO card 11-25
Modified Print Environment 6-2, 6-7,
Glossary-3
environments 6-2
monitor printer status 11-5
MPTRAY variable 6-19
multi-user environment 7-14
multi-user environments 11-18
N
naming jobs 5-2
nested jobs 5-7
networks 11-18
non-printing mode 5-3, 5-9, 7-43,
Glossary-4
non-volatile memory Glossary-4
non-volatile RAM 6-7
numerica variables 2-7
O
offline Glossary-4
online Glossary-4
operator intervention D-14, D-16
operator message, changing 8-5
OPMSG command 8-5
example 8-6
option name 2-5
ORIENTATION variable 6-19
OUTBIN variable 6-19
OUTBINPROCESS variable 6-19
OUTLINEPOINTSIZE variable 6-19
OUTTONER variable 6-19
overflow, data buffer 11-24
overview 3-1
Index-
4 EN
P
page count 5-4, 7-23
PAGE variable 7-38
PAGELENGTHACCURACY variable 6-
19
PAGEPROTECT variable 6-20
PaintJet XL300 printer 1-4, A-3
PAPER variable 6-20
PARALLEL variable 6-21
parser errors D-7
parser warnings D-9
parsing errors 2-10
password 5-3
password protection 5-10
PASSWORD variable 5-10, 6-21
PCL 5 Comparison Guide 1-vii
PCL/PJL Technical Quick Reference
Guide 1-vii
PCL/PostScript switching C-2
PCL-specific variables 6-26, 6-27
personalities
adding dynamically 6-40, 6-42
personality 6-3, Glossary-4
personality switching 1-1, Glossary-4
LaserJet IIISi A-43
PERSONALITY variable A-16, A-27, A-
39
PERSONALITY variable (port-specific) 6-
26
PITCH variable 6-30
PJL
adding comments 4-6
and I/O switching 11-22
application types 11-2
benefits 1-3
capabilities 1-1
command formats 2-4
command summary B-1
command syntax and format 2-1
command usage 3-1
commands grouped by function 3-6
compatibility 1-4
current environment 6-2, 6-7,
Glossary-5
environment variable support A-6
environment variables 6-11
environments 6-2
feature comparison A-1
feature support A-2
file system commands 9-1
getting to desired state 6-33
handling unexpected responses 11-25
in multi-user systems 11-18
introduction 1-1
job Glossary-5
job requirements 3-3
job security 5-10, A-50
job separation commands 5-1
minimum command set 4-1
prefix 2-5
processing invalid commands 2-9
programming tips 10-1, 11-1
requesting printer status 11-18
reset condition 6-8, Glossary-5
sample jobs 3-4
security 5-1, 5-10
services 11-2
status codes D-1
status requirements 7-3
syntax rules 2-5
using 3-1
well-formed jobs 3-3
white space in commands 2-6
PLANESINUSE variable 6-22
poorly formed print job Glossary-5
port-specific variable 7-10
port-specific variables 6-26, 6-40, 6-47,
7-5, 7-25
PostScript compatibility 1-5
PostScript, switching to 4-4
PostScript/PCL switching C-2
PostScript-specific variables 6-31
powersave mode 6-22
POWERSAVE variable 6-22
POWERSAVETIME variable 6-22
prefix (@PJL) 3-3
prefix, PJL 2-5
print data generators 11-3
print environment 6-2, Glossary-5
print job initialization 6-10
PRINTAREA variable 6-22
printer feature comparison A-1
printer I/O switching 11-22
printer language Glossary-6
printer language commands 6-3
printer language switching 1-1, 1-3, 4-4,
4-7, A-44, C-2
and performance 4-8
LaserJet IIISi A-43
printer languages
other 1-5
PostScript 1-5
switching 3-4
printer model 7-17
printer resources 11-5
printer sharing 11-18
printer sharing boxes 11-19
printer sharing devices 11-25
printer status readback 1-3
printer status readback usage 11-21
printer status requirements 7-3
printer status, requesting 11-18
Index-
EN 5
printer utilities 11-5
printing pre-existing jobs 11-11
PRINTQUALITY variable 6-22
product-specific feature support A-1
programming examples C-1
programming tips 10-1, 11-1
PRTPSERRS variable 6-31
PTSIZE variable 6-30
Q
QTY variable 6-22
R
RDYMSG command 8-2
example 8-3
example (batch file) C-4
readback, printer status 1-3
readback, status 7-1
ready message Glossary-6
ready message, changing 8-2
REFILLDURATION variable 6-22
REFILLTHRESHOLD variable 6-23
REFILLTYPE variable 6-23
related documentation 1-vii
RENDERMODE variable 6-23
REPRINT variable 6-23
RESET command 6-9, 6-10, 6-40, 6-42
example 6-40, 6-44
reset conditions, PJL 6-8
resetting printer 6-33
Resolution Enhancement 6-24
RESOLUTION variable 6-24
resource saving A-47
RESOURCESAVE variable 6-24
RESOURCESAVESIZE variable 6-24
response data buffer overflow 11-24
RET variable 6-24
S
sample printing system 11-19
security, PJL 5-1
semantic errors D-10
semantic warnings 2-9
SET command 6-3, 6-7, 6-10, 6-35, 6-
40, 6-42, 6-45
example 6-40, 6-48
Shift-JIS parsing 6-30
solicited status Glossary-6
space between characters 2-5
spooler control 1-3
spoolers 4-5, 5-6, 11-11
stale status responses 11-24
stapling documents 6-14, A-56, A-57
status codes D-1
status readback 1-3, Glossary-6
determining if available 11-21
LaserJet 4 A-45
old responses 11-24
unexpected responses 11-25
status readback and printer sharing 11-19
status readback commands 7-1
status readback format 7-4
status readback usage 11-21
STMSG command 8-7
example 8-9
string variables 2-8
switching languages A-44
switching printer languages 1-3, 3-4
printer language switching 4-7
symbol set 6-30
SYMSET variable 6-28, 6-30
synchronizing job and page status 5-2
synchronizing status information 7-14
synchronizing status responses 7-3
syntax errors 2-9
syntax of PJL commands 2-1
syntax rules 2-5
syntax warnings 2-9
SYS SWITCH A-43
T
technical support personnel 1-iii
termination, line 3-3
TIMED variable 7-40
TIMEOUT variable 6-25
timeouts A-48
TOPMARGIN variable 6-33
U
UEL (Universal Exit Language) command
2-4
UEL command 1-3, 3-1, 4-2, 6-9,
Glossary-6
example 4-3
Universal Exit Language (UEL) command
2-4, 4-2, Glossary-6
UEL command 4-2
unsolicited device status
example 7-35
unsolicited job status 5-9, 7-36
unsolicited page status 5-4, 7-38
unsolicited status Glossary-7
determining choices 7-29
turning off 7-42
User Default Environment 6-2, 6-7,
Glossary-7
environments 6-2
USERNAME variable 6-24, 10-4, 10-6
using PJL 3-1
USTATUS command 2-10, 5-4, 7-31
USTATUS DEVICE command 7-33
Index-
6 EN
USTATUS JOB command 7-36
USTATUS PAGE command 7-38
USTATUS TIMED command 7-40
USTATUSOFF command 7-42
utilities 11-5
V
value 2-4
variable support A-6
variable types 2-7
variables
environment 6-11
INFO VARIABLES command 7-25
PCL-specific 6-26, 6-27
PJL environment 6-12
PostScript-specific 6-31
vertical bar Glossary-1
W
well-formed jobs 3-3
white space (WS) 2-5
white space, placement 2-6
WIDEA4 variable 6-25
WIN31J symbol set 6-30
Index-
2003 Hewlett-Packard Development Company©
http://www.hp.com
*5021 *
*5021 *
-0380
-0380
5021-0380

Navigation menu