Printer Languages

The printer receives commands from the computer to which it is connected. These commands tell the printer how to format the document being printed, and comprise the printer language. There are several important printer languages, some of which are specific to individual manufacturers, and some which are used throughout the computer industry and have become de facto standards. Of the latter, HP PCL and Adobe PostScript are the most popular.

HP PCL

HP PCL is an abbreviation of Hewlett-Packard Printer Command Language. Hewlett-Packard introduced its' first desktop laser printer in the early 1980's and soon became the market leader in office printers. PCL is an Escape Code language, and was originally devised for HP's dot-matrix and inkjet printers, so it was already well defined when HP's first desktop laser printer, the 8 p.p.m. HP LaserJet, was launched with the PCL 3 language.

PCL 3

As an early desktop laser printer language the capabilities of PCL 3 were very limited, allowing relatively few, small bitmap fonts, and small bitmap graphics. The LaserJet was superseded by the LaserJet Plus, which still used PCL 3, but had more memory and could manage more fonts and larger graphics. As the emerging standard, PCL 3 was widely copied by other desktop printer manufacturers, with varying accuracy and success, and was commonly referred to as a LaserJet Plus emulation. PCL 3 provided the commands and features required for simple word-processing and data printing, and PCL 3 printers were primarily used as fast, quiet replacements for letter-quality daisywheel printers.

PCL 4

The LaserJet Plus printer was superseded by the LaserJet series II, also an 8 p.p.m. printer. The LaserJet II series of printers included the LaserJet IIP, a 4 p.p.m. personal printer, and the LaserJet IID, a duplex version of the LaserJet II. The LaserJet II introduced the PCL 4 language, which built upon PCL 3 by adding the ability to use more, larger bitmap fonts, and more bitmap graphics. The standard LaserJet II could manage just over half a page of bitmap graphics, but with the addition of some extra memory this could be expanded to a whole page.

PCL 4 was backwards compatible with PCL 3 (PCL 3 jobs would print perfectly well under PCL 4), but the additional features took it well beyond the bounds of word-processing, and allowed it to be used for charts, graphics and simple desktop publishing. PCL 4 has been superseded for office printers, but is still commonly used in personal printers as it requires relatively little processing power in comparison with later versions of the PCL language. The version of PCL 4 used on the LaserJet IIP was a slightly enhanced over the version used on the standard LaserJet, and provided a compression method for bitmap graphics to reduce the amount of data which the computer had to send to the printer.

PCL 5

The LaserJet II was superseded by the LaserJet III, which incorporated the PCL 5 language. The LaserJet III was an 8 p.p.m. office printer, other HP PCL 5 printers included the IIID (8 p.p.m. duplex), the IIIP (4 p.p.m) and the IIISi (17 p.p.m. duplex). PCL 5 represents a major advance over previous versions, and while it is still an Escape Code Language, it offers most of the capabilities of a Page Description Language. The primary features added for PCL 5 were Outline Fonts and Vector Graphics. The importance of these features cannot be underestimated, as using a combination of these two features it is possible to define almost any imaginable feature of a page. The vector graphics commands were provided by adding a version of HPGL (Hewlett-Packard Graphics Language), the language used by Hewlett-Packard Pen Plotters, to the PCL command set.

PCL 5 is largely backwards compatible with PCL 4, but the change from bitmap to outline fonts created some small incompatibilities. PCL 5 is eminently suited to complex documents, and works well with desktop publishing, graphics design and presentation applications.

In addition to PCL 5, the LaserJet III series introduced the technique called "Resolution Enhancement", in which small dots are automatically placed at the edges of lines and characters to reduce the ragged edge sometimes visible on 300 d.p.i. prints.

PCL 5e

