Subject: 03 Printer Languages or Emulations
Subject: 03.01 HP PCL and PJL
Subject: 03.02 PostScript
Subject: 03.03 Epson ESC/P, ESC/P2
Subject: 03.04 IBM Proprinter
Subject: 03.05 Other Emulations
The PCL printer language was developed by Hewlett-Packard for their printers (laser and inkjet). PCL versions are numbered beginning with 1, the current version is 5e. Some words about PCL history (from HP's Printer Language Technical Reference Manual):
PCL versions differ in functionality (e.g. font type support: bitmap fonts, scalable fonts (Intellifonts, TrueType fonts), raster graphic compression methods, HP-GL/2 graphic support).
PCL is the most widely spread printer language in the laser printer market today. Most laser printer manufacturers use an implementation of PCL 4 or PCL 5 for their printers.
PJL (Printer Job Language) was developed also by Hewlett-Packard to provide a method for switching parameters at the job level and for status readback between printer and host computer. PJL may be used at the beginning of a print job for setting some job specific parameters like printer language (PCL, PostScript or others), resolution (300 or 600 dpi), number of copies, etc.
Note: not all HP printers support PJL commands. Sending such a command to a printer not supporting it may cause the printout of the command in the case of a PCL printer. For printers in PostScript mode, the command will cause a PostScript error and prevent the job from printing.
PJL is currently supported by the following HP printers: LaserJet IIISi, LaserJet 4 family, PaintJet XL300 and DesignJet. PJL is also supported in the "5" series LaserJet printers.
According to Ronald F. Guilmette, HP will sell you a set of technical manuals covering PCL and PJL in depth: You _must_ buy the complete "manual bundle". The new part number for the complete PCL manual bundle is: 5010-3997. Cost of this manual bundle is $92.50. The number for ordering this manual bundle is 800 227-8164.
PostScript is a page description language produced by Adobe Systems Inc. since the early 1980's. Adobe was formed in 1982 by Dr. John E. Warnock and Dr. Charles M. Geschke. It provides a verbose language of instructions to describe a page of information. While it requires more memory to work with than most page description languages, it was the first widely available product that allowed for control over a large number of fonts and graphical objects.
The first version published in 1985 (the old Red Book) is called Level I, the current implementation (the big Red Book) is called Level II (do not mix these levels with the PostScript version a printer supports, e.g. version 47.0 or version 2011.110, nor with the number in the begin line of any PostScript output like "%!PS-Adobe-3.0"). The PostScript level and to an extent the version of the interpreter too, define the possible operations. For more information see the Red and White Book.
There are several PostScript clones around because of the costly licensing fees for Adobe's interpreter, the best-known surely is GhostScript. Others, built directly into laser printers or addable via cartridges, are Phoenix Page, Brotherscript, Page Styler, True Image, Turbo PS, PDL and KPDL. Naturally they all claim to be 100% PostScript compatible, but this compatibility sometimes ends when it comes to font downloading, font manipulation like adding a metric table or adding new characters, or some other operations. The printing of simple text and graphics is usually no problem with these clones.
Adobe Systems Inc. runs a very good world wide web site http://www.adobe.com where information about PostScript-related products may be found. You may also find technical notes for developers (partly updates for books and manuals), PPD's for most Adobe PostScript printers, and some sample programs.
Beside many other books covering PostScript more or less in detail there are the reference manuals from Adobe Systems Inc. (all published by Addison Wesley Publishing Company):
Another source for information about PostScript is the news group comp.lang.postscript. Frequently asked questions are covered by the PostScript FAQ compiled by Jon Monsarrat. It is regularly posted in comp.answers and comp.lang.postscript (the FAQ is also available via FTP from standard FAQ locations, or from ftp://wilma.cs.brown.edu/pub/comp.sources.postscript). In this FAQ you may find pointers to many other books about PostScript.
ESC/P means Epson Standard Code for Printers.
ESC/P2 means Epson Standard Code for Printers, Level 2.
The printer language ESC/P was originally developed by Epson for use with their early dot-matrix printers. Today it is supported also by Epson inkjet and laser printers as well as by many other dot-matrix printers in the market. ESC/P2 is an enhancement of ESC/P, i.e. it has new functions for font scaling, raster graphic printing, etc.
As with many printer languages, ESC/P or ESC/P2 on printers from different manufacturers may differ slightly in their functionality. Normally the differences are additional functions not provided with the original version from Epson, so beware of using them if you want to support all ESC/P or ESC/P2 compatible printers.
Information about ESC/P and ESC/P2 may be found in the printer manuals of the respective manufacturer. Sometimes it is only a short listing of all available functions (hopefully!) sometimes the functions are declared in depth with examples in BASIC. Character set tables and font width tables may be found there too.
Epson sells the "ESC/P2 Reference Manual", which includes both ESC/P and ESC/P2, as well as a complete description of the differences in commands supported by each printer. The newest version is August 1992, but there is also an addendum which includes the new Stylus Color commands, identified as: "Epson Stylus COLOR Programming Note" dated July 8, 1994.
According to Stuart Williams, a listing of ESC/P codes can be found in ftp://ftp.epson.com/impact/ESCODE.TXT.
The printer language IBM ProPrinter is originally used with IBM printers (IBM Graphics Printer 5152, IBM ProPrinter XL 4201/4202, IBM ProPrinter X24/XL24 4207/4208), today it is supported by many dot-matrix printers as is the case with Epson's ESC/P and ESC/P2. IBM ProPrinter has become another standard emulation for third- party printers. The functionality is different according to the version used or selected during printer setup (XL, X24/XL24 or AGM are some of these versions).
As with many printer languages, IBM ProPrinter on printers from different manufacturers may differ slightly in their functionality. Normally the differences are additional functions not provided with the standard emulations so don't use them if you want to support the standard.
Information about the IBM ProPrinter emulation may be found in the printer manuals of the respective manufacturer. As with ESC/P and ESC/P2 this information can be a short listing of the available functions, or the functions declared in depth. Character set tables and font width tables may be found there, too.
There are a lot of other unique emulations in the printer market. The following list is therefore far from being complete (the intention is not to describe them exactly, but only to mention them). The order of the listed emulations doesn't say anything about their importance in the printer market.