Data sent to a printer must be in a language that the printer can understand. These languages are called Page Description Languages, or PDLs.
Plain ASCII text is the simplest way to send data to a printer. Characters correspond one to one with what will be printed: an
Ain the data prints an
Aon the page. Very little formatting is available. There is no way to select a font or proportional spacing. The forced simplicity of plain ASCII means that text can be printed straight from the computer with little or no encoding or translation. The printed output corresponds directly with what was sent.
Some inexpensive printers cannot print plain ASCII text. This makes them more difficult to set up, but it is usually still possible.
PostScript is almost the opposite of ASCII. Rather than simple text, a PostScript program is a set of instructions that draw the final document. Different fonts and graphics can be used. However, this power comes at a price. The program that draws the page must be written. Usually this program is generated by application software, so the process is invisible to the user.
Inexpensive printers sometimes leave out PostScript compatibility as a cost-saving measure.
- PCL (Printer Command Language)
PCL is an extension of ASCII, adding escape sequences for formatting, font selection, and printing graphics. Many printers provide PCL5 support. Some support the newer PCL6 or PCLXL. These later versions are supersets of PCL5 and can provide faster printing.
Manufacturers can reduce the cost of a printer by giving it a simple processor and very little memory. These printers are not capable of printing plain text. Instead, bitmaps of text and graphics are drawn by a driver on the host computer and then sent to the printer. These are called host-based printers.
Communication between the driver and a host-based printer is often through proprietary or undocumented protocols, making them functional only on the most common operating systems.
Many applications from the Ports Collection and FreeBSD utilities produce PostScript output. This table shows the utilities available to convert that into other common PDLs:
For the easiest printing, choose a printer that supports PostScript. Printers that support PCL are the next preferred. With print/ghostscript, these printers can be used as if they understood PostScript natively. Printers that support PostScript or PCL directly almost always support direct printing of plain ASCII text files also.
Line-based printers like typical inkjets usually do not support PostScript or PCL. They often can print plain ASCII text files. print/ghostscript supports the PDLs used by some of these printers. However, printing an entire graphic-based page on these printers is often very slow due to the large amount of data to be transferred and printed.
Host-based printers are often more difficult to set up. Some cannot be used at all because of proprietary PDLs. Avoid these printers when possible.
Descriptions of many PDLs can be found at http://www.undocprint.org/formats/page_description_languages. The particular PDL used by various models of printers can be found at http://www.openprinting.org/printers.