The LaserJet III series was replaced by the LaserJet 4, which introduced a higher printing resolution of 600 d.p.i., a fast bi-directional Centronics-type parallel port (Bi-Tronics) so that the printer can give more status information to the computer, and a selection of fonts dedicated to use with Microsoft Windows application software. There are a few minor enhancements to PCL 5, resulting in PCL 5e (enhanced), primarily allowing the printer to talk to the computer to report status messages, errors etc.. The enhancements in PCL 5e do not have any significant effect on the page description functionality in the language. The LaserJet 4 series of printers includes the LaserJet 4 (600 d.p.i., 8 p.p.m.), the LaserJet 4L (300 d.p.i., 4 p.p.m.), the LaserJet 4P (600 d.p.i., 4 p.p.m.) and the LaserJet 4Si (600 d.p.i., 16 p.p.m.). In addition to the basic range, all the LaserJet 4 range is available with the Adobe Postscript level 2 Page Description Language (see below) built-in in addition to PCL 5e, these models are designated by the letter "M" after the number (4M, 4ML, 4MP, 4SiMX).

PCL 5c

There is a version of PCL 5, PCL 5c, which isused on HP colour ink-jet printers and the HP ColorJet colour desktop laserprinter. PCL 5c is compatible with PCL 5 but adds the commands needed to support colour printing.

About PCL Emulations

While it was developed by Hewlett-Packard, PCL has been widely copied by other manufacturers who offer emulations of HP printers, describing their own models as "LaserJet IIP compatible", or "PCL 5 compatible" and so on. The majority of these emulations are very good, and offer the same facilities as the original HP printers with a few extras added in, but it should be remembered that they are emulations, clones of HP PCL, and there may be small differences in the way they construct a page which can result in a visual difference when compared with a print from a real HP printer. The majority of application developers use HP printers when testing the ability of their software packages to produce PCL, and while the clone emulations are tested with most major software applications, there are a few applications which use obscure features of the PCL language that have not been properly tested by the clone manufacturers, and may not print correctly.

Adobe PostScript

PostScript is a Page Description Language (PDL) developed by Adobe Corporation. Adobe was formed by people who left Xerox Corporation to set up their own company after creating Xerox Interpress, Xerox' proprietary PDL. Adobe do not manufacture laser printers, they license their PostScript language to other manufacturers, and help them design the printer controllers for PostScript printers.

PostScript Level 1

The original version of PostScript (now called Level 1) was first implemented by Apple Computer Corporation on the Apple LaserWriter printer, a 6 p.p.m. desktop office printer, for use with Apple Lisa and Macintosh computers. PostScript offered a number of radical new features not available on any other small laser printers at the time, including Outline Fonts and Vector Graphics. The structure of the PostScript language, which is similar to a conventional computer programming language, meant that these advanced features could be used in a very versatile and creative manner to create complex images and designs. The Apple LaserWriter was an instant success with users performing desktop publishing or graphic design, and PostScript became the industry standard for complex printing applications almost overnight.

The Apple LaserWriter was soon joined by the Apple LaserWriter Plus, offering more memory and many more outline fonts, and a few small enhancements to the PostScript language. A large number of printer companies recognised the value of PostScript, and formed alliances with Adobe to produce PostScript printers of their own, but the standard has always been set by the Apple models, which successively introduced new features and refinements into the PostScript language. The Apple LaserWriter Plus was followed by the LaserWriter II, LaserWriter IINT, and the LaserWriter IINTX, all of which were 8 p.p.m., 300 d.p.i. printers, but each of which provided more processing power than the previous model. Similar printers were available from other manufacturers, some offering more features than the Apple printers.

The rapid acceptance of PostScript by publishing and graphics arts professionals led to the introduction of phototypesetters using the PostScript language. This meant that a PostScript job could be created on a computer, proof-printed on a desktop PostScript printer and, when complete, camera-ready masters could be printed out on a PostScript phototypesetter at very high resolution without any change. This development consolidated the position of PostScript in the publishing industry, and it is now universally used for the typesetting of books, magazines, and other complex publications.

PostScript Level 2

The disadvantage of PostScript was its' speed. PostScript Level 1 required an enormous amount of processing power, and was often very slow. The capabilities of the various releases were also confusing, as the language was enhanced as each new printer was equipped with PostScript, extensions to PostScript were created to cope with colour, patterns, printers with multiple paper trays, duplex etc. To resolve these issues Adobe released the first major enhancement to PostScript, PostScript Level 2.

