ippeveprinter
Create IPP Everywhere printer queues
TLDR
Run the server with a specific service name
Load printer attributes from a PPD file
Run the file command whenever a job is sent to the server
Specify the directory that will hold the print files (by default, a directory under the user's temporary directory)
Keep the print documents in the spool directory rather than deleting them
Specify the printer speed in pages/minute unit (10 by default)
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.


