Alternatives to PostScript

Of course PostScript is not the only page description language that is available on the market. There are alternatives but most of these languages are specific to one vendor. Among these, some examples are CaPSYL and LIPS from Canon, 3812 from IBM, ART from Fuji Xerox, PreScribe from Kyocera and XES, JDL and Interpress from Xerox (actually Interpress is the precursor to PostScript).

Below is an overview of the most popular and universally accepted alternatives to PostScript. These are alternatives, not equivalents. With the possible exception of PCL, they are not really used to output sophisticated documents.


PCL is the abbreviation of ‘Printer Command Language’. Hewlett-Packard originally developed this language for its dot-matrix and inkjet printers.

Version 3 of PCL became a standard for office printers with the release of HP’s first desktop laser printer, the LaserJet. Many other manufacturers of office printers emulated PCL 3, which was commonly referred to as LaserJet Plus emulation. PCL 3 was optimized for word processing and data printing.

PCL 4, introduced with the LaserJet II series, was backward compatible with version 3 and added the ability to use more and larger bitmap fonts and more bitmap graphics. This allowed it to be used for charts, graphics, and simple desktop publishing.

As you may already have suspected, the LaserJet III introduced version 5 of the PCL language. This was a major advance over the previous versions, the first release that supported outline fonts and vector graphics, features that had been available in PostScript for many years. Since then HP has introduced some minor updates to the language, like PCL 5c which is compatible with PCL 5 but adds the commands needed to support color printing.


HPGL is a graphics language designed for specifying 2D graphics, like architectural drawings, on pen plotters. It was developed by Hewlett-Packard for its range of plotters but is supported by many other manufacturers as well and has become the de facto standard language for pen plotters.

HPGL is far more limited than PostScript since it targets a very specific niche market. Many laser printers offer an HPGL emulation, normally copying the HP7475A desktop plotter, which can be used for draft prints of drawings. HPGL version 2 has been incorporated into the PCL 5 language by Hewlett-Packard to provide PCL with vector graphics capabilities.

HPGL was not intended as an interchange format but some software suppliers use it as such. HPGL commands are basically two uppercase character instructions followed by any arguments, and finally ending in the separator character which is a semicolon by default. The arguments are normally separated by commas. String arguments are normally terminated by a carriage return. Some examples of commands: AF (Advance page) or AR (Arc Relative) followed by two or three arguments: x,y,angle(,tolerance).


ESC/P (pronounced “Escape”) is the printer control language of Epson, which was the market leader in printers in the early ’80s. The latest version of their protocol is called the ESC/P2 protocol and is used in their successful series of Stylus color printers.

GDI & QuickDraw

Both Windows and the Macintosh operating system have their own internal mechanism to describe how objects (images and text) have to be visualized on-screen. Virtually all applications use this mechanism to display data on-screen and then rely on a driver (e.g. the LaserWriter driver on Macs) to translate these data to a format that is understandable for a printer. This lead Apple and Microsoft to the obvious question: why not use that part of the operating systems to output on printers as well?

From the beginning, Apple used QuickDraw, the part of the MacOS that handles the screen, to drive low-cost printers like their matrix printers. Such printers are called QuickDraw printers and as far as I know, they have virtually disappeared from the market. PostScript has always been very important in the Macintosh market.

In Microsoft Windows, the part of the operating system that is responsible for all screen handling is called the GDI (Graphical Device Interface). From Windows ’95 onwards, Microsoft also has started using this part of the OS to control cheap output devices, including entry-level laser printers. Such printers are cheaper because they do not need a built-in controller to calculate the data that have to be printed. They are usually referred to as “Winprinters”. Among the disadvantages of such printers are their low speed and the fact they can only be used from a (specific) Windows system.