[Main topics] [Navigation]

CPDS, Interpress and PostScript - A Comparison

This text was presented at the SEAS Anniversary Meeting 1986 in Jersey

Klaus Daube
Oerlikon Bührle Rechenzentrum AG
Zürich, Switzerland


Recent development of cheap highly functional laser printers and raster image processors stimulated interest in languages for interfacing to these devices. This paper compares CPDS from IBM, Interpress from Xerox and PostScript from Adobe. Areas covered are design goal, functionality, coding (data representation) and font metrics.


This text freely uses trademarks and product names without special notice.


There have always been languages for communicating page information to typesetters and printers. Until recently the capabilities of computer output have been very limited, so their input languages have been simple ASCII formats modified by escape codes. Typesetters on the other hand have quite complex input languages with lots of commands.

With the recent advent of laser printers and raster typesetters the issue of PDL's (Page Description Languages) has received much attention, and a number of languages have been invented. Since document contents can be defined at several layers, they seem to break most naturally in three layers:

The most appropriate layer for PDL's is the slave layer with maximum provision for interfacing. However, the boundaries between these layers are somewhat floating. So some PDL's are procedural also.

Processing the Information

The picture below shows the flow of information from the formatter to the printer. To form the page of a "compound document" various sources of information are necessary.

Since the data stream to the printer controller is heavy in the the case of CPDS (the printer controller has very limited intelligence) the functions of "Combiner" and "Printer Controller" are represented by the utility "Print Service Facility" on the host. For more intelligent printers (or controllers) the function of the "Combiner" may be integrated in the formatter.

Our discussion concentrates on the input for the "printer controller" or a similar process.

Some Background

Donald Knuth desired for his series The Art of Computer Programming typography to remain constant across editions and volumes of the series. So he began work on the text formatter TEX. Originally designed for a quality typesetter, the introduction of the Virtual Device Interface (VDI) made TEX device independent in 1981. This PDL was very rudimentary.

In 1981 the Imagen Corporation began deliveries of a laser printer based on the Canon LBP-10 with 240 dots/inch resolution. Their PDL imPRESS was heavily influenced by TEX's page model. At first the image processor was a modified SUN workstation [2].

In the meantime a device independent "Press format" was developed at Xerox PARC by Sproull and Newman. This language did not become available in marketed products, but the definitions had been distributed widely enough, so, that by 1982 researchers at the EPFL at Lausanne could present their own implementation. A Motorola 68000 microprocessor was used in the controller for a Canon LBP-10 printing machine [12].

In 1982 Sproull, Warnock and others created a new page description language called Interpress, which evolved from both "Press format" and JAM (device independent language for graphics devices of Evans and Sutherland). This language was not available outside Xerox earlier than 1984, when it was made public. The full language with three levels of functionality is not yet standardized or published.

Warnock and Geschke left Xerox to form Adobe Systems, which designed and market the PostScript language, which was heavily influenced by Interpress. The first PostScript printer was produced by Apple Corporation (LaserWriter).

IBM's page description language CPDS is defined as input to a specific program, the Print Service Facility, which is used as a "driver" for the 3800 family of APA (all points addressable) printers. It became available after the 3800-3 [4] in 1984.

This year (1986) Imagen corporation launched a new PDL called DDL for Document Description Language. Hewlett Packard has announced an agreement to adopt this language [1].

Several other manufacturers of laser printer controllers developed proprietary page description languages. QMS (Quality Micro Systems) established QUIC for their Magnum controllers. It is clearly a lowest level device, merely a special form of "escape sequences" with the ability to use forms, build loops, set half-tone patterns and blow up pixel patterns. Now they also offer PostScript versions of their printer controllers.

Xerox also uses a form of escape sequences in their 2700 and 4045 printers. Interpress is now available for Xerox' whole product line of printers.

Procedural versus nonprocedural

Non procedural languages can be generated more easily by an application program.

Procedural descriptions are more compact for images containing regularities. Consider a procedural description of a grid compared to a static description. Procedural descriptions can be used for abstraction and modular design. Both PostScript and Interpress files start with a prologue defining verbs (actions, functions, procedures) which are used later on. Hence application programs like one to generate business graphics can define appropriate procedures to shorten the image description, e.g. a procedure to generate pies in a chart.

