Printers & Page Description Languages

The general idea behind printing is to get things on the printed page looking the same as they do on your screen. The program you’re using makes API calls to the OS to draw text and graphics on your screen. These calls can also be used to draw the same content on the printer. The printer driver acts as a middleman in most situations, converting native API calls into one of two things: raw data or a page description language.

Host Based Printing

Host based printing utilizes a your computer’s processing power to render the printed page. The printer driver takes the program’s API calls and renders the content in memory. Once rendered, the driver sends a compressed bitmap to the printer.

The advantage in having the computer doing all the processing is that it negates the need for a fast processor on your printer. This allows for cheaper, less complex printers. Often the price difference between a host based printer and a printer that supports a standard page description language is $50-100.

The downside is that the printer is relatively ‘dumb’, and can only print raw bitmaps. In order to be fed these bitmaps, every host based printer needs a custom driver for every operating system. This leads to problems installing the printer in nonstandard and older operating systems. If a print driver does not exist for your operating system of choice, you will not be able to print. Every printer supports the 32-bit flavors of Windows, most support OS X 10.4 and possibly 10.5+, a small but growing number support 64-bit Windows, and Linux support is increasing.

Page Description Languages

Page Description Languages are standardized languages for passing data to a printer. The printer driver does no rendering of graphics or text. Instead, it converts the data it receives into PDL, and passes the data onto the printer. The printer then renders the page according to the commands it received.

The key advantage of using a PDL based printer is driver support. A manufacturer only has to write a single driver to support the language, and then every printer in their lineup will work with that driver. Obviously, the manufacturer can still release a custom driver based off their generic one with added support for other features (toner levels, custom color settings, etc).

There are many different languages, with most major vendors offering their own flavor for their printers. Two languages have gained such widespread acceptance that they’re widely used across manufacturer boundaries:

PCL

HP developed their own printer language, which is popular enough that even some competing manufacturers use it. PCL6 is the most recent version, with PCL5 being a common fallback choice. The main advantage to PCL6 is that the commands are very similar to the Windows GDI rendering commands; the printer driver has to do very little work to convert between the output of a Windows application and PCL6.

PostScript

Adobe’s printer language, PS was once the de facto standard for distributing documents meant for publication. It has since been since been largely supplanted by PDF, which is based on a subset of PS. Despite its fall from grace as a publication format, PS is still an extremely popular and widely used printer language.

Every major manufacturer offers PS support on some subset of their printers. Just about every operating system has access to a generic driver which will work with any PS printer. There are also a host of utilities and programs that understand the language, and it gives you a lot of options.

Choosing a new printer

I used a host based printer for 5 years, and it was a great little workhorse. It even hooked up to my Time Capsule and worked seamlessly over my network. That is, up until the point where I installed Vista x64 on my main box and suddenly my perfectly good printer was rendered useless. The manufacturer has no plans to write 64-bit drivers, so I’m basically out of luck.

With PDL printers, you may see slower print times and more expensive hardware. The processor in a printer is much slower than a modern CPU, and will often render pages a bit slower. It is not uncommon to see a printer line with a base model that has a slow processor, limited memory, and often no PDL support at all. For an extra $100, the high end model supports multiple PDLs , has a faster processor, a network card, and a little more memory.

When buying any printer, just be aware of these issues. If you run basic Windows or plan on upgrading your printer once or twice a decade, chances are you’ll be fine with a host-based printer. If you use OS X/Linux or plan on keeping your printer around for a long time, you may want to find one that supports PCL6 or PS. And if you’re networking your printer, PDL support can greatly ease the pain of installing printer drivers across your network. The generic PDL drivers can get users printing with minimal fuss.

Leave a Reply

Comments from new authors must be approved before they will appear.
After your first comment is approved, you are free to comment at will.