In
computers
A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as programs. These programs ...
, a printer driver or a print processor is a piece of
software
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work.
At the lowest programming level, executable code consists ...
on a computer that converts the data to be printed to a format that a
printer
Printer may refer to:
Technology
* Printer (publishing), a person or a company
* Printer (computing), a hardware device
* Optical printer for motion picture films
People
* Nariman Printer (fl. c. 1940), Indian journalist and activist
* James ...
can understand. 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 spooler
In computing, spooling is a specialized form of multi-programming for the purpose of copying data between different devices. In contemporary systems, it is usually used for mediating between a computer application and a slow peripheral, such as ...
s, which queue
print job
In computing, a print job is a file or set of files that has been submitted to be printed with a printer.
Jobs are typically identified by a unique number, and are assigned to a particular destination, usually a printer. Jobs can also have options ...
s and send them successively to a printer.
Printer drivers in different operating systems
Unix and Unix-like
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
and other
Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
systems such as
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
and
OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
use
CUPS
CUPS (formerly an acronym for Common UNIX Printing System) is a modular computer printer, printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a Server (computi ...
(short for Common Unix Printing System), a modular printing system for Unix-like computer operating systems, which allows a computer to act as a
print server In computer networking, a print server, or printer server, is a type of server that connects printers to client computers over a network. It accepts print jobs from the computers and sends the jobs to the appropriate printers, queuing the jobs local ...
. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer. Printer drivers are typically implemented as
filters
Filter, filtering or filters may refer to:
Science and technology
Computing
* Filter (higher-order function), in functional programming
* Filter (software), a computer program to process a data stream
* Filter (video), a software component tha ...
. 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
DOS
DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems.
DOS may also refer to:
Computing
* Data over signalling (DoS), multiplexing data onto a signalling channel
* Denial-of-service attack (DoS), an attack on a communicat ...
supports predefined character devices
PRN:
,
LPT1:
,
LPT2:
and
LPT3:
associated with parallel printers supported in the system. Similarly, serial printers can be used with
AUX:
,
COM1:
,
COM2:
,
COM3:
and
COM4:
.
Users can use commands like, for example, "
COPY ''file1'' LPT1:
" to print the content of a file to a printer. The contents is transferred to the printer without any interpretation. Therefore, this method of printing is either for files already stored in the corresponding printer's language or for generic
text file
A text file (sometimes spelled textfile; an old alternative name is flatfile) is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists stored as data within a computer file system. In operating ...
s without more than simple line-oriented formatting.
DOS also provides a dynamically loadable print spooler named
PRINT as well as optional support to support screen captures also in graphics mode through
GRAPHICS
Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of data, as in design and manufacture ...
. If the optional character device driver
PRINTER.SYS is loaded, DOS provides its
code page
In computing, a code page is a character encoding and as such it is a specific association of a set of printable characters and control characters with unique numbers. Typically each number represents the binary value in a single byte. (In some co ...
switching support also for the associated printers—different types of
dot matrix
A dot matrix is a 2-dimensional patterned array, used to represent characters, symbols and images. Most types of modern technology use dot matrices for display of information, including mobile phones, televisions, and printers. The system is al ...
and
ink jet printer
Inkjet printing is a type of computer printing that recreates a digital image by propelling droplets of ink onto paper and plastic substrates. Inkjet printers were the most commonly used type of printer in 2008, and range from small inexpensi ...
s are supported by default.
Beyond this, there are no system-wide printer-specific drivers for use at application level under MS-DOS/PC DOS. Under DR-DOS, however, the
SCRIPT
Script may refer to:
Writing systems
* Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire
* Script (styles of handwriting)
** Script typeface, a typeface with characteristics of handw ...
command can be loaded to run in the background in order to intercept and convert printer output from applications into
PostScript
PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
to support PS-capable printers also by applications not supporting them directly.
In order to support more complex printing for different models of printers, each application (e.g. a
word processor
A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features.
Word processor (electronic device), Early word processors were stand-alone devices ded ...
) may be shipped with its own printer drivers, which were essentially descriptions of printer
escape sequence
In computer science, an escape sequence is a combination of characters that has a meaning other than the literal characters contained therein; it is marked by one or more preceding (and possibly terminating) characters.
Examples
* In C and man ...
s. 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
Seiko Epson Corporation, or simply known as Epson, is a Japanese multinational electronics company and one of the world's largest manufacturers of computer printers and information- and imaging-related equipment. Headquartered in Suwa, Nagano, ...
FX-80 and
IBM Proprinter commands. Many more recent
laser printer
Laser printing is an electrostatic digital printing process. It produces high-quality text and graphics (and moderate-quality photographs) by repeatedly passing a laser beam back and forth over a negatively-charged cylinder called a "drum" to d ...
s also have emulation modes for
HP PCL (HP LaserJet) or
PostScript
PostScript (PS) is a page description language in the electronic publishing and desktop publishing realm. It is a dynamically typed, concatenative programming language. It was created at Adobe Systems by John Warnock, Charles Geschke, Doug Br ...
printers which will work in DOS. It appears that these are also compatible with Windows 3.x.
Windows
On
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
systems, printer drivers make use of
GDI
GDI may refer to:
Science and technology
* Gasoline direct injection, a type of fuel injection
* Graphics Device Interface, a component of Microsoft Windows
* Guanosine nucleotide dissociation inhibitor, a protein
Organisations
* Gabriel Dumont I ...
(
Unidrv UniDrv (Universal Printer Driver or Unidriver) 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 (also called Winprinters) ...
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, although there is software (such as PrintFil) which will make these printers work in a DOS prompt within Windows.
Win32
The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations th ...
APIs also allow applications to send data directly to the spooler, bypassing the printer driver; however, few applications actually use this option.
The printer driver is usually located on the C:\Windows\System32\DriverStore\FileRepository folder on a Windows machine.
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
Epson
Seiko Epson Corporation, or simply known as Epson, is a Japanese multinational electronics company and one of the world's largest manufacturers of computer printers and information- and imaging-related equipment. Headquartered in Suwa, Nagano, ...
FX standard driver,
Xerox
Xerox Holdings Corporation (; also known simply as Xerox) is an American corporation that sells print and electronic document, digital document products and services in more than 160 countries. Xerox is headquartered in Norwalk, Connecticut (ha ...
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 printer drivers were an innovation for their time. They spared users from individually configuring each of their applications. 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
ANSI escape code
ANSI escape sequences are a standard for in-band signaling to control cursor location, color, font styling, and other options on video text terminals and terminal emulators. Certain sequences of bytes, most starting with an ASCII escape charac ...
s, 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 and
PrintStudio, which introduced not only recent drivers, but also featured a functioning Printer Spooler into Amiga, and featured 16 million colors printing.
MorphOS
MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed proprietary and open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale dev ...
uses a special version of TurboPrint to pilot recent printers.
Many Amiga programs like DTP programs as
PageStream
PageStream (originally Publishing Partner) is a desktop publishing software package by Grasshopper LLC (United States), currently available for a variety of operating systems, including Windows, Linux, and macOS. The software was originally relea ...
featured in the past its own printer drivers.
USB printers are automatically recognized by the
Poseidon
Poseidon (; grc-gre, Ποσειδῶν) was one of the Twelve Olympians in ancient Greek religion and myth, god of the sea, storms, earthquakes and horses.Burkert 1985pp. 136–139 In pre-Olympian Bronze Age Greece, he was venerated as a ch ...
USB Stack. This stack is capable of detecting any USB device by its class, but printers still require a driver to be controlled.
Types of drivers
In addition to being install-able on a computer, drivers could also be present in the embedded firmware of printers and made available through a networking protocol (e.g. IPP). The embedded firmware of a printer could thus eliminate the need to install any driver on a computer, by accepting print data in a general purpose format (e.g. PDF) via a networking protocol. Despite some efforts to standardize various stages of the printing pipeline, printer interfaces are largely still very proprietary and manufacturer-specific. Hence, nature of functions performed by drivers can vary. Nonetheless, based on the function performed, drivers can be classified as follows.
Device-independent converters
These drivers can convert print data from one general purpose format (e.g. PDF, DVI etc) to another general purpose format (e.g. PS). Examples include Ghostscript, etc.
Converters to device-specific format
These drivers convert print data from one format (e.g. PS) to a final device-specific format that the printer hardware can process and create a print. These drivers act as the last stage in delivering a print job to the printer. These drivers are more likely to be embedded in printer firmware.
Examples of manufacturer specific formats include:
*
Printer Command Language
Printer Command Language, more commonly referred to as PCL, is a page description language (PDL) developed by Hewlett-Packard as a printer protocol and has become a ''de facto'' industry standard. Originally developed for early inkjet printers ...
(PCL) (
Hewlett-Packard
The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company headquartered in Palo Alto, California. HP developed and provided a wide variety of hardware components ...
)
* PostScript (PS) (
Adobe
Adobe ( ; ) is a building material made from earth and organic materials. is Spanish for ''mudbrick''. In some English-speaking regions of Spanish heritage, such as the Southwestern United States, the term is used to refer to any kind of e ...
)
* Ink Jet Printer Data Stream (
Kodak
The Eastman Kodak Company (referred to simply as Kodak ) is an American public company that produces various products related to its historic basis in analogue photography. The company is headquartered in Rochester, New York, and is incorpor ...
)
* Samsung Printer Language
* Ultra Fast Rendering (
Canon
Canon or Canons may refer to:
Arts and entertainment
* Canon (fiction), the conceptual material accepted as official in a fictional universe by its fan base
* Literary canon, an accepted body of works considered as high culture
** Western ca ...
)
Packaging formats
Install-able drivers can be packaged in various formats. PPD is a popular packaging format for drivers that accept Postscript data or PDF data as input. Due to dominance of select operating systems, the operating system–driver interface is more standardized than driver–printer interfaces. Hence there is more standardization in packaging formats of drivers than the actual functions performed by drivers.
* PostScript Printer Description file 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 there is a freely available large database of them,
Foomatic
Foomatic is a configurable printing filter. It uses PostScript Printer Description, PPD files as configuration to generate appropriate output for a given printer. It is spooler independent which means it can be used with Common Unix Printing Syst ...
.
* CUPS filter This format is used by
CUPS
CUPS (formerly an acronym for Common UNIX Printing System) is a modular computer printer, printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a Server (computi ...
on Linux systems.
See also
*
CUPS
CUPS (formerly an acronym for Common UNIX Printing System) is a modular computer printer, printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a Server (computi ...
*
ESC/P
ESC/P, short for Epson Standard Code for Printers and sometimes styled Escape/P, is a printer control language developed by Epson to control computer printers. It was mainly used in dot matrix printers and some inkjet printers, and is still widel ...
*
HP Universal Print Driver
HP Universal Print Driver (UPD) is an intelligent print driver that supports a broad range of HP LaserJet printers and Multifunction printer, MFPs. Developed by Hewlett-Packard, it combines a general purpose driver (UNIDRV or PostScript, PSCRIPT) a ...
(HP UPD)
*
List of emulators
This article lists software emulators.
Central processing units
ARM
*ARMulator
*Aemulor
* QEMU
MIPS
* SPIM: The OVPsim 500 mips MIPS32 emulator, can be used to develop software using virtual platforms, emulators including MIPS processors runni ...
*
Open-source hardware
Open-source hardware (OSH) consists of physical artifacts of technology designed and offered by the open-design movement. Both free and open-source software (FOSS) and open-source hardware are created by this open-source culture movement and a ...
*
PostScript Printer Description
PostScript Printer Description (PPD) 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 (commands) used to invoke features for the p ...
(PPD)
*
Print (command)
*
Printer Command Language
Printer Command Language, more commonly referred to as PCL, is a page description language (PDL) developed by Hewlett-Packard as a printer protocol and has become a ''de facto'' industry standard. Originally developed for early inkjet printers ...
(PCL)
*
Windows Vista printing technologies
*
Virtual printer
In computing a virtual printer is a simulated device whose user interface and API resemble that of a printer driver, but which is not connected with a physical computer printer.
When a document is "printed" by a virtual printer, instead of phys ...
*
XML Paper Specification
Open XML Paper Specification (also referred to as OpenXPS) is an open specification for a page description language and a fixed-document format. Microsoft developed it as the XML Paper Specification (XPS). In June 2009, Ecma International adopte ...
(XPS)
*
Portable Document Format
Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. ...
(PDF)
References
{{DEFAULTSORT:Printer Driver
Device drivers
Computer printers