PostScript Level 2 incorporates all the enhancements made to the original PostScript, setting a new baseline for the language. It also includes several new features, and significant design changes, to allow it to run much more efficiently and print more quickly. PostScript Level 2 is entirely backwards-compatible with the original PostScript, and will produce the same image for a job as a PostScript Level 1 printer.

Other PostScript Devices

PostScript is not limited to use in printers, it is "device independent" and can be used by any device which creates an image as an array of dots. PostScript has been used to drive computer screens (on the NeXT range of workstations) and many Phototypesetters. Computer screens normally have a resolution of around 80 d.p.i., phototypesetters typically work at around 1200 d.p.i. and 2400 d.p.i.. PostScript may also be used to communicate documents between computers, and Adobe have defined standards which will allow PostScript to be used for the transfer of pages between Facsimile machines.

About PostScript Clones

As Adobe Corporation does not sell printers, it gets its revenue from licensing the PostScript language to printer manufacturers, who pay a fee to Adobe for each PostScript printer they sell. The licence fees charged by Adobe were initially high, so some manufacturers tried to emulate the PostScript language. These emulations, or clones, vary considerably in quality and efficiency. Some clones are very good, others are not, but all PostScript clones have some problems, as the PostScript language is very complex and difficult to imitate. There are no PostScript emulations which can be guaranteed to give precisely the same printed output as a printer using genuine Adobe PostScript, and as Adobe have reduced the licence fees, most of the clone manufacturers have not attempted to emulate PostScript Level 2.

Microsoft Windows GDI

Microsoft Windows (hereafter referred to as "Windows") is a graphical user interface (GUI) environment commonly used on IBM-compatible personal computers. Windows provides the software mechanisms required to display text and graphics on the computer screen. It is able to display text using many different character sets, typefaces, typestyles, sizes and orientations, and can handle both bitmap and vector graphics, so programs using Windows do not have to provide these capabilities themselves. Because of these and other features in Windows it is common for software vendors to produce software which operates in the Windows environment, and enough software applications are available using Windows to meet the requirements of most personal computer users. Windows has therefore become the de facto standard operating environment for IBM-compatible personal computers used for tasks which include the preparation of text and graphics.

Windows is a very sophisticated piece of software, and requires a high-performance computer with a fast processor, a lot of memory, and plenty of hard disk storage. These are also the features required of a good printer controller, so they can be used to prepare a page for printing before sending it to the printer, reducing the need for a separate dedicated high-performance computer in the form of a printer controller.

Most software applications describe a document in their own internal language, and then convert the document to a printer language such as HP PCL or Adobe PostScript before sending it to the printer. The printer then converts the printer language into an array of dots for printing. As all software packages using the Windows environment have to use the same language for describing documents, it is practical to make a printer which uses the Windows language to describe a document. This language is called the Windows Graphical Device Interface (GDI), and is used by Windows to describe a document irrespective of whether it is to be displayed on the screen or sent to a printer or facsimile machine.

In making a printer which uses the Windows GDI language, a step is removed from the process of preparing a document for printing. Instead of an application converting a document from its' own language to a printer language, and the printer then converting the printer language to a bitmap, the document is sent to the printer in Windows GDI form without any conversion. The printer then converts Windows GDI language directly into a bitmap for printing. This greatly reduces the amount of processing required by the computer to prepare a document for printing.

An alternative approach is to convert the Windows GDI language directly into a bitmap on the computer, and send the bitmap to the printer. This approach requires the personal computer running Windows to be very powerful, but allows the printer controller to be very simple and cheap, as all the printer has to do is receive and print the bitmap without any formatting. As bitmaps are very large, they are sent to the printer in a compressed form which reduces the amount of time taken to send a page from the computer to the printer, however the communications process still takes time, and it is not currently practical to send more than around 4 - 6 pages per minute to a Windows GDI bitmap printer. This limits the use of Windows GDI bitmap printing to personal printers, but such personal printers can be very cheap because the controller is so simple.