The real power of a procedural PDL comes from the ability to execute code conditionally, to call functions and perform arbitrary computations. Redefinition of built-in functions is not necessary but often convenient.

As with procedural languages in general, there is no provision against abuse of the programming features. Hence an interpreter must deal with things like infinite loops.


The following picture inside the box consists of text of two sizes (Σ, Sigma chemistry ...) a small graphic (the retort) and a small bit map (the smoke). It is used to show differences in the PDL's discussed here.

CPDS is designed to be generated by programs only. PostScript as well as Interpress (character form only) can be written by a humans like any programming language. But they also are intended to be generated by programs. This is the normal case.

Page description languages


Interpress from Xerox

PostScript from Adobe


Language aspects

CPDS Interpress 2.1 PostScript imPRESS DDL
Programmability no limited full limited full
Representation binary binary ASCII binary ASCII, binary
Storage management no no manual no automatic
File access no limited yes no yes
Printing instructions yes yes no ?? yes
Device independenc partial yes yes partial yes

Graphical aspects

CPDS Interpress 2.1 PostScript imPRESS DDL
Arbitrary transformations no yes yes ??? yes
Line rules only yes yes yes yes
Area images only yes yes yes yes
Curve no no yes yes yes
Fonts bitmap bitmap, outline, stroke bitmap, outline bitmap ???
Texturizing mode ???? transparent, opaque opaque ??? transparent, opaque, compliment
Priority important n/a on !! off on ??? on
Sampled objects yes yes yes ??? yes
Arbitrary clipping n/a rect. only yes rect. only yes
Colour no yes yes no yes
Bitmap scaling limited no yes no yes
Compressed images no yes possible no ???
Composite objects yes no no no yes
Document layout no limited no no yes


CPDS Interpress 2.1 PostScript imPRESS DDL
Compactness yes yes no yes yes
Object cacheing n/a fonts only fonts only no full
Independent objects pages pages not guaranteed no sections


The detail pages refer to this bibliography with [xx] notions.

  1. DDL: A Language to Describe Documents, Imagen Corporation 8/86
  2. imPRESS Programmers Manual version 2.1, Imagen Corporation, August 84
  3. 3800 All Points addressable Printing Technology (1984), IBM publication number SH35-0090-0, ISBN 0-9331-04-5
  4. Print Services Facility Data Stream Reference (february 1985), IBM publication number SH35-0073-1
  5. VM3812 - IBM 3812 Pageprinter VM Support, Application Programmers Guide. IBM publication number SH20-6732-0
  6. Heather Brown, From Text Formatter to Printer, Protext I Conference proceedings, Boole Press, 1984
  7. PostScript Language Reference Manual, Adobe Systems Inc., Addison-Wesley, 1985
  8. Robert A. Morris, Page description Languages, An Introduction to Text Processing Systems, Boole Press, 1985
  9. David J. Harris, An Approach to the Design of a Page Description Language, Proceedings of the international conference on "Text Processing and Document Manipulation" at the University of Nottingham, Cambridge University Press 1986, ISBN 0-521-32592-7
  10. Brian K. Reid, Procedural Page Description Languages; Proceedings of the international conference on "Text Processing and Document Manipulation" at the University of Nottingham, Cambridge University Press 1986, ISBN 0-521-32592-7
  11. Brian K. Reid, PostScript and Interpress: a comparison, ARPANET Laserlovers distribution, March 1 1985
  12. Roger D. Hersch, P. Fäh: The formatted document description, rapport interne LAMI 1983, EPFL, Lausanne.
  13. Xerox Corporation, XNS Standards Interpress Electronic Printing Standard, El Segundo, CA, Document number XSIG_048404.
  14. Page Printer Formatting Aid, Users Guide and Reference, IBM publication number G544-3181


[Main topics] [Navigation]
 URL:  Created: 2003-09-17  Updated:
© Docu+Design Daube, Zürich    
  Business of Docu + Design Daube Documentation issues Sharing information Klaus Daube's personal opinions Guests on this site Home of Docu + Design Daube To main page in this category To first page in series To previous page in series To next page in series To bottom of page To top of page Search this site Site map Mail to webmaster To bottom of page To top of page