|Adding this priceless post to our recommended reading for new people:
HP's History Of Printer Command Language (PCL)
Posted by PAW_Fl on 6/17/05 8:19am
HP's History Of Printer Command Language (PCL)
In order to provide an efficient and effective way to control printer features across many different printing devices, HP created PCL. PCL was originally conceived and 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 version of the language.
PCL commands are compact escape sequence codes that are embedded in the print job before being sent to the printer. Issuance of the sequence was relatively easy from any high level language or from assembler. HP PCL formatters and fonts were designed to quickly translate application output into high-quality, device-specific, raster print images. The PCL printer language is common to virtually all HP printers, but not universal and not always backward compatible. This conceptual thinking enabled HP to minimize printer support problems and protect HP printer investment in applications and printer driver software. It is why the HP laser printers quickly became the industry standard.
The PCL printer language is successful because the following points remain consistent across all levels:
1. All HP 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 without causing the printer or issuing device to crash.
There are six 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 major phases of the PCL printer language are as follows:
PCL 1 This version is supported by all HP LaserJet series printers (except the HP LaserJet 3100 and 3150 series products). It provided very basic printing and spacing functionality, but was limited to only text printing and ASCII characters. PCL 1 is the foundational base set of functions provided for simple, single-user workstation output. It was created in the late 1970s and introduced in the late 70s and early 80s.
PCL 2 As was PCL 1, this version is supported by all HP LaserJet series printers (except the HP LaserJet 3100 and 3150 series products). Hence it covered all PCL functionality and provided Electronic Data Processing/Transaction functionality. Functions were added for general purpose, multi-user system printing, but still in ASCII printing only. It was Introduced in the early part of 1982.
PCL 3 This was the first of the intelligent series of efforts by HP to incorporate graphics, crude as they were back then. It was the embedded code for the original HP LaserJet series printer, and the HP LaserJet Plus series printer. This version 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. It quickly rose to the position of industry standard and PCL 3 was widely imitated by other printer manufacturers, commonly referred to as "LaserJet Plus Emulation" when used by other companies. It came out in 1984.
PCL 4 This industry standard release was the embedded code for the HP LaserJet Series II, commonly referred to as the workhorse laser, the HP LaserJet IID, HP LaserJet IIP, and HP LaserJet IIP Plus. It had a host of new page printing capabilities, including support for macros, larger bitmapped fonts and graphics. Introduced in 1985, it was the most radical of version improvements and would be more than sufficient for users for several years.
PCL 5 As the foundation of the HP LaserJet III, HP LaserJet IIID, HP LaserJet IIIP, and HP LaserJet IIISI, PCL 5 provided ultimate office publishing functionality. It was released to allow compatibility for industry acceptance for 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 mid-1990 with the HP LaserJet III, this is the most widely used version of PCL compatibility in use by customers.
PCL 5E (Enhanced) Though it was labeled an enhancement to PCL 5, it was the internal code released with the 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 and HP LaserJet 5si. HP LaserJet 8000 series, HP LaserJet 9000 series printers. It had major improvements and changes including bidirectional communication between the printer and the PC. It featured a wider selection of fonts for use primarily with the Microsoft Windows environment and applications.
PCL 5C (Color) This was also an enhancement to PCL 5 to add functional color support for HP Color LaserJet, HP Color LaserJet 5, HP Color LaserJet 5M, HP Color LaserJet 2500 series, HP Color LaserJet 4500 series, HP Color LaserJet 4550 series, HP Color LaserJet 4600 series, HP Color LaserJet 5500 series, HP Color LaserJet 8500 series and HP Color LaserJet 8550 series printers. It offered no other changes except the commands needed to support color printing.
PCL 6 This version offered significant changes in the backward compatibility issue for HP. 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. The target was performance and reliability; the jury is still out on the question of better. Prior to PCL 6, each new version of the language included 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 was released with the 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 and HP LaserJet 9000 series printers. PCL 6 features new modular architecture that can be easily modified for future HP printers. The efforts for faster, post printing return to application have made somewhat of a problem with older operating systems. Other performance efforts are 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. The compatibility issues have caused many users to select PCL 5 as the language version.
The PCL printer commands activate the printer features. Be design, HP provided four general types of HP printer language commands. Control codes, PCL commands, HP-GL/2 commands and PJL commands.
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 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. PCL commands (other than single-character control codes) are also referred to as "escape sequences." That design provided very easy use from high level programming languages and in reality, made the PCL the industry standard. 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. In other words you turn on the feature and then turn it off.
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.
HP made great efforts to yield an ease on selecting feature and capabilities in the PCL designs and procedures. That ease rewarded HP with the popularity that is second to none in the industry for laser printers. They have been active in creating other printer languages and utilities as well, such as PJL, a JCL type language and utility.