HP Color LaserJet and LaserJet Series
Printers - History of Printer Command Language (PCL)
This document presents an overview of the history, architecture, and printer
commands of the Printer Command Language (PCL) for HP Color LaserJet and
LaserJet series printers.
History and architecture
HP created PCL to provide an efficient way to control printer features across
many different printing devices. PCL was originally devised for HP's dot matrix
and Inkjet printers. The first printer in HP's LaserJet series, the HP LaserJet
was released in 1984 with the PCL 3 Language.
PCL commands are compact escape sequence codes that are embedded in the print
job before being sent to the printer. HP PCL formatters and fonts are designed
to quickly translate application output into high-quality, device-specific,
raster print images.
The PCL printer language is common to all HP printers. This helps to minimize
printer support problems and protect HP printer investment in applications and
printer driver software.
The PCL printer language is successful because the following points remain
consistent across all levels:
1. All HP Color LaserJet and LaserJet series printers implement PCL printer
language features consistently.
2. HP printers implement the PCL feature in very cost-effective formatters.
3. HP printers have the ability to ignore most unsupported commands.
There are five major levels of PCL. The creation of these levels was driven by
the combination of printer technology developments, changing user needs and
application software improvements. The first versions of PCL (PCL 1 and 2) were
used in HP impact and Inkjet printers in the early 1980s. The five phases of the
PCL printer language are as follows:
PCL 1 - Supported by all HP LaserJet series printers (except the HP
LaserJet 3100 and 3150 series products).
Provided very basic printing and spacing functionality (text printing only) PCL
1 is the base set of functions provided for simple, single-user workstation
output. Introduced in the early 1980s.
PCL 2 - Supported by all HP LaserJet series printers (except the HP
LaserJet 3100 and 3150 series products).
Provided Electronic Data Processing/Transaction functionality. Functions were
added for general purpose, multi-user system printing (text printing only).
Introduced in the early 1980s.
PCL 3 - Released with the following printers: HP LaserJet series printer,
HP LaserJet Plus series printer.
Provided the commands and features required for simple high quality word
processing and data printing. Allowed for the use of a limited number of
bitmapped fonts and graphics. PCL 3 was widely imitated by other printer
manufacturers and was referred to by these companies as "LaserJet Plus
Emulation." Introduced in 1984.
PCL 4 - Released with the following printers: HP LaserJet Series II, HP
LaserJet IID, HP LaserJet IIP, and HP LaserJet IIP Plus series printers.
Provided new page printing capabilities. Supported macros, larger bitmapped
fonts and graphics. Introduced in 1985.
PCL 5 - Released with the following printers: HP LaserJet III, HP LaserJet
IIID, HP LaserJet IIIP, and HP LaserJet IIISI series printers.
Provided ultimate office publishing functionality. New publishing capabilities
included font scaling, outline fonts and HP-GL/2 (vector) graphics. PCL 5 was
designed for more complex desktop publishing, graphic design, and presentation
applications. Introduced in 1990 with the HP LaserJet III series printer.
PCL 5E (Enhanced) - Released with the following printers: HP LaserJet 4, HP
LaserJet 4M, HP LaserJet 4L, HP LaserJet 4ML, HP LaserJet 4P, HP LaserJet 4MP,
HP LaserJet 4Plus, HP LaserJet 4Mplus, HP LaserJet 5P, HP LaserJet 5MP, HP
LaserJet 5L, HP LaserJet 5L-FS, HP LaserJet 5Lxtra, HP LaserJet 6L, HP LaserJet
6LXI, HP LaserJet 6LSE, HP LaserJet 6P, HP LaserJet 6MP, HP LaserJet 6PXI, HP
LaserJet 6PSE, HP LaserJet 5si, HP LaserJet 8000, and HP LaserJet 9000 series
printers.
Provided bidirectional communication between the printer and the PC. Features a
wider selection of fonts for use primarily with Microsoft Windows applications.
PCL 5C (Color) - Released with the following printers: HP Color LaserJet, HP
Color LaserJet 5, HP Color LaserJet 5M, HP Color LaserJet 2500, HP Color
LaserJet 4500, HP Color LaserJet 4550, HP Color LaserJet 4600, HP Color LaserJet
5500, HP Color LaserJet 8500 and HP Color LaserJet 8550 series printers.
Provided the commands needed to support color printing.
Each new version of the language includes commands not found in older versions
as well as the older PCL commands. As a result, printers with more recent
versions of PCL are backwards compatible with software that supports older
versions of the language.
PCL 6 - Released with the following printers: HP LaserJet 4000 series, HP
LaserJet 4100 series, HP LaserJet 2100 series, HP LaserJet 2200 series, HP
LaserJet 1200, HP LaserJet 3200, HP LaserJet 3300, HP LaserJet 4200 series, HP
LaserJet 4300 series, HP LaserJet 5000 series, HP LaserJet 5100 series, HP
LaserJet 8000 series, HP LaserJet 9000 series printers.
Features new modular architecture that can be easily modified for future HP
printers; faster return to application; faster printing of complex graphics;
more efficient data streams for reduced network traffic; better WYSIWYG
printing; improved print quality; truer document fidelity; and complete backward
compatibility.
NOTE: PCL6 is very different from PCL5 and previous PCL versions. One
significant difference is the manner in which the commands are sent to the
printer.
Printer commands
PCL printer commands provide access to printer features. There are four general
types of HP printer language commands:
* Control codes
* PCL commands
* HP-GL/2 commands
* PJL commands
Control codes
A control code is a character that initiates a printer function (for example,
Carriage Return (CR), Line Feed (LF), Form Feed (FF), etc.).
PCL commands
PCL commands provide access to the printer's PCL control structure. The PCL
structure controls all of the printer's features except those used for vector
graphics, which are controlled by the HP-GL/2 commands.
NOTE: PCL commands (other than single-character control codes) are also
referred to as "escape sequences." The terms are used interchangeably.
Once a PCL command sets a feature of the printer that feature remains set until
that PCL command is repeated with a new value, or the printer is reset to
default. The example below shows a PCL command for the legal paper size.
Example:
EcE&l3A
For more information on PCL commands, please refer to HP LaserJet Series
Printers - PCL Commands, Basic Page Formatting, and Font Selection (bpl02705) .
HP-GL/2 commands
HP-GL/2 (vector graphic) commands are two letter codes that represent the
function of the command (such as IN for initialize). After the two-letter
mnemonic, there may be one or more parameters that identify details of how to
process the command. The example below would appear at the beginning of a
sequence of HP-GL/2 commands and gives instructions to initialize HP-GL/2 and
select pen number 1.
Example:
IN;
SP1;
For more information on using HP-GL/2 commands, please refer to HP LaserJet
Printers - Understanding and Using HP-GL and HP-GL/2 (bpl05546) .
PJL commands
Printer job language (PJL) commands provide job level control, unlike PCL and
HP-GL/2 (which control the placement of dots on the printed page). One of the
main features PJL offers is the ability to switch printer languages
(personalities) between jobs. Applications supporting PJL can print one job
using PCL and then print the next job using PostScript (or another printer
language) - without any operator intervention. PJL can also command two-way
communications with the printer. PJL can request information from the printer
such as printer model, configuration, printer status, and job status. PJL also
can be used to change the printer's control panel settings (change default
settings without using the control panel) and modify the message displayed on
the control panel. PJL was primarily designed for use by application developers
and technical support personnel. The example below shows the command to change
printer density to 5.
Example:
EC%-12345X@PJL DEFAULT DENSITY=5
For more information on using PJL commands, please refer to the following
documents:
* HP LaserJet Series Printers - Common PJL Commands for Front Panel Settings and
Default Page Formatting (bpl01965)
* HP LaserJet Series Printers - Changing Printer Defaults Permanently Using PJL
Commands, DOS Editor, and the Autoexec.bat File (bpl04297)
* HP LaserJet Series Printers - Using Printer Job Language (bpl01378)