Printer Command Language, more commonly
referred to as PCL, is a Page description language (PDL) developed by HP
as a printer protocol and has become a de facto industry standard. Originally
developed for early inkjet printers in 1984, PCL has been released in varying
levels for thermal, matrix printer, and page printers. HP-GL and PJL are
supported by later versions of PCL.
PCL is occasionally and incorrectly said to be an abbreviation for Printer
Control Language which actually is another term for Page description language.
PCL has been criticized for having less error tolerance than the competing
PostScript printing language. PCL errors are especially common with PCL 6
hardware and drivers.
PCL levels 1 through 5 overview
PCL levels 1 through 5e/5c are command based languages using control sequences
that are processed and interpreted in the order they are received. At a consumer
level, PCL data streams are generated by a print driver. PCL output can also be
easily generated by custom applications.
PCL 1 was introduced in 1984 on the HP ThinkJet 2225 and provides basic
text and graphics printing with a maximum resolution of 150 dpi (dots per inch).
PCL 1+ was released with the HP QuietJet 2227.
PCL 2 added Electronic Data Processing/Transaction functionality.
PCL 3 was introduced in 1984 with the original HP LaserJet. This added
support for bitmap fonts and increased the maximum resolution to 300 dpi. Other
products with PCL 3 support were the HP DeskJet ink jet printer, HP 2932 series
matrix printers and HP RuggedWriter 2235 matrix printers. PCL 3 is still in use
on several impact printers which replaced the obsoleted HP models.
PCL 3+ (mono) and PCL 3c+ (color) are used on later HP DeskJet and
HP PhotoSmart products.
PCL 3GUI is used in the HP DesignJet and some DeskJet series printers. It
uses a compressed raster format that is not compatible with standard PCL 3.
PCL 4 was introduced on the HP LaserJet II in 1985, adding macros, larger
bitmapped fonts and graphics. PCL 4 is still popular for many applications.
PCL 5 was released on the HP LaserJet III in March 1990, adding
Intellifont font scaling (developed by Compugraphic, now part of Agfa), outline
fonts and HP-GL/2 (vector) graphics.
PCL 5e (PCL 5 enhanced) was released on the HP LaserJet 4 in October 1992
and added bi-directional communication between the printer and the PC and
Windows fonts.
PCL 5c introduced color support on the HP PaintJet 300XL and HP Color
LaserJet in 1992.
PCL 6 overview
PCL 6 was introduced around 1995, and consists of:
PCL 6 Enhanced: An object-oriented PDL optimized for printing from GUI
interfaces such as Windows and compressed to optimize throughput. Formerly known
as PCL XL.
PCL 6 Standard: Equivalent to PCL 5e or PCL 5c, intended to provide
backward compatibility.
Font synthesis: Provides scalable fonts, font management and storage of
forms and fonts.
PCL 6 Enhanced features a 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; and complete backward compatibility.
In early implementations, HP did not market PCL 6 well, thus causing quite a bit
of confusion in terminology. PCL XL was renamed to PCL 6 Enhanced, but many
third party products still use the older term. Some products may claim to be PCL
6 compliant, but may not include the PCL 5 backward compatibility. PCL 6
Enhanced is primarily generated by the printer drivers under Windows and CUPS.
Due to its structure and compression methodology, it is rarely used by custom
applications.
PCL 6 Enhanced is a stack-based, object-oriented protocol, similar to
PostScript. However, it is restricted to binary encoding as opposed to
PostScript, which can be sent either as binary code or as plain text. The
plain-text commands and code examples shown in the PCL programming documentation
are meant to be compiled with a utility like HP's JetASM before being sent to a
printer. Perhaps because PCL 6 is designed for small size, operators are not as
flexible or orthogonal as in PostScript.
PCL 6 Enhanced is designed to match the drawing model of Windows GDI. In this
way, the Windows printer driver simply passes through GDI commands with very
little modification, leading to faster return-to-application times. Microsoft
has extended this concept with its next-generation XPS format, and printer
implementations of XPS are being developed. This is not a new idea: it is
comparable with Display Postscript and Apple's Quartz, and is in contrast to "GDI
Printers" which send the printer a compressed bitmap.
PCL 6 class revisions
Class 1.1
Draw tools: Support drawing lines, arcs/ellipses/chords, (rounded)
rectangles, polygons, Bezier paths, clipped paths, raster images, scanlines,
raster operations.
Color handling: Support 1/4/8-bit palettes, RGB/grey color space. Support
custom halftone patterns (max 256 patterns).
Compression: Supports RLE.
Units of measurement: Inch, millimetre, tenth of millimetre.
Paper handling: Support custom or predefined sets of paper types,
including common Letter, Legal, A4, etc. Can choose paper from manual feed,
trays, cassettes. Paper can be duplexed horizontally or vertically. Paper can be
oriented in portrait, landscape, or 180 degree rotation of the former two.
Font: Supports bitmap or TrueType fonts, 8 or 16-bit code points.
Choosing character set uses different symbol set code from PCL 5. When bitmap
font is used, many scaling commands are unavailable. When TrueType font is used,
variable length descriptors, continuation blocks are not supported. Outline font
can be rotated, scaled, or sheared.
Class 2.0
Compression: Added a proprietary JPEG compression called JetReady.
Paper handling: Media can redirected to different output bins (up to
256). Added A6 and Japanese B6 preset media sizes. Added Third cassette preset,
248 external tray media sources.
Font: Text can be written vertically.
Class 2.1
Color handling: Added Color matching feature.
Compression: Added Delta Row.
Paper handling: Orientation, media size are optional when declaring a new
page. Added B5, JIS 8K, JIS 16K, JIS Exec paper types.
Class 3.0
Color handling: Allow using different halftone settings for vector or
raster graphics, text. Supports adaptive halftoning.
Protocol: Supports PCL passthrough, allowing PCL 5 features to be used by
PCL 6 streams. However, some PCL 6 states are not preserved when using this
feature.
Font: Supports PCL fonts.
Viewer/Converter: PCL Converter (Created by
VeryPDF) can view, convert or print any level of PCL 6 to any printer.
PJL overview
Main article: Printer Job Language
PJL (Printer Job Language) was introduced on the HP LaserJet IIIsi. PJL
adds job level controls, such as printer language switching, job separation,
environment commands, status readback, device attendance and file system
commands.