foo2xqx-wrapper
Print to Minolta/Konica Minolta printers
SYNOPSIS
foo2xqx-wrapper [options] [file]
PARAMETERS
-r resolution
Sets the output resolution in dots per inch (DPI), e.g., 600 or 1200. This option significantly influences the clarity and detail of the printed output.
-d mode
Specifies the duplex printing mode. Common modes include sim (simplex/one-sided), duplex (long-edge duplex), or duplexshort (short-edge duplex), if supported by the printer.
-m media_size
Defines the output media size, such as letter, a4, or legal. This ensures the print job is correctly scaled and positioned for the loaded paper dimensions.
-p paper_source
Selects the paper source or tray from which paper should be fed, e.g., tray1, manual, or auto.
-c mode
Controls the color printing mode. Typically 0 for monochrome (black and white) or 1 for color output, assuming the printer has color capabilities.
file
The input PostScript file to be processed. If not specified, foo2xqx-wrapper reads PostScript data from standard input (stdin), which is the default behavior when invoked by CUPS.
DESCRIPTION
The foo2xqx-wrapper command is a crucial component of the foo2zjs family of open-source printer drivers, specifically designed to support printers that utilize the Xerox Query Language (XQX) protocol. It acts as a wrapper script that orchestrates the printing process, primarily by converting standard PostScript data into the proprietary raster format understood by XQX-based printers, such as certain Xerox, Dell, and Phaser models.
Typically, foo2xqx-wrapper is invoked by the Common Unix Printing System (CUPS) as a filter. When a print job is submitted to a CUPS queue configured for an XQX printer, CUPS pipes the PostScript data through this wrapper. The wrapper then processes the data, often utilizing Ghostscript internally to render the PostScript pages into bitmaps, and finally encodes these bitmaps into the specific XQX printer language. This output is then sent directly to the printer. Its primary role is to bridge the gap between standard PostScript input and the unique requirements of XQX hardware, enabling these printers to be used on Linux and Unix-like systems.
CAVEATS
The foo2xqx-wrapper command relies heavily on the underlying foo2xqx filter and Ghostscript for its core functionality. It is specifically designed for certain Xerox, Dell, and Phaser printers that use the XQX protocol, which are typically older models. Compatibility can vary depending on the printer's specific XQX implementation and the accuracy of its corresponding PPD (PostScript Printer Description) file. This driver suite may not be relevant for newer printers that utilize different standard protocols (e.g., PCL, PostScript native, PDF direct) or come with modern vendor-supplied drivers.
ROLE IN CUPS
In a CUPS (Common Unix Printing System) environment, foo2xqx-wrapper typically serves as a backend filter within the printing pipeline. CUPS uses PPD files to determine the necessary processing steps and filters for a given printer. When an XQX-compatible PPD file is configured for a printer queue, CUPS automatically pipes the incoming PostScript print job data through foo2xqx-wrapper. This wrapper then translates the PostScript into the printer-specific XQX data stream, which CUPS subsequently sends to the physical printer. This seamless integration allows applications to print to supported XQX printers without needing to understand the printer's native language.
HISTORY
foo2xqx-wrapper is an integral part of the foo2zjs open-source printer driver project, primarily developed by Rick Richardson. The project originated to provide robust Linux and Unix support for a range of GDI (Graphics Device Interface) and host-based printers that lacked native PostScript interpreters and relied on proprietary protocols like XQX. It emerged as a vital solution for users facing challenges with vendor-supplied drivers or the absence of drivers for their operating systems, enabling wider hardware compatibility.
SEE ALSO
gs(1), cupsd(8), foo2zjs-wrapper(1), foo2xqx(1)