Printer driver
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
Computer printer
In computing, a printer is a peripheral which produces a text or graphics of documents stored in electronic form, usually on physical print media such as paper or transparencies. Many printers are primarily used as local peripherals, and are attached by a printer cable or, in most new printers, a...

. 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 job
Print job
In computing, a print job is a file or set of files that has been submitted to be printed.Jobs are typically identified by a unique number, and are assigned to a particular destination, usually a printer...

s and send them successively to a printer.

Unix

On UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 systems and other systems which use the Common Unix Printing System
Common Unix Printing System
CUPS is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server...

, such as Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, 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 determine the available devices. On startup, each backend is asked for a list of devices it supports, and any information that is available.

DOS

MS-DOS
MS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...

 (or compatible) has support for virtual ports "PRN" and "LPTx" (for parallel printers, where x is a number) to refer to any supported printers. Users can for example use the command "COPY file1 LPT1" to print the content of file file1 to the printer on the first parallel port
Parallel port
A parallel port is a type of interface found on computers for connecting various peripherals. In computing, a parallel port is a parallel communication physical interface. It is also known as a printer port or Centronics port...

. However, this method of printing is mainly for generic text file
Text file
A text file is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists within a computer file system...

s without special format; there is also no system-wide printer drivers for use at application level beyond these virtual ports. In order to support more complex printing for different models of printers, each application (e.g. a word processor
Word processor
A word processor is a computer application used for the production of any sort of printable material....

) may be 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 addition, it's possible for applications to include 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
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

 Proprinter commands. Many more recent laser printer
Laser printer
A laser printer is a common type of computer printer that rapidly produces high quality text and graphics on plain paper. As with digital photocopiers and multifunction printers , laser printers employ a xerographic printing process, but differ from analog photocopiers in that the image is produced...

s also have emulations for HP PCL
Printer Command Language
Printer Command Language, more commonly referred to as PCL, is a page description language developed by Hewlett-Packard as a printer protocol and has become a de facto industry standard. Originally developed for early inkjet printers in 1984, PCL has been released in varying levels for thermal,...

 or PostScript
PostScript
PostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...

 printers which will work in DOS. It appears that these are also compatible with Windows 3.x.

Windows

On Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 systems, printer drivers make use of GDI
Graphics Device Interface
The Graphics Device Interface is a Microsoft Windows application programming interface and core operating system component responsible for representing graphical objects and transmitting them to output devices such as monitors and printers....

 (Unidrv
Unidrv
UniDrv is a GDI-based Microsoft Windows universal printer driver and architecture for non-PostScript printers. It is used to simplify driver development of non-PostScript printers for printer manufacturers...

 or PScript
PostScript
PostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...

-based) or XPS
XML Paper Specification
Open XML Paper Specification , is an open specification for a page description language and a fixed-document format originally developed by Microsoft as XML Paper Specification that was later standardized by Ecma International as international standard ECMA-388...

 (XPSDrv). Programs then use the same standard APIs
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 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, although there are software (such as PrintFil) which will make these printers work in a DOS prompt within Windows.

Win32 APIs also allow applications to send data directly to the spooler, bypassing the printer driver; however, few applications actually use this option.

Amiga

The original AmigaOS up to 1.3 supported printers through a standard series of drivers stored at the required path "DEVS:Printers". All printer drivers were stored in that directory, and covered the standard printers in 1985-1989 circa, included EpsonFX standard driver, XEROX
Xerox
Xerox Corporation is an American multinational document management corporation that produced and sells a range of color and black-and-white printers, multifunction systems, photo copiers, digital production printing presses, and related consulting services and supplies...

 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. They 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 "PRT:" 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 and 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
TurboPrint
TurboPrint is a closed source printer driver system for Linux, AmigaOS and MorphOS. It supports a number of printers that don't yet have a free driver, and fuller printer functionality on some printer models. It integrates with the CUPS printing system....

 and PrintStudio, which introduced not only recent drivers, but also featured a functioning Printer Spooler into Amiga, and featured 16 millions colors printing. MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...

 Amiga clone Operating System uses a special version of TurboPrint to pilot recent printers.

Many Amiga programs like DTP programs as PageStream
PageStream
PageStream is a desktop publishing software package by Grasshopper LLC , currently available for a variety of operating systems, including Windows, Linux, Macintosh, and Amiga...

 featured in the past its own printer drivers.

USB printers are automatically recognized by the Poseidon USB Stack. This stack is capable of detecting any USB device by its class, but printers still require a driver to be controlled.

PostScript printer description

Usually the operating system needs to know the characteristics of a printer. The PPD
PostScript Printer Description
PostScript Printer Description files are created by vendors to describe the entire set of features and capabilities available for their PostScript printers.A PPD also contains the PostScript code used to invoke features for the print job...

 files are the normal way to supply this information. They have the advantage of being system independent, and there is a freely available large database of them, Foomatic
Foomatic
Foomatic is a configurable printing filter. It uses PPD files as configuration to generate appropriate output for a given printer. It is intended to be used with the Common Unix Printing System . It uses ghostscript in the background, using options according to the PPD file of the printer...

.

See also

  • PostScript Printer Description
    PostScript Printer Description
    PostScript Printer Description files are created by vendors to describe the entire set of features and capabilities available for their PostScript printers.A PPD also contains the PostScript code used to invoke features for the print job...

     (PPD)
  • CUPS
  • Virtual printer
    Virtual printer
    A virtual printer is a piece of computer software whose user interface and API resemble that of a printer driver, but which is not connected with a physical computer printer....

  • XML Paper Specification
    XML Paper Specification
    Open XML Paper Specification , is an open specification for a page description language and a fixed-document format originally developed by Microsoft as XML Paper Specification that was later standardized by Ecma International as international standard ECMA-388...

     (XPS)
  • List of emulators
  • ESC/P
    ESC/P
    ESC/P is a command language developed by Epson to control computer printers. It was mainly used in dot matrix printers and some inkjet printers. During the era of dot matrix printers, it was also used by other manufacturers , sometimes in modified form...

  • Printer Command Language
    Printer Command Language
    Printer Command Language, more commonly referred to as PCL, is a page description language developed by Hewlett-Packard as a printer protocol and has become a de facto industry standard. Originally developed for early inkjet printers in 1984, PCL has been released in varying levels for thermal,...

     (PCL)
  • Windows Vista printing technologies
  • HP Universal Print Driver
    HP Universal Print Driver
    HP Universal Print Driver is an intelligent print driver that supports a broad range of HP LaserJet printers and MFPs. Developed by HP, it combines a general purpose driver and HP proprietary extensions. The HP UPD simplifies driver deployment and management...

    (HP UPD)

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK