Dealing with the different ways that computers might hold information, and a legacy of different communication methods means the print process is usually much more complicated than just sending a stream of pixels to the printer.

Material to be printed may come to the printer in several different ways:

  • bit-mapped graphics: the computer sends a stream of pixels to the printer, usually packed 8 to a byte. If the entire page image is sent this way the computer acts as it’s own RIP and no other is needed. Because there are so many bits on a page (typically 8 million for low-resolution A4) moving them may take some time.
  • ASCII characters to be mapped one by one from a ROM in much the same way as would happen with a dot-matrix
  • downloaded font: similar to mapping from ROM. The computer sends the bit-patterns to be used for each character at the beginning of a task, and the printer stores and handles them as though it were using a ROM.
  • an Adobe Postscript or other page-description language. Page layout is broken down into a succession of phrases describing the image on the page in the pigeon-English of a programming language. A page description language can be very efficient and precise for basic graphics, but may still need to use bit-maps to handle photographic material.


Characters, Bit-Maps & Print Languages

A printed page holding just a picture or few thousand characters of text translates to a surprising amount of data when broken down into pixels. An A4 page at 300 dots per inch (dpi) that might be output from a laser printer is made up of about 8 million pixels that can each be set dark or light.

Each pixel can be held in computer as one memory bit and the array of bits that will make up the page might be packed 8 to a byte and stored in a megabyte of memory. It makes sense to start at the top left of the page and have a one to one correspondence between the memory array and the pixels on the page - so what is in memory is a "bitmap".

Userland programs such as word processors, spreadsheets and databases don't usually handle data as bitmaps; they are much more likely to hold it as "character codes". For instance the letter "A" is likely to be held in memory as the binary code "0100 0001". There are several reasons for this, some of them historical:

If data were held as bitmaps there would be little or no consistency in how it appeared in memory. Consider just the letter "A"; it can appear as A,a,A,a,A,A,A etcetera. All are very different as bitmaps but "mean" much the same thing. How would the computer do a spell check or sort names in order if there wasn't a single form for any letter?

Holding data in its bitmap form is meaningful to humans - but they aren't going to see it. Humans see what gets printed on the page or displayed on the screen but they can't see what is in memory. Inside the chips memory cells are smaller than the wavelength of light - invisible.

There isn't a one to one correspondence between what is on the screen and what will appear on the page. For many years computer people have talked of the need to give users a WYSIWYG experience "what you see is what you get" and to a large extent it is true that the letter typed on the screen will be the letter printed. However the screen is typically rather different, for instance it only has a resolution of about 75 to 100dpi  - which users forgive because they sit well back and are used to it - and it does have a greyscale. A low resolution printed page is 300 dpi and users are critical and want 600 dpi or better - they get right up to the paper to see if there are faults! What is on the screen is not what is on the page and neither of them are what is in memory.

Historically there just wasn't room in the average user computer to hold a substantial bitmap. A megabyte of memory was enough for a mainframe and cost as much as a house. Only around the year 2000 did the price of memory fall to the point where a megabyte could be regarded as trivial.

Pages are held in memory as codes. A fairly full page of A4 has about 50 lines of 80 characters -4000 bytes in memory. To turn the codes into what the user sees on the screen the computer uses it's graphics adapter. The simplest way for the graphics adapter to work is to look up a small bitmap for each character and then display that.

To turn the codes into what the user sees on the printed page the computer might conceivably use the graphics adapter, but this sin't normal. The screen is a different shape and resolution.

The memory holding the image has to be copied to the working element of the printer - in the case of a laser printer the laser that is scanning the photoconductive drum. The scan pattern  might in principle be inside the users computer, inside the printer - or  in a machine seperate from either called a Raster Image Processor or "RIP".
 
 

It can make sense for a computer to generate the page image and send this to the printer. This is done:

  • by low-cost "GDI" printers that rely on the users computer for their processing power
  • by some printers intended for professional design tasks that have an external RIP
The average mid-market laser printer communicates in an odd way. The instructions sent to the printer are a mixture of ASCII text, page description language and bit –maps. Different makes and models of printers use very dissimilar languages. This situation has arisen partly for historical reasons.

Laser printers came into use before graphical operating systems were common. Competition was from dot-matrix and daisy-wheel machines, and the primary workload for these was textual – for the most part they imitated a teletype. The typical desktop computer ran Microsoft DOS and had a memory of 640 kilobytes or less. DOS machines could not hold a bit-map graphic for an entire page. PCs were only exceptionally used for graphics with programs like AutoCad. The launch of the Apple Mac computer in 1984 created the first serious interest in graphical computing, and it was another decade before the take-up of Microsoft Windows made graphical computing universal.

Printer design is still adapting to a world where documents are prepared on powerful PCs with a graphical interface. For instance

  • A typical laser-printer is shared between several users, so it makes some sense to place the large raster image memory in the printer and share it.
  • The Microsoft Windows operating system is widely used but is not universal – there is some competition from Apple and Linux.
  • Printers tend to wear out more quickly than other components of a computer system, and quite a lot of computer systems last a long time.
Printer designers have to assume that the computer systems their machines are connected to could be required to print simple text, to handle and efficient page description language or to print photographic material from a bit-map.

Bit-Maps

Bit map graphics are widely used:

  • A lot of graphical material is handled as bit-maps. Information from a scanner or a camera naturally originates and makes its way through the computer in this form – although it may be compressed as a JPEG or GIF for storage.
  • Some printers are entirely fed by bit-map images. Until recently printers that used pure bit-maps were rather unusual – the machines that print out microfilm images were an example. In the last five years it has become more common for low-cost printers to be fed nothing but the graphic image to print – these are known as GDI printers. The Graphics Device Interface was the element responsible for handling screen and printer information in Microsoft Windows 3.1.
However there are problems.
  • Bit maps need significant memory space – a 1024 x 768 colour photo takes more than 2 megabytes. It is only in the last decade or so that such memory has been commonplace and low-cost
  • Although the computer might well hold some material in bit-map form this may not be printable. The bit-maps held in the computer often contain grey-scales and colour. The laser printing process cannot easily use grey-scales, so to produce a photographic appearance the computer bit-map has to be transformed to a dither-pattern in which 1 pixel from the original bit-map is made into several on the page.
  • Communication from computer to printer can take a significant amount of time.
  • The range of meaningful computer operations that can be performed on bit-maps is limited. A computer can easily search for the word "tiger" in ASCII code, but it is much more difficult to search for a bit-map picture of a tiger.
As suggested the disadvantages of holding large bitmaps in a users computer are fading.

Allocating 2 megabytes of memory to hold an image is trivial in comparison with the 64Mb memory of typical PCs.

PCs need powerful processors to handle Windows-style display screens. Since the display screen may be expected to handle moving images and a printer cannot do so the power of the PC processor needs to be significantly greater than what is needed for printing.

Programs to make intelligent use of bitmaps are becoming available. Optical Character Recognition (OCR) software has been around for many years. Visioneer’s scanning software uses ZyIndex to unobtrusively index material in the background. Programs that can index photographic material are beginning to appear.