A Node.js implementation of an IPP printer that advertises itself on your local network for receiving print jobs.
ipp-printer is a Node.js module that implements an IPP (Internet Printing Protocol) printer server, allowing you to create a virtual printer on your local network. It solves the problem of needing a physical printer or print server by enabling any device on the network to send print jobs to a Node.js application, where they can be processed or saved as files.
Developers and system administrators who need to simulate network printers for testing, create custom print job handlers, or build applications that receive print jobs programmatically.
Developers choose ipp-printer because it provides a pure Node.js implementation of IPP with zero dependencies on physical hardware, making it ideal for testing, prototyping, and building custom print workflows without complex setup.
An IPP printer written in Node.js
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Bonjour/Zeroconf to automatically advertise the printer on the local network, simplifying client setup without manual configuration, as highlighted in the README's installation and CLI usage.
Provides a JavaScript API that emits print jobs as readable streams, enabling custom processing and saving of documents, with examples in the README for handling jobs programmatically.
Confirmed to work with OS X and Windows clients, making it versatile for testing across different operating systems, as stated in the project status section.
Includes a debugging mode that logs all IPP communication when the DEBUG environment variable is set, which is invaluable for troubleshooting client-server issues, as described in the debugging section.
As admitted in the README, it doesn't support any IPP security mechanisms, making it unsafe for use on open networks where print jobs could be intercepted or tampered with.
Only implements IPP 1.1 and a minimal set of operations (e.g., basic print and cancel jobs), which may not be sufficient for clients expecting modern IPP features or advanced job management.
By default, documents are saved as PostScript files, requiring additional conversion steps for other formats like PDF, and the module doesn't provide built-in processing for non-PostScript data.