OK. I was successfully able to use AirPrint on my corporate network (I am the sysadmin). I was unable to print to severs shared using SMB Shares. I was only able to successully print to printers with print servers built into them, using their IP Address on port 9100.
1) Install a VM with Ubuntu 11.11 beta Oneiric Ocelot. Update your packages.
sudo apt-get update
sudo apt-get upgrade
2) Add the printer using these instructions
On your computer start system-config-printer via System ->
Administration -> Printing (GNOME Classic) or via Turn-off-button at
the upper right -> System Settings -> Hardware -> Printing (Unity
Natty) or via the command line (all systems including Unity Oneiric).
In system-config-printer choose Server -> Settings and activate
"Published shared printers connected to this system". Click OK and
then right-click on the icon of your print queue and choose
Properties in the pop-up menu. In the Policies section of the dialog
make sure that "Shared" is activated.
YOU MUST ADD THE PRINTER USING HP/APP SOCKET.
3) Get the AirPrint Generate script from github here. (More info)
./airprint-generate.py
This will generate PRINTER.service
files.
cp PRINTER.service /etc/avahi/services/
4) edit /etc/cups/cups.conf
add a line
ServerAlias *
under the line Port 631
5) Restart avahi and cups
NOTE:
To debug use avahi-browse.
avahi-browse --terminate --resolve _ipp._tcp
Sources:
http://digitizor.com/2011/06/29/ubuntu-apple-airprint/
http://www.atxconsulting.com/blog/tjfontaine/2010/11/21/automatically-generate-airprint-avahi-service-files-cups-printers/
http://www.finnie.org/2010/11/13/airprint-and-linux/
https://lists.ubuntu.com/archives/ubuntu-devel/2011-June/033611.html