After the iOS6 update, my Linux AirPrint server stopped working for my iDevices. I’m referring to my previous article explaining how you can configure a Linux machine as an AirPrint server.
The Fix#
Fortunately, there is no change to the AirPrint protocol. Ranil gave us the solution (thanks a lot for your testing!).
You need to add image/urf to the pdl section of your .service file. For example, in my file I now have:
pdl=application/octet-stream,application/pdf,application/postscript,image/gif,image/jpeg,image/png,image/tiff,text/html,text/plain,application/vnd.cups-banner,application/vnd.cups-command,application/vnd.cups-pdf,application/vnd.cups-postscript,image/urfAfter this, your printer should be visible on your local network again. To completely enable printing from any iOS6 application, you also need to add these two files to your CUPS configuration.
/etc/cups/ppd/your-printer.ppd#
Find the *cupsFilter line and add:
*cupsFilter: "application/vnd.cups-pdf 0 -"/usr/share/cups/mime/local.convs#
Add the following line to convert image/urf to a printable format:
image/urf application/vnd.cups-raster 100 - /usr/share/cups/mime/local.types#
Register the image/urf MIME type:
image/urf urf (100,fls)Restart CUPS and Avahi after making these changes:
sudo service cups restart
sudo service avahi-daemon restartYour AirPrint should now work with iOS6 devices.