Home > Products Windows > PCL Converter


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)