PostScript Introduction



In this section of the course we will give you an overview of the  PostScript page description language, where it came from, and the problem  that it solves.

  • History
  • Page Description Languages
  • Capabilities
  • Current implementations
  • Applications


History of PostScript

PostScript is a product of Adobe Systems,  Inc. Adobe Systems was formed in 1982 by Dr. John E. Warnock and Dr. Charles M.  Geschke.

Many of the concepts originated in 1976 at Evans & Sutherland as pat of the "Design System".

in 1978, many of the page description concepts were firmed up and re-implemented at Xerox PARC. This evolved into InterPress.

In 1982 the third implementation of these concepts became PostScript.

In Xerox's InterPress, the emphasis is on speed. If Xerox sells a customer a 120 page per minute printer, Xerox wants the printer to spit out 120 pages per minute.

PostScript allows a page to be arbitraily complicated. A Page may be so complicated that the printer must pause the printing process while it interperts the PostScript commands.

The original releaqse of PostScript is now called "Level 1". Many  additions and enhancements have been made which bring the language to "Level 2". Except where noted, all of the material in this course is applicable to both Level 1 and Level 2.


History of Adobe

Adobe Systems formed was in 1982 with $2.5 million in initial  backing.

It went public in August 1986.

Adobe has been profitable since day one.

Adobe does not manufacturer printers. It sesigns controllers and software and  then licenses manufacturing rights to OEMs.

Originally, the only items Adobe sold to the general public were fonts.

Adobe has branched into the software market, developing some software  internally, and purchasing some software (and software companies) for  others.

  • PhotoShop - Image manipulation software.
  • Illustrator - Object oriented image editing software.
  • PageMaker - Page Layout software.
  • StreamLine - bitmap to spline converion software.
  • Acrobat - Cross platform electronic document distribution.


What Is PostScript?

PostScript is a combinations of three things:

  • A Page Description Language.
  • A Printer Control Language
  • A Programming Language

PostScript Goals:

  • Designed to drive Raster printers. It is not well suited for plotters.
  • Total control - any page can be described. (Although some pages are much eaier to describe than others)
  • Printer independent - the same PostScript file can be used on a 300 dpi laser printer, a 72 dpi color screen, or a 3000 dpi image setter.
  • Typically lives in the printer. The PostScript interperter is  part of the printer, and is typically stored in ROM's in the laser printer and executes on a processor inside the printer.
  • Uses simple text files. (Binary files can optionally be used to to  save space)
  • Not intended for people. Programs should write PostScript files, not people.


Page Description Languages


There are many ways to describe what a page to be printed should look  like. Each different method of description is called a "Page Description  Language" (PDL).

In the dark ages before the advent of laser printers, PDLs were simple  extensions to text files that controlled the special features of a  particular printer.

These PDLs were tailored to a particular type of printer, and could only  describe pages that the target printer was capable of printing.

Every command corresponded to a feature of the target printer.


Simple PDLs

Line Printer PDLs

One of the earliest PDLs was designed for controlling a line printers.

A line printer can move paper in one direction, and then print a  line of up to 132 characters.

The PDL developed was simple. The first character of each line sent  to the printer specified how far to move the paper, and the rest of the  line was printed.

  • A space indicated that the line should be printed just after the  preceding line.
  • A "0" meant to double space.
  • A "1" meant to go to the top of the next page.
  • A "+" meant to overprint previous line.

This PDL is sometimes called "Fortran Cariage Control".

Daisy Wheel PDLs

The additional functionality available in daisy wheel printers  required a more complex PDL.

Daisy wheel printers can move the paper up or down and the print head  left or right, with great precision. Some printers can even vary how hard  the characters are pressed into the page.

PDLs were introduced which used control characters or escape sequences  to control the printer.

Each make and model of printer had a custom PDL which corresponded to  the exact set of features available for that printer.

Laser Printer PDLs

Prior to introduction of Laser Printers, designing a PDL was straight  forward. The hardware of the target printer had a limited set of  capabilities, and each capability got a command to control it.

The arival of Laser Printers confused the PDL writers.

