Compart - Document- and Output-Management



Printer Command Language


The Printer Command Language (PCL) was developed by HP for laser printers, and along with the PostScript format, PCL has become the de facto standard for desktop printing. The PCL language has gone through several revisions that have taken it from simple plotter commands to all-points-addressability, job control, print stream objects, and embedded macros. Originally, inkjet printers could also be controlled using PCL. Since version PCL 3, however, the format has no significant role in inkjet printing.

PCL has a flexible command structure based on control commands and ASCII characters. It is extremely high-performing, producing excellent print quality for both fonts and graphics. The functions of the different versions of PCL include black-and-white and color printing, printing of bitmap characters, raster graphics, font scalability, and support for different printing directions. The commands are embedded in the print data stream. Starting from a position on the logical page, these commands tell the printer where to place print stream objects.

PCL printers originally served as office printers producing fewer than 2,000 pages per day. Since then, high-volume production printers have also included the ability to process PCL streams.


PCL Versions

There are now six versions (levels), which were developed in response to changing printer technologies. PCL 1 to 5e/c are command-based languages, whose command sequences are processed and interpreted in the same order they reach the printer. Normally, the data stream is generated by a printer driver. However it is possible to generate PCL instructions from in-house applications.

In the office environment, PCL 5 is the most-used format; it was released in 1990 with the HP LaserJet III. The previous versions are more or less history.

PCL 5e (PCL 5 enhanced) was released in October of 1992 with HP LaserJet 4. It augmented the standard with bi-directional communication (PJL commands = PrinterJobLanguage) between the printer and the PC (application) and the support of Windows fonts.

Furthermore, PCL 5e also interprets the color commands for black-and-white printers by translating them into gray values.

PCL 5c adds color and palette commands to PCL 5e. After fonts and macros, palettes are the third reusable resource in PCL 5c.

PCL distinguishes four different ways of specifying colors:

  • Monochrome: Default mode that provides backward compatibility with older printers.
  • Simple mode: Here the following color palettes are used:
        1. Monochrome color palette with two values
        2. RGB color palette consisting of the eight colors black, red, green, yellow, blue, magenta, cyan and white
        3. CMY color palette consisting of the eight colors white, cyan, magenta, blue, yellow, green, red and black
  • PCL image mode: In this mode a definable palette is given using PCL commands. Three color spaces can be used:
        1. Device-dependent RGB
        2. Device-dependent CMY
        3. Standard RGB (sRGB) based on a standard ICC profile
  • HP GL/2 image mode: In this mode, the programmable palette is specified using the HP-GL/2 mode.

PCL 6 was released in 1995 and consists of:

  • PCL XL, a completely new language whose syntax bears no relationship to previous versions of PCL.
  • PCL 5c, which ensures compatibility with previous versions.

PCL XL is structured like a binary XML document. Like PCL 5c, PCL XL maps those GDI objects that are needed for print output. In PCL XL, however, there is no need for the constant context change between PCL and HPGL, since only one language is used for text, graphics and raster objects. An explicit grayscale color space was introduced in PCL XL for raster data and foreground colors; it can be used to cleanly combine achromatic gray with colored objects. With the exception of RGB, XL divests itself of all the other color spaces within PCL 5c. The maximum resolution of transferred raster objects was increased to 1200 dpi.


Distribution and Benefits

PCL printers are generally office printers producing fewer than 2,00 pages per day, whereas IBM's AFP data format is primarily designed for larger numbers of documents and high print speeds of up to 3,000 pages per minute, including for mass production of invoices and account statements.

PCL, on the other hand, sets the tone in the office environment, although many print providers also work with PCL-capable machines. The reason is their high performance and the compactness of the data stream. The print quality is also better than AFP. PCL is bested by PostScript only in color printing. This format was developed by Adobe and QMS especially for graphics processing and has always supported color very well. PCL, on the other hand, emerged from the "techie" world, where 100% color accuracy is not required.

One disadvantage of PCL is that it does not generate an error message if e.g. there is a paper jam during a print job. Furthermore, the job cannot be restarted from the point where the jam occurred; it has to be started again from the beginning.

Fonts and Symbol Sets

PCL defines a font as a set of symbols with similar features. For printing, the fonts must explicitly be specified by their features. In order to be used, the respective fonts must always be provided to the printer. Basically there are two font formats in PCL 5:

  • Bitmap fonts: A bitmap font is available in only one specific size.
  • Scalable fonts: As the name implies, the font size can vary.

PCL assumes that some fonts are permanently installed on the printer. More fonts can be added, especially the "soft fonts", which are transmitted to the printer.

A font is defined by the following features:

  • Symbol set
  • Spacing
  • Height
  • Pitch
  • Style
  • Stroke weight
  • Typeface
  • Orientation


Technological Support

Compart's MFFPCL filter is a formatting tool to support PCL during both the input and output processes. Compart provides two different MFF profiles for the configuration of the filters for these languages: MFFPCL and MFFPXL. One special feature is that Compart filters can also convert PCL documents with barcodes; no additional software is needed for barcode support on PCL printers.



Compart’s MFF filters (mixed format filter) are the basis of the MFF architecture for DocBridge products. Some MFF filters read files in different formats (input filters) while others are used to write files in the respective output format (output filters). In many cases, a format is supported for both input and output.

The strength of the Compart MFF architecture is its ability to quickly and effectively convert documents in various formats into others, or integrate them into a document using a specific format. For example, documents in AFP, SAPGOF or PCL can be converted to PDF and can also be merged into a single PDF document.

When converting one format into another, Compart uses the shared object format, the so-called presentation area (PA), which is able to represent the visual data and metadata of all supported formats. An MFF input filter converts an input file into the PA format in main memory and an MFF output filter then converts the PA format saved in main memory into an output file.

PCL Conversion Directions

PCL to PostScript

Find all PCL conversion directions in the Compart Matrix (PDF)

Compart Matrix

A complete overview of all supported input and output formats is provided in the Compart Matrix. Compart software solutions enables highly complex, single pass operations with flexibility and reliability for high availability, high volume environments.

Open Compart Matrix (PDF)