Printer driver

Last updated

In computers, a printer driver or a print processor is a piece of software on a computer that converts the data to be printed to a format that a printer 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.

Contents

Printer drivers should not be confused with print spoolers, which queue print jobs and send them successively to a printer.

Printer drivers in different operating systems

Unix and Unix-like

Unix and other Unix-like systems such as Linux and OS X use CUPS (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. 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. 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 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 files 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. If the optional character device driver PRINTER.SYS is loaded, DOS provides its code page switching support also for the associated printersdifferent types of dot matrix and ink jet printers 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 command can be loaded to run in the background in order to intercept and convert printer output from applications into PostScript 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) may be shipped with its own printer drivers, which were essentially descriptions of printer escape sequences. 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 FX-80 [1] and IBM Proprinter commands. Many more recent laser printers also have emulation modes for HP PCL (HP LaserJet) or PostScript printers which will work in DOS. It appears that these are also compatible with Windows 3.x. [2]

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, although there is 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.

The printer driver is usually located on the C:\Windows\System32\DriverStore\FileRepository folder on a Windows machine. [3] [4]

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 FX 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 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 codes, 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 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 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.

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:

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.

See also

Related Research Articles

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

<span class="mw-page-title-main">PostScript</span> File format and programming language

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 Brotz, Ed Taft and Bill Paxton from 1982 to 1984.

In digital printing, a page description language (PDL) is a computer language that describes the appearance of a printed page in a higher level than an actual output bitmap. An overlapping term is printer control language, which includes Hewlett-Packard's Printer Command Language (PCL). PostScript is one of the most noted page description languages. The markup language adaptation of the PDL is the page description markup language.

<span class="mw-page-title-main">WordPerfect</span> Word processing application

WordPerfect (WP) is a word processing application, now owned by Corel, with a long history on multiple personal computer platforms. At the height of its popularity in the 1980s and early 1990s, it was the dominant player in the word processor market, displacing the prior market leader WordStar.

AmigaDOS is the disk operating system of the AmigaOS, which includes file systems, file and directory manipulation, the command-line interface, and file redirection.

<span class="mw-page-title-main">Parallel port</span> Computer interface

In computing, a parallel port is a type of interface found on early computers for connecting peripherals. The name refers to the way the data is sent; parallel ports send multiple bits of data at once, as opposed to serial communication, in which bits are sent one at a time. To do this, parallel ports require multiple data lines in their cables and port connectors and tend to be larger than contemporary serial ports, which only require one data line.

In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application written using ODBC can be ported to other platforms, both on the client and server side, with few changes to the data access code.

<span class="mw-page-title-main">Newline</span> Special characters in computing signifying the end of a line of text

A newline is a control character or sequence of control characters in character encoding specifications such as ASCII, EBCDIC, Unicode, etc. This character, or a sequence of characters, is used to signify the end of a line of text and the start of a new one.

Peripheral Interchange Program (PIP) was a utility to transfer files on and between devices on Digital Equipment Corporation's computers. It was first implemented on the PDP-6 architecture by Harrison "Dit" Morse early in the 1960s. It was subsequently implemented for DEC's operating systems for PDP-10, PDP-11, and PDP-8 architectures. In the 1970s and 1980s Digital Research implemented PIP on CP/M and MP/M.

<span class="mw-page-title-main">Filename</span> Text string used to uniquely identify a computer file

A filename or file name is a name used to uniquely identify a computer file in a file system. Different file systems impose different restrictions on filename lengths.

<span class="mw-page-title-main">CUPS</span> Computer printing system

CUPS is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs from client computers, process them, and send them to the appropriate printer.

PostScript Printer Description (PPD) files are created by vendors to describe the entire set of features and capabilities available for their PostScript printers.

Open XML Paper Specification 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 adopted it as international standard ECMA-388.

<span class="mw-page-title-main">Foomatic</span>

Foomatic is a configurable printing filter. It uses 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 System (CUPS), LPRng and others. It uses Ghostscript in the background, using options according to the PPD file of the printer. Currently it is developed by the OpenPrinting workgroup of the Linux Foundation.

Amiga support and maintenance software performs service functions such as formatting media for a specific filesystem, diagnosing failures that occur on formatted media, data recovery after media failure, and installation of new software for the Amiga family of personal computers—as opposed to application software, which performs business, education, and recreation functions.

<span class="mw-page-title-main">PRINT (command)</span> Computing command

In computing, the print command provides single-user print spooling capability in a number of operating systems. It is roughly similar to that provided by the UNIX System V lp and BSD lpr print spooler systems.

In Unix-like operating systems, a device file or special file is an interface to a device driver that appears in a file system as if it were an ordinary file. There are also special files in DOS, OS/2, and Windows. These special files allow an application program to interact with a device by using its device driver via standard input/output system calls. Using standard system calls simplifies many programming tasks, and leads to consistent user-space I/O mechanisms regardless of device features and functions.

<span class="mw-page-title-main">DOS</span> Group of closely related IBM PC-compatible operating systems

DOS is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of Microsoft's MS-DOS and a rebranded version, IBM PC DOS, both of which were introduced in 1981. Later compatible systems from other manufacturers include DR-DOS (1988), ROM-DOS (1989), PTS-DOS (1993), and FreeDOS (1998). MS-DOS dominated the IBM PC compatible market between 1981 and 1995.

<span class="mw-page-title-main">Command-line interface</span> Computer interface that uses text

A command-line interface (CLI) is a means of interacting with a device or computer program with commands from a user or client, and responses from the device or program, in the form of lines of text. Such access was first provided by computer terminals starting in the mid-1960s. This provided an interactive environment not available with punched cards or other input methods.

<span class="mw-page-title-main">HP ePrint</span> Electronic printing technologies by Hewlett-Packard

HP ePrint is a term used by Hewlett-Packard to describe a variety of printing technologies developed for mobile computing devices, such as smartphones, tablet computers, and laptops.

References

  1. list of Epson FX printer codes
  2. Citizen Printer Emulation Modes for Microsoft Windows 3.0
  3. "Which Folder Has the Printer Driver Files in Windows 7?".
  4. "Where Are Printer Drivers Stored?".