The hardware of a laser printer just writes black dots onto the  paper. At 300 dots per inch there are 90,000 dots in a square inch, or  8,415,000 dots on an 8.5 by 11 inch page (at 8 bits per byte this is  1,051,875 bytes).

The obvious PDL would just be a listing of whether each of the roughly  8 million bits should be black or white.

At a communications rate of 9600 baud, and packing 8 bits to a byte,  it would take over 15 minutes to describe each page to the printer. 15 minutes per page is unacceptable.

The solution was to put a small processor inside the laser printer,  and for the processor to understand a simple PDL. This internal processor would accept some existing PDL (such as one  designed for a daisy wheel printer) and convert it to the 8 million bits  needed by the laser printing engine.

The major drawback with this scheme is that all of the existing PDLs  were designed with the limitations of exisiting printers in mind, but  laser printers can physically print any combination of graphics, font  styles and sizes.

Some companies (QMS) just added to their existing PDL (QUIC) to allow  access to additional capability.

As more and more printers (and PDLs) were introduced to market,  software vendors became reluctant to support every printer.

Some vendors tried to develop a common PDL for a line of printers  (ANSI for the LN01 and LN03).

Some vendors decided that a PDL did not need to be an extension of a  simle text file and designed a new standard from scratch (imPRESS from  Imagen).

A non-text PDL tended to produce more compact page descriptions, but  they required that even simple text files be processed by a conversion  program before printing.

Some PDLs do a binary encoding for compactness (imPRESS).

Although attempts had been made, all PDLs still suffered from  dependicies on particular features of the target printer. (A file  formatted for the original 240 dpi Imagen printer would not print properly  on their later 300 dpi models.)

These device dependicies were particular evident when it came to  fonts. Fonts had to be designed as a bit map for a particular resolution  printer, with a particular marking engine with the paper fed in a  particular orientation.

A different bit map was required for each size and orientation of  every font.


PostScript's Contribution

PostScript combined many extremely useful concepts into a single product.

  • Unlike its predecessors, PostScript is not tied to any particular  printer, or any particular manufacturer.
  • PostScript page descriptions are not tied to any particular resolution  printer.
  • PostScript fonts are typically specified in a resolution and size  independent format.
  • PostScript is not an extension to simple text files. A simple text  file must be converted to PostScript before being printed (many systems,  VMS or Unix, do this automatically).
  • PostScript is also a programing language. This allows the addition of  features not envisioned by PostScript's designers.


How PostScript Fits into the World


PostScript was not designed for users. Users should deal exclusivly  with application programs.

PostScript is designed to allow the application program to easily  communicate with the printer.

People who need to know PostScript:

  • Authors of application programs.
  • Users who need a PostScript feature, when there is not yet application  supports for the feature.
  • People who build, maintain, support, sell, or buy the printers need to  understand the strengths and weaknessess of the product.


The Right Place at the Right Time

Adobe was faced with the classic "chicken and egg" problem.

No one wants to buy a printer with a powerful PDL if there isn't any  software to run it.

Developers don't want to develop PostScript applications unless there  is an installed base of printers.

Steve Jobs needed a high quality printer for the Apple Macintosh.  PostScript could easily handle the job. Jobs only concern with PostScript was that it allowed the printer to be programmed to support Apple's QuickDraw standard.

Macintosh sales created an installed base of PostScript printers. Once the printers were out there, software vendors could write software to exploit the features.


Marking Engines vs. Controllers

The primary components of any laser printer are the marking engine and the controller.

  • The Controller or Raster Image Processor (RIP) is responsible for  deciding exactly which dots on the page should be white and which should  be black.
  • The marking engine is responsible for physically placing the marks on  the page.


Some manufacturers place the controller and the marking engine inside  the same box (LaserWriter)

Some manufactures place the controller in a separate box (Linotype).


The major difference between many Apple LaserPrinters and the corresponding HP LaserJet is the controler. Both printers are built around the same marking engine, but have different controllers.


Quality Considerations

PostScript controllers differ in communication methods, available  memory, processor type and speed, built-in fonts, and secondary storage.

Marking engines differ in speed, duty cycle, size and shape of dots,  paper sizes and capacity, write-white vs write-black and miscellaneous  artifacts of printing process.

