Although Apple uses standard protocols for Airprint, the service is very picky about the exact broadcast settings before the printer will show up on iOS devices. The easiest way I've found to Airprint to an office workgroup printer:
- Configure the printer to be printable via a Linux / CUPS server. On Debian install the cups and cups-pdf packages then log in via port 631 and configure the workgroup printer, making sure a test page prints.
- Add
ServerAlias *
in /etc/cups.conf; this prevents "Request from x using invalid Host: field" errors.
- Install avahi, on Debian use the avahi-daemon package.
- Run this handy airprint-generate script. Copy the resulting file to /etc/avahi/services/ and restart avahi and cups.
Airprint should now be working for your iOS devices on the local network.