Windows GDI printers are available using both of the techniques described above, but the second method, where the personal computer does all the work, is likely to be come the most common. Personal computers are becoming more powerful year by year, a low cost personal computer based on the Intel 486SX microprocessor is able to create bitmaps from the Windows GDI without running too slowly, and it is much easier to update the software in a personal computer to cope with changes and developments in Windows than to change the software in a printer.

Microsoft Windows GDI printers are not made by Microsoft, but by independent printer manufacturers. Some GDI printers have been developed in collaboration with Microsoft, others have been developed independently. As Microsoft makes information about the Windows GDI available to developers of software, computer display cards, printers etc. there should be no need for a GDI printer manufacturer to work directly with Microsoft, but there may be a degree of quality assurance and confidence to be had in buying a Windows GDI printer from a manufacturer with whom Microsoft has co-operated. At the beginning of 1994 there are currently only a handful of Windows GDI printers available, but they are expected to become very popular as personal printers because of their low cost and their ability to print anything which Windows can display on the computer screen.

Manufacturer Specific Languages

In addition to the standard languages described above, there are several languages used by individual printer manufacturers. In some cases the manufacturers provide their own language in addition to a standard language, in others the manufacturers language is all that is on offer. It is the ambition of every printer manufacturer to have their language adopted as the "industry standard", but the fact that these languages have not become industry standards does not detract from their usefulness. Each has a role to play in meeting specific printing requirement, and many of these languages are used by programmers employed by companies to create "in-house" custom applications because of their unique features.

Kyocera PreScribe

Kyocera PreScribe is provided on the Kyocera range of office and workgroup printers in addition to the HP PCL emulation which Kyocera printers normally use. PreScribe is an easy language for programmers to use, and is particularly good at handling outline fonts. PreScribe is often used for custom minicomputer applications, and applications using forms and barcodes, but it is poorly supported by most personal computer software, which uses the HP PCL or optional PostScript emulations available on Kyocera printers.

Canon CaPSYL

CaPSYL is the proprietary language of Canon personal, office and workgroup printers. Canon are primarily a manufacturer of print engines (they supply Hewlett-Packard and other manufacturers with print engines), but they also make a range of complete printers. Because of their strong relationship with Hewlett-Packard, Canon refrained from emulating HP printers for many years. CaPSYL is an advanced language capable of using outline fonts and sophisticated graphics, and can be used for the most demanding applications, but it has not become popular and is not widely supported.

Xerox XES

Xerox produced the world's first laser printers, and with them the world's first laser printer languages. Xerox Escape Sequences (XES) is provided by Xerox personal, office and workgroup printers, and has been in use for many years. When office laser printers were a new phenomenon XES was quite well supported by software vendors, but as standards have emerged that support has died away. Most Xerox personal, office and workgroup printers offer HP PCL and PostScript emulations either as standard or as an optional extra, and Xerox supply a few XES software drivers for the most common personal computer applications.

XES is an old and simple Escape Code Language. Although XES does not provide sophisticated features such as outline fonts, it does have good forms and bitmap graphics capabilities, and basic vector graphics. It is relatively easy for programmers to use, and is commonly used in large corporations by programmers creating "in-house" custom applications. Xerox also supply mainframe software and communications interfaces which make XES printers an effective choice for decentralised mainframe printing.

Xerox JDL and Metacode

The first laser printers produced by Xerox were large production printers for use with mainframe computers, and Xerox is still the market leader in this type of printer. Job Description Language (JDL) is the language normally used to communicate between mainframe computers and Xerox production printers, and is designed to make the mainframe do as little work as possible, leaving the printer to do most of the formatting. Xerox supplies a wide range of software products for IBM mainframe computers to enable JDL to be used easily. Inside a Xerox production printer the print job is formatted and converted from JDL to Metacode, some mainframe and specialist publishing applications output Metacode directly, avoiding the JDL stage.

