LinuxCommandLibrary

ippeveprinter

Create IPP Everywhere printer queues

TLDR

Run the server with a specific service name

$ ippeveprinter "[service_name]"
copy

Load printer attributes from a PPD file
$ ippeveprinter -P [path/to/file.ppd] "[service_name]"
copy

Run the file command whenever a job is sent to the server
$ ippeveprinter -c [/usr/bin/file] "[service_name]"
copy

Specify the directory that will hold the print files (by default, a directory under the user's temporary directory)
$ ippeveprinter -d [spool_directory] "[service_name]"
copy

Keep the print documents in the spool directory rather than deleting them
$ ippeveprinter -k "[service_name]"
copy

Specify the printer speed in pages/minute unit (10 by default)
$ ippeveprinter -s [speed] "[service_name]"
copy

SYNOPSIS

ippeveprinter [--help] [--version] [-D] [-F filename] [-K] [-P port] [-f filename] [-k] [-p port] [printer-name]

PARAMETERS

--help
    Display program usage and exit.

--version
    Display version information and exit.

-D
    Run in foreground with debug logging.

-F filename
    Load configuration from the specified file and run as daemon.

-K
    Disable callbacks to HTTP servers.

-P port / -p port
    Listen on the specified port (default 8000).

-f filename
    Write logging output to the specified file.

-k
    Do not daemonize; run in foreground.

printer-name
    Name of the virtual printer (default "Virtual PDF Printer").

DESCRIPTION

ippeveprinter is a lightweight command-line tool from the CUPS Filters project that emulates an IPP Everywhere printer server. It listens on a specified port (default 8000) for IPP requests from clients and responds by generating test pages or logging detailed event information, such as job creation, document printing, and status updates. This makes it invaluable for developers testing IPP client applications, drivers, or filters without needing physical printer hardware.

Key features include support for core IPP operations like Print-Validate, Get-Printer-Attributes, Create-Job, Print-Job, and Validate-Job. It can run in foreground or daemon mode, log to files or console, and optionally disable callbacks to HTTP servers. Output mimics real printer behavior, producing raster or PDF test patterns. Use cases range from debugging print workflows to validating compliance with IPP standards in Linux environments.

Configuration is minimal, with options for port binding, logging, and printer naming. It's not intended for production printing but excels in simulation and diagnostics.

CAVEATS

Binds only to localhost by default; use -P 0.0.0.0:port for remote access (security risk). Not for production use. Requires CUPS filters package.

BASIC USAGE EXAMPLE

ippeveprinter TestPrinter -p 8001
Starts server named "TestPrinter" on port 8001.

TESTING WITH IPPTOOL

ipptool -t -i http://localhost:8000/ipp/print ipp/print-job.test
Validates Print-Job operation.

HISTORY

Introduced in cups-filters 1.22.0 (2018) by OpenPrinting project to facilitate IPP Everywhere testing amid CUPS 2.x transitions. Evolved for better conformance testing in subsequent releases.

SEE ALSO

ipptool(1), ippfind(1), cupsd(8), rastertopdf(1)

Copied to clipboard