LinuxCommandLibrary

foo2qpdl-wrapper

Print to foo2qpdl-compatible printers

SYNOPSIS

foo2qpdl-wrapper [options] [<input.ps > output.qpdl]

PARAMETERS

-p
    Set paper size, e.g., -p letter, -pa4, -plegal

-n#
    Number of copies (1-100)

-z0|1|2|3
    Duplex mode: 0=none, 1=long-edge, 2=short-edge, 3=manual

-P
    Portrait orientation

-L
    Landscape orientation

-m
    Media type, e.g., -m plain, -m transparency

-s#
    Print quality/speed (1=high quality slow, 6=fast draft)

-d#
    Toner density (0-100, default 100)

-x#
    Page width in points

-y#
    Page length in points

-l
    Label mode (fits image to page)

-c
    Do not suppress banner page

-k
    Keep temporary files for debugging

-q
    Quiet mode, suppress status messages

-E
    Use exit code for errors

-v
    Verbose output

DESCRIPTION

The foo2qpdl-wrapper is a Perl-based filter program designed for use with the Common Unix Printing System (CUPS). It serves as a wrapper around the foo2qpdl printer driver, which converts PostScript or PDF input into QPDL (a PCL5-compatible page description language variant used by certain HP LaserJet printers). Primarily targeted at models like the HP LaserJet 1000, 1005, 1018, and 1020 series, it enables Linux users to print to these non-PostScript printers without proprietary drivers.

This command reads PostScript from standard input (often piped from gs or directly from CUPS), applies user-specified options for paper size, duplexing, quality, and media type, and outputs printer-ready QPDL data to standard output. It handles common printing features such as multiple copies, orientation, scaling, and toner density adjustments. The wrapper automatically invokes Ghostscript for rasterization if needed, making it seamless for CUPS integration.

Part of the open-source foo2zjs driver suite, it fills a gap for budget HP printers lacking native Linux support. Users typically install it via distribution packages (e.g., printer-driver-foo2zjs in Debian/Ubuntu) and configure it in CUPS as a filter for supported PPD files. While effective for basic printing, advanced features like color (monochrome only) or fine graphics may require tweaks.

CAVEATS

Monchrome-only; limited support for graphics-heavy jobs.
May require Ghostscript tweaks for complex PDFs.
Not all HP models fully tested; check foo2zjs site.

SUPPORTED PRINTERS

HP LaserJet 1000, 1005, 1018, 1020, 1022, M1005 MFP.
Lexmark/Panasonic variants using QPDL.

INSTALLATION NOTE

Install via printer-driver-foo2zjs package.
Run getweb 1018 for firmware if needed.

HISTORY

Originated in 2003 as part of Toby Johnson's foo2zjs project to reverse-engineer proprietary ZjStream/QPDL protocols for Linux printing support. First stable releases around 2004; integrated into major distros by 2006. Actively maintained until ~2015, with community forks ongoing.

SEE ALSO

foo2zjs-wrapper(1), foo2qpdl(1), lp(1), gs(1)

Copied to clipboard