IppPrinter is a lightweight, cross-platform IPP (Internet Printing Protocol) print server web application built with ASP.NET Core and powered by the SharpIppNext library.
- Full IPP Protocol Support: Implements standard IPP 1.1 and 2.0 operations (
Print-Job,Create-Job,Send-Document,Get-Printer-Attributes,Get-Job-Attributes,Get-Jobs,Cancel-Job, subscriptions, etc.) viaSharpIppNext. - Automatic Document Conversion: Converts incoming document payloads automatically to PDF format for storage and processing:
- PWG Raster (
image/pwg-raster) - Apple Raster / URF (
image/urf) - Images (
image/png,image/jpeg,image/gif,image/bmp) - Plain Text (
text/plain) with automatic line wrapping and PDF layout generation - Native PDF (
application/pdf) pass-through
- PWG Raster (
- mDNS / Zeroconf Discovery: Automatic network printer advertisement (
PrinterDiscoveryService) allowing clients on the network (Windows, macOS, iOS AirPrint, Android, Linux CUPS) to discover the printer automatically. - Multiple IPP Endpoints: Supports common IPP path patterns (
/,/ipp,/ipp/print,/printers/{PrinterName},/{PrinterName}). - Cross-Platform & Windows Service: Runs on Windows, Linux, and macOS. Includes native Windows Service hosting and Event Log integration.
- Background Job Queue: Async job queue with background processing and job timeout handling.
- Easy Deployment & Setup: Comes with PowerShell automation scripts (
Add-Printer.ps1/Remove-Printer.ps1) and an optional Inno Setup GUI installer.
- .NET 10.0 Runtime installed.
The printer is compatible with any standard IPP client.
- Download
IppPrinterSetup.exefrom Releases. - Run the installer wizard as Administrator.
- The setup automatically installs the binaries, registers and starts the Windows Service, configures the firewall rule for port
631, and registers theIppPrinterprint queue.
- Open Printers & scanners in Windows Settings.
- Click Add device.
- Click Add a new device manually.
- Select Add a printer using an IP address or hostname.
- Select IPP Device as the device type.
- Enter
http://127.0.0.1:631/orhttps://127.0.0.1:631/as the Hostname or IP address. - Click Next to finish adding the printer.
- (Optionally) Click Print a test page.
- Click Finish.
Add-Printer -Name "IppPrinter" -IppURL "http://127.0.0.1:631/ipp/print"All installation and removal steps are also automated via Setup/Add-Printer.ps1 and Setup/Remove-Printer.ps1.
Tested with the NetPrinter app and standard Android IPP print services.
For local development setup, building the installer, and integration testing instructions, see CONTRIBUTION.md.
IppPrinter is provided as-is under the MIT license.
For details on third-party dependencies and their licenses, see THIRD-PARTY-NOTICES.txt.