Foomatic

Last updated
Linux/Unix printing process. The foomatic filter is applied when conversion from PostScript to raster takes place. CUPS-block-diagram.svg
Linux/Unix printing process. The foomatic filter is applied when conversion from PostScript to raster takes place.

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. [1] 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.

Contents

Operation

Like CUPS, foomatic supposes that applications will produce output in PostScript. If the output spools to a PostScript printer, no further action is needed. Otherwise, the most generic way to act is:

But if foomatic-rip "knows" about the available printer, it will translate the PostScript data directly to the printer's language, without creating the intermediate raster file.

Description of the package

The components of the package are:

foomatic-filters (or "foomatic-rip")
It transforms PostScript data to raster (or to the printer's native language), using the PPD as configuration. It needs a low level driver (specific to each printer) to generate the final code.
foomatic-tools
foomatic-db-engine: A tool that generates PPD files from the data in Foomatic's database. It also contains scripts to directly configure print queues and handle jobs.
foomatic-db: The collected knowledge about printers, drivers, and driver options in XML files, used by foomatic-db-engine to generate PPD files.
foomatic-db-hpijs: Foomatic XML data generators for HP's HPIJS driver.

Free drivers that can interface with foomatic

The following free drivers were specifically developed to work with foomatic:

Spoolers that can interact with foomatic

Related Research Articles

<span class="mw-page-title-main">PDF</span> Portable Document Format, a digital file 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. Based on the PostScript language, each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, fonts, vector graphics, raster images and other information needed to display it. PDF has its roots in "The Camelot Project" initiated by Adobe co-founder John Warnock in 1991. PDF was standardized as ISO 32000 in 2008. The last edition as ISO 32000-2:2020 was published in December 2020.

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

PostScript is a page description language and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it can be used for many other purposes as well. PostScript was created at Adobe Systems by John Warnock, Charles Geschke, Doug Brotz, Ed Taft and Bill Paxton from 1982 to 1984. The most recent version, PostScript 3, was released in 1997.

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">Raster image processor</span>

A raster image processor (RIP) is a component used in a printing system which produces a raster image also known as a bitmap. Such a bitmap is used by a later stage of the printing system to produce the printed output. The input may be a page description in a high-level page description language such as PostScript, PDF, or XPS. The input can also be or include bitmaps of higher or lower resolution than the output device, which the RIP resizes using an image scaling algorithm.

<span class="mw-page-title-main">Laser printing</span> Electrostatic digital printing process

Laser printing is an electrostatic digital printing process. It produces high-quality text and graphics by repeatedly passing a laser beam back and forth over a negatively charged cylinder called a "drum" to define a differentially charged image. The drum then selectively collects electrically charged powdered ink (toner), and transfers the image to paper, which is then heated to permanently fuse the text, imagery, or both, to the paper. As with digital photocopiers, laser printers employ a xerographic printing process. Laser printing differs from traditional xerography as implemented in analog photocopiers in that in the latter, the image is formed by reflecting light off an existing document onto the exposed drum.

<span class="mw-page-title-main">Ghostscript</span> Interpreter for the PostScript language

Ghostscript is a suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format (PDF) page description languages. Its main purposes are the rasterization or rendering of such page description language files, for the display or printing of document pages, and the conversion between PostScript and PDF files.

<span class="mw-page-title-main">Graphics Device Interface</span> Microsoft Windows API

The Graphics Device Interface (GDI) is a legacy component of Microsoft Windows responsible for representing graphical objects and transmitting them to output devices such as monitors and printers. It was superseded by DirectDraw API and later Direct2D API. Windows apps use Windows API to interact with GDI, for such tasks as drawing lines and curves, rendering fonts, and handling palettes. The Windows USER subsystem uses GDI to render such UI elements as window frames and menus. Other systems have components that are similar to GDI; for example: Mac OS has QuickDraw, and Linux and Unix have X Window System core protocol.

<span class="mw-page-title-main">Device independent file format</span> Typesetting file format

The device independent file format (DVI) is the output file format of the TeX typesetting program, designed by David R. Fuchs and implemented by Donald E. Knuth in 1982. Unlike the TeX markup files used to generate them, DVI files are not intended to be human-readable; they consist of binary data describing the visual layout of a document in a manner not reliant on any specific image format, display hardware or printer. DVI files are typically used as input to a second program which translates DVI files to graphical data. For example, most TeX software packages include a program for previewing DVI files on a user's computer display; this program is a driver. Drivers are also used to convert from DVI to popular page description languages and for printing.

<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.

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.

HP Jetdirect is the name of a technology sold by Hewlett-Packard that allows computer printers to be directly attached to a local area network. The "Jetdirect" designation covers a range of models from the external 1 and 3 port parallel print servers known as the 300x and 500x, to the internal EIO print servers for use with HP printers. The Jetdirect series also includes wireless print server models, as well as gigabit Ethernet and IPv6-compliant internal cards.

The Line Printer Daemon protocol/Line Printer Remote protocol is a network printing protocol for submitting print jobs to a remote printer. The original implementation of LPD was in the Berkeley printing system in the BSD UNIX operating system; the LPRng project also supports that protocol. The Common Unix Printing System, which is more common on modern Linux distributions and also found on macOS, supports LPD as well as the Internet Printing Protocol (IPP). Commercial solutions are available that also use Berkeley printing protocol components, where more robust functionality and performance is necessary than is available from LPR/LPD alone. The LPD Protocol Specification is documented in RFC 1179.

Gutenprint is a collection of free-software printer drivers for use with UNIX spooling systems, such as CUPS, LPR, and LPRng. These drivers provide printing services for Unix-like systems, RISC OS and Haiku.

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 in 1984, PCL has been released in varying levels for thermal, matrix, and page printers. HP-GL/2 and PJL are supported by later versions of PCL.

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.

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. Unidrv allows the creation of a printer-specific minidriver in the form of a GPD file, similar to a PPD file, which is much simpler than kernel mode driver development. Unidrv was introduced in Windows 2000 and replaced the Raster Device Driver (RASDD) interface used in Windows NT 4.0 and earlier versions.

In printing, Preflight is the process of confirming that the digital files required for the printing process are all present, valid, correctly formatted, and of the desired type. The basic idea is to prepare the files to make them feasible for the correct process such as offset printing and eliminate costly errors and facilitate a smooth production. It is a standard prepress procedure in the printing industry. The term originates from the preflight checklists used by pilots. The term was first used in a presentation at the Color Connections conference in 1990 by consultant Chuck Weger, and Professor Ron Bertolina was a pioneer for solutions to preflighting in the 1990s.

Windows Vista has many significant new features compared with previous Microsoft Windows versions, covering most aspects of the operating system.

"Harlequin (software)" is a raster image processor first released in 1990 under the name ScriptWorks running as a command-line application to render PostScript language files under Unix. It was developed by Harlequin, a software company based in Cambridge, England.

References

  1. "Foomatic". Linux Foundation. 23 February 2009. Archived from the original on 2014-07-01. Retrieved 2014-12-16.