Use of JDL and Metacode is widespread at mainframe computer installations, as the market leader Xerox do not provide emulations of any other manufacturers languages on their production printers.

Xerox Interpress

Interpress is a page description language, developed at Xerox by people who later left to form Adobe. Interpress was primarily developed to communicate complex documents quickly and efficiently between Xerox publishing workstations and Xerox production printers via Xerox Ethernet networks (Xerox is one of the three companies that invented Ethernet). Interpress is a proprietary page description language which is optimised for efficient communications transmission and processing on Xerox printers, and for which it is difficult to create software drivers. Interpress is built-in on Xerox production printers and Xerox publishing workstations, and is not uncommon in production publishing environments, but it is not used outside of Xerox equipment, and is not available on the smaller Xerox printers. Interpress is now an old language, and Xerox is starting to make PostScript available on new printers, either built-in or as separate PostScript to Interpress converters.

Océ FOL

Océ is one of the few European-based laser printer manufacturers, and provides a full range of office, workgroup and low-speed production printers which support the Océ Forms Overlay Language (FOL) in addition to an industry standard emulation (normally PCL, but some models provide PostScript). FOL is exclusively designed for mini- and mainframe computers for the simple creation of forms and print jobs which use forms in a data-processing environment. As such, FOL is not suitable for describing complex documents, but it is very easy for programmers to use to create invoices, account statements and other common business-use documents.

IBM 3812

The IBM 3812 was one of the first office laser printers produced by IBM, and as such is supported by many IBM mainframe and minicomputer applications. The 3812 was not very sophisticated, like PCL 3 printers it was best suited to word-processing and data-processing applications, but as many mainframe printing requirements are not overly complex the 3812 was adequate for most users needs. The IBM 3812 is commonly emulated by other manufacturers who want to supply printers to connect to IBM mainframes and minicomputers.

IBM IPDS

As other computer printers became more sophisticated, IBM mainframe users demanded more printing features from IBM, who attempted to satisfy this demand with a strategy of software products and printers offering "Advanced Function Printing" (AFP). AFP is a way in which complex documents can be described on IBM mainframe and minicomputers, and is converted to a print language by the operating system on the computer. The print language used by IBM mainframes and minicomputers for complex print jobs is called "Intelligent Printer Data Stream" (IPDS), and is basically an IBM proprietary page description language. IBM does not supply printer drivers for other manufacturers printers, and the IBM mainframe and minicomputer operating systems are difficult to modify, so most printer manufacturers who want to supply printers for use on IBM mainframe and minicomputers using AFP have to emulate IPDS (the one exception to this is Xerox, which produces software that converts AFP to JDL). Each IBM IPDS printer is slightly different, so most manufacturers produce an emulation of a specific IBM printer, such as the 3816.

DEC LN03 (DEC ANSI/Sixel)

Digital Equipment Corporation (DEC) supply a wide range of laser printers for use with their minicomputers. Digital were one of the first computer manufacturers to recognise the value of PostScript and adopted it for their high-specification printers, but lower-specification laser printers and dot-matrix printers use an escape code language called DEC ANSI/Sixel. DEC ANSI/Sixel uses ANSI (American National Standards Institute) escape codes for the positioning of text, selection of fonts etc. (many personal computers and computer terminals also use ANSI escape sequences for positioning text on the screen). As ANSI escape codes are primarily designed for the manipulation of text, an additional mechanism is required for graphics. Bitmap graphics are supported, but are encoded in a special format called Sixels designed to simplify communication via serial ports. DEC ANSI/Sixel was initially used on dot matrix printers, but Digital's first desktop office laser printer, the DEC LN03, also used DEC ANSI/Sixel. As the LN03 is supported by a wide range of applications on DEC minicomputers, printer manufacturers who supply laser printers for use with DEC minicomputers often provide an emulation of the LN03 printer. The LN03 was suitable for use with word-processing and data-processing applications, and when expanded with extra memory (called the "LN03+") was suitable for simple graphics. More sophisticated applications on DEC minicomputers normally use PostScript.

