foo2zjs
Convert Ghostscript output for ZjStream printers
SYNOPSIS
foo2zjs [options] [input.ps]
or
cat input.ps | foo2zjs [options] > /dev/lp0
PARAMETERS
-r
Sets the printing resolution, e.g., -r1200x600.
-d
Enables duplex (two-sided) printing. -d1 for short-edge binding, -d2 for long-edge binding.
-c
Enables color mode printing, if supported by the printer.
-p
Specifies the paper size (e.g., -pA4, -pLetter).
-n
Prints the specified number of copies.
-L
Sets the compression level for the raster data (0-3). Higher levels mean smaller file size but more CPU usage.
-C
Applies a gamma correction value, useful for adjusting brightness/contrast.
-s
Selects the paper source/tray (e.g., -sTray1, -sManual).
-t
Enables toner save mode, reducing toner consumption.
-i
Inverts the image (black becomes white, white becomes black).
DESCRIPTION
foo2zjs is an open-source, PostScript printer driver that converts PostScript files into the native ZjS (Zijiang Semiconductor) printer language. It is primarily used with Linux and other Unix-like operating systems to enable printing on a wide range of laser printers that utilize this specific page description language, particularly many Samsung, Konica Minolta, and Xerox printers.
As a filter program, foo2zjs typically receives PostScript data from a print spooler like CUPS (Common Unix Printing System) or directly from a pipeline. It then processes this data, generating the proprietary ZjS commands and raw raster data that the printer can understand. This driver is part of a larger suite of 'foo2' drivers, each designed for different proprietary printer languages, providing a vital open-source alternative to proprietary drivers often unavailable for Linux.
CAVEATS
foo2zjs requires a PostScript input, which is usually generated by Ghostscript (gs) if the application doesn't output PostScript directly. The driver relies on specific printer firmware characteristics, and not all ZjS printers are fully supported, or may require specific firmware 'firmloader' files. Compatibility can vary, and optimal performance often depends on correct configuration within CUPS.
HISTORY
The foo2zjs project, led by Rick Richardson, began development around the early 2000s, motivated by the lack of open-source drivers for a growing number of printers using proprietary page description languages. The 'foo2' suite (including foo2qpdl, foo2xqx, etc.) emerged as a crucial solution for Linux users facing limited vendor support. foo2zjs specifically targets printers using the ZjS language, becoming a de facto standard for many Samsung, Xerox, and Konica Minolta models. Its development has continued to adapt to new printer models and ensure ongoing compatibility for PostScript-capable systems.