Printer driver
From Wikipedia, the free encyclopedia
In computers, a printer driver or a print processor is a piece of software that converts the data to be printed to the form specific to a printer. The purpose of printer drivers is to allow applications to do printing without being aware of the technical details of each printer model.
Printer drivers should not be confused with print spoolers, that queue print jobs and send them to printer one after the other.
Contents |
[edit] Printer drivers in different operating systems
[edit] Unix
On UNIX systems and other systems which use the Common Unix Printing System, such as Mac OS X, printer drivers are typically implemented as filters. They are usually named the front end of the printing system, while the printer spoolers constitute the back end.
Backends are also used to determinate the available devices. On startup, each backend is asked for a list of devices it supports, and any information that is available.
[edit] DOS
On MS-DOS, there have been no system-wide printer drivers; each application was shipped with its own printer drivers, which were essentially descriptions of printer commands. Printers, too, have been supplied with drivers for the most popular applications. In additions, applications included tools for editing printer description, in case there was no ready driver. In the days when DOS was widely used, many printers had emulation modes for Epson FX80 and IBM Proprinter commands. It appears that these also worked with Windows 3.0, ref: [1] For a list of Epson FX printer codes see: [2] This is also common in gnomephones
[edit] Windows
On Microsoft Windows systems, printer drivers make use of GDI (Unidrv or PScript-based) or XPS (XPSDrv). Programs then use the same standard APIs to draw text and pictures both on screen and on paper. Printers which use GDI natively are commonly referred to as Winprinters and are considered incompatible with other operating systems.
Win32 APIs also allow applications to send data directly to the spooler, bypassing the printer driver; however, few applications actually use this option.
[edit] Amiga
The original AmigaOS up to 1.3 supported printers through a standard series of drivers stored at the required path "Sys:Devs/Printers". All printer drivers were stored in that directory, and covered the standard printers in 1985-1989 circa, included EpsonFX standard driver, XEROX 4020, HP, etcetera.
Any Amiga printer driver had to communicate though the standard Amiga Printer.Device (the default standard hardware device of Amiga dealing with printers), and the standard Parallel.Device (which controlled parallel port) and the driver would then control the printer on its own.
Amiga printers were an innovation for their time. The had the ability to print up to 4096 colors.
Through the use of the Printer Preferences program printers could be connected to the serial port as well.
Amiga also had support for a virtual device "PTR:" to refer to printer.device so, for example the command "COPY file TO PRT:" caused the file to be printed directly bypassing Parallel.Device and the default Printer Driver. Amiga used a standard ANSI "Esc sequences" list of ESC (Escape) Commands, not the special ones defined by the various printer manufacturers. This way every application on the Amiga could use the same standard set of control sequences and wouldn't need to know which printer is actually connected. The printer driver then translated these standard sequences into the special sequences a certain printer understands.
Amiga internal function "PWrite" of Printer.Device writes 'length' bytes directly to the printer. This function is generally called on by printer drivers to send their buffer(s) to the printer. Number of buffers are decided by the persons who created the driver. Amiga lacked a standard Printer Spooler.
Since AmigaOS 2.0 a standard Printer.Device was changed to control various printers at same time. The Printer preferences were divided in three main panels: Prefs:Printer which selects main printer and other basic elements such as "Print Spacing" and "Paper Size". PrinterGFX controlled features like Dithering an Scaling. PrinterPS controlled Postscript Printers. The printer drivers surprisingly remained almost same of Workbench 1.3, with 4096 limits.
This fact led Amiga users to prefer third party Printer Systems with their own drivers, like TurboPrint and PrintStudio, which introduced not only recent drivers, but also featured a functioning Printer Spooler into Amiga, and featured 16 millions colors printing. MorphOS Amiga clone Operating System uses a special version of TurboPrint to pilot recent printers.
Many Amiga programs like DTP programs as PageStream featured in the past its own printer drivers.
USB printers are automatically recognized by Amiga USB Stack called Poseidon. This stack it is capable to detect any USB device from its class, but the printers still require a driver to be piloted.
[edit] PostScript printer description
Usually the operating system needs to know the characteristics of a printer. The PPD files are the normal way to supply this information. They have the advantage of being system independent and that there is a freely large available database of them, Foomatic.
[edit] See also
- PostScript Printer Description (PPD)
- CUPS
- Virtual printer
- XML Paper Specification (XPS)
- List of emulators
- ESC/P
- Printer Command Language (PCL)
- Windows Vista printing technologies
[edit] External links
- Driver Links - Links to several manufacturers driver listings
- Amiga RKM (ROM Kernel Manual), Printer.Device: provides detailed information about the Amiga's I/O subsystems.
- OPTIsend Print - First intelligent printer driver.