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 [ options ]
PARAMETERS
-d spool-directory
Specifies the directory where received print files will be stored for inspection.
-h hostname
Specifies the hostname or IP address on which to listen for incoming connections.
-p port
Specifies the port number to listen on. The default is 8000.
-r
Restarts the printer (re-initializes its state) after each job is processed.
-s
Enables SSL/TLS encryption for secure communication with clients.
-t title
Sets a descriptive title for the simulated printer, often used for display in GUI environments.
-v
Enables verbose output, displaying more detailed information about processed jobs and events.
-x
Exits the program after successfully processing the first print job received.
--help
Displays a brief help message with command-line options and usage.
--version
Displays the program's version information.
DESCRIPTION
ippeveprinter is a command-line utility from the CUPS project designed to simulate an Internet Printing Protocol (IPP) printer. It acts as an event-driven IPP server, listening for incoming IPP print jobs on a specified port (default 8000) or an automatically assigned port. Its primary purpose is to provide a controllable environment for testing IPP client applications, IPP servers, and validating IPP compliance.
Unlike a real printer, ippeveprinter does not produce physical output. Instead, it processes the incoming job data, simulates printer responses, and can optionally save the print data to files for inspection. This makes it invaluable for debugging, development, and conformance testing of IPP-based printing solutions without needing a physical printer or extensive CUPS configuration. It's a key tool for developers working on printing protocols.
CAVEATS
ippeveprinter is primarily a development and testing tool and is not intended for use as a production printer daemon. It simulates IPP behavior without actually printing to a physical device, and while it supports core IPP functionalities, it may not replicate all complex behaviors of a full-featured CUPS server or a specific printer model. Its effective use requires understanding of IPP and CUPS concepts.
TESTING WORKFLOW
Often used in conjunction with ippeveprint(1) to send print jobs to the simulated printer, or with ipptool(1) to query its status and capabilities. This allows for comprehensive end-to-end testing of IPP applications and services.
JOB DATA INSPECTION
When configured with the -d option, ippeveprinter saves the received print job data (e.g., PostScript, PCL, PDF) into files within the specified spool directory. This feature is invaluable for developers to inspect the exact data sent by client applications and diagnose formatting or protocol issues.
HISTORY
ippeveprinter has been an integral part of the CUPS (Common Unix Printing System) project's development tools since its early stages. Its creation was driven by the need for a robust and controllable environment to test Internet Printing Protocol (IPP) client applications and servers. It has evolved alongside the IPP specification, making it a cornerstone for validating IPP compliance and ensuring interoperability in the printing ecosystem. Its focus has always been on providing a reliable simulation for developers and testers.