Non-Laser Emulations

In addition to the laser printer languages provided by laser printers, some laser printers provide emulations of other types of printers such as common dot matrix and daisywheel printers, to support old application software written before laser printers were common.

Epson FX

The Epson FX range of dot-matrix printers were for many years the most popular dot-matrix printers in the world, and are supported by almost all software packages. Dot-matrix printers are generally low-resolution printers (typically around 180 d.p.i.). They offer a small selection of fonts and typestyles, laser printer emulations normally substitute these with high quality 300 d.p.i. fonts, so text quality on a laser printer is significantly better than the dot-matrix being emulated. Dot-matrix printers can print bitmap graphics, also at a low resolution, however it is difficult to scale bitmap graphics to higher resolutions so they do not usually look any better on a high-quality laser printer than on the original dot-matrix printer. Some laser printers emulate the old Epson FX-80 printer, others emulate the more recent FX-800, which was compatible with the FX-80 but offered more features and a higher speed.

Xerox Diablo 630

The Xerox Diablo 630 daisywheel printer was for many years the industry standard letter-quality printer for business correspondence, and was widely emulated by other printer manufacturers. As a daisywheel printer the Diablo 630 could not print graphics, and had few font selection capabilities, but it is a useful emulation on laser printers which may be used with very old word-processing software.

IBM ProPrinter

The IBM ProPrinter range of dot-matrix printers had the same general capabilities as the Epson FX printers, but used a character set which included all the characters available on an IBM-compatible personal computer screen, including the special symbols for drawing lines and boxes. The ProPrinter range also worked with the graphics screen dump facility provided by IBM-compatible personal computers, and was useful for printing out graphics displays. As with the Epson FX emulations, text printed on a laser printer is significantly better quality, but graphics are not improved.

HPGL

The Hewlett-Packard Graphics Language (HPGL) is widely used by pen plotters used to produce engineering drawings. HPGL has been widely emulated by other plotter manufacturers, and is the de facto standard language for pen plotters. A pen plotter is a slow device, a complex drawing can easily take half an hour to plot, and plotters are often noisy and difficult to set up. For these reasons many laser printers offer an HPGL emulation, normally copying the HP7475A desktop plotter, which can be used for draft prints of drawings. As most laser printers do not print in colour, and cannot print on the very large paper sizes used by plotters, they are normally only used for draft prints, but in a few situations, such as printed circuit board design, laser printers are used in preference to plotters. HPGL version 2 has been incorporated into the PCL 5 language by Hewlett-Packard to provide PCL with vector graphics capabilities.

Emulation Switching

As many printers have several emulations, some printers have the ability to detect which emulation a print job is intended for, and automatically switch to that emulation. This feature is called "Automatic Emulation Switching", and is provided by many high specification office and workgroup printers. Automatic emulation switching works by examining the commands in a print job, and determining which print language they belong to.

Some languages are very similar, the commands used by Epson FX printers and IBM ProPrinters are almost identical, so it is not possible for the automatic emulation switching software to determine which is the correct emulation. Other problems occur when a software driver has not followed normal conventions. In PostScript the commands look like normal text, they don't contain escape codes, so unless the PostScript print job contains a header, normally "%!PS-Adobe-2.0" or similar, the emulation switching software will assume it is an unformatted text print job, and print it using an ordinary escape code language.

Automatic emulation switching is not always reliable, but it usually works acceptably. As an alternative, some printers provide commands which will switch between emulations, by inserting the switching command immediately before the print job the emulation can be selected by the computer. These emulation switching commands are unique to each printer manufacturer, so the computer will not know about them or use them unless it is equipped with a software driver for that specific brand and model of printer.

There is one other method of switching emulations, communications port switching. Printers which have more than one communications port are often able to have several computers attached, and switch between ports automatically. The more sophisticated of these printers also allow each port to be assigned to a specific emulation, for example the printer can be configured so that communications port A works in PostScript emulation mode, and port B works in PCL.