The quality of a laser printer depends both on the controller (what  pages can it print) and the marking engine (how well will it print).


Implementation Examples

PostScript implementations include:

  • Apple LaserWriter, 300 dots per inch (dpi), 8 ppm,  Canon LBP-CX
  • Apple LaserWriter II NT, LaserWriter II NTX. 300 dpi, 8 ppm, Canon  LBP-SX
  • Apple LaserWriter Pro, 600dpi 16 ppm.
  • Digital Equipment Corp. PrinterServer 40
    300 dpi, 40 ppm,  Ricoh
    MicroVax II controller
  • Many photographic ImageSetters at resolutions to over 3000 dpi.

Some PostScript printers have a Fax feature. They image the PostScript at Fax resolution, and instead of printing localy, they dial out to a remote standard fax, and print there.

Applications for PostScript

  • Production of camera ready documents. No more messy cutting and  pasting.
  • Distributed Printing - documents can be electronically distributed  throughout a large company and printed at each site (saves shipping costs).
  • Demand Printing - Documents can be printed on an as-needed basis. No  need to stockpile printed copies.
  • Device independence allows proof copies to be quickly printed on a  laser printer, final copies can be printed on a high resolution typesetter.
  • High quality output can be printed directly to negative or plate,  eliminating the need for a process camera. Fewer steps mean higher  quality.


Elements of Page Description Languages

PostScript divides objects to be printed into three categories: graphics,  text and images.

  • All three can be positioned anywhere on the page in any orientation.
  • All three can be stretched, skewed, resized or arbitrarily distorted.


Graphics are created as algorithmically defined outlines.

These outlines are built up from straight line segments, portions of  circles, portions of elipses, third order Bezier curves.


Graphics can be arbitrarily stretched, scaled, rotated, and distorted.


Text is just a special case of graphics.

Every PostScript printer has at least four different faces:  Helvetica, Times, Courier and Symbol Most faces are available in at least four styles: regular, bold, italic, and bold-italic.

Faces are stored as mathematical outlines allowing arbitrary  stretching, scaling, rotating and distorting of text.

The "Type 1" font format includes hints from the font designer, which help the PostScript interpreter  make intelligent rasterization choices.

Originally the "type 1" format was proprietary, and only Adobe and selected licensees could produce these fonts.

Third party software (Such as "Fontographer") Allow anyone to create their own fonts. However it takes a lot of design skill to generate a font that looks good.


Images are usually scanned images, such as from scanning a photograph.

Typically represented in the PostScript as binary or hex data. Level 2 supports a variety of compression methods.

A variety of pixel depths are supported:

  • Bit map (1 bit per sample)
  • Gray Scale (up to 8 bits per sample)
  • Full color (up to 8 bits per color, not implemented on some older  level 1 B&W  printers)

Level 2 PostScript supports 4 color and spot color color schemes.

Images can be arbitrarily stretched, scaled, rotated, and distorted.


Macintosh PostScript Support

Macintosh's PostScript support is important from a historical perspective  and because there are a large number of Macintoshes connected to  PostScript printers.

  • Bit maps for standard fonts in standard sizes come with the Macintosh.
  • Macintosh programs internally use QuickDraw for drawing on the screen  and for printing.
  • The Macintosh file "LaserPrep" contains PostScript subroutines that  emulate most QuickDraw commands.
  • Apple's LaserWriter driver translates QuickDraw calls into calls to  the LaserPrep routines.
  • The QuickDraw emulation is slow. Many people extrapolate their  Macintosh experience and believe that PostScript is inherently slow.
  • PostScript files produced by the Macintosh LaserWriter driver are  useless without the corresponding version of the laserprep file.

Many high end programs (Quark XPress, PageMaker, Illustrator, etc.) bypass this process, and produce PostScript directly.

Recent versions of Apples LaserWriter driver were developed jointly  with Adobe, and produce much better PostScript.

[Home] [Goals] [Intro] [Simple Text] [Simple CTM]

Copyright © 1998, Mefco, Inc., All Rights Reserved
"PostScript" is a registered trademark of
Adobe Systems, Inc.