The Controller: The Language
For the printer controller and the host computer to communicate, they need to speak the same page description language. In earlier printers, the computer sent a special sort of text file and a simple code giving the printer some basic formatting information. Since these early printers had only a few fonts, this was a very straightforward process.
These days, you might have hundreds of different fonts to choose from, and you wouldn't think twice about printing a complex graphic. To handle all of this diverse information, the printer needs to speak a more advanced language.
The primary printer languages these days are Hewlett Packard's Printer Command Language (PCL) and Adobe's Postscript. Both of these languages describe the page in vector form -- that is, as mathematical values of geometric shapes, rather than as a series of dots (a bitmap image). The printer itself takes the vector images and converts them into a bitmap page. With this system, the printer can receive elaborate, complex pages, featuring any sort of font or image. Also, since the printer creates the bitmap image itself, it can use its maximum printer resolution.
Some printers use a graphical device interface (GDI) format instead of a standard PCL. In this system, the host computer creates the dot array itself, so the controller doesn't have to process anything -- it just sends the dot instructions on to the laser.
But in most laser printers, the controller must organize all of the data it receives from the host computer. This includes all of the commands that tell the printer what to do -- what paper to use, how to format the page, how to handle the font, etc. For the controller to work with this data, it has to get it in the right order.