So I actually managed to get this working. The instructions here helped a bunch: http://redwallaus.com/2013/04/04/airprint-with-raspberry-pi/ Printing is very slow, but it works without a hitch! **EDIT** Per piers7's comments, I have pasted the content of the article into this post. ## Prerequisites For this guide I will assume that you have already setup your Pi with Raspbian. * Putty * Filezilla * MP620 Canon Printer (Thats what I'm using) ## Download * download [bjnp](https://web.archive.org/web/20160322200132/https://sourceforge.net/projects/cups-bjnp/?source=dlp) files # Install sudo apt-get update sudo apt-get upgrade -y sudo apt-get install avahi-daemon avahi-discover libnss-mdns cups cups-pdf gutenprint pycups avahi python2 sudo apt-get install cups sudo apt-get install python-cups sudo apt-get install avahi-daemon sudo usermod -aG lpadmin pi sudo /etc/init.d/cups start sudo /etc/init.d/avahi-daemon start sudo nano /etc/cups/cupsd.conf Now edit the config file by commenting out the below line with a # and add Port 631 to the line below #Listen localhost:631 Port 631 Under # Restrict access.. add Allow @Local as below # Restrict access to the server... Order allow,deny Allow @Local And add `Allow @Local` again under the following headings # Restrict access to the server... # Restrict access to the admin pages... # Restrict access to configuration files... Restart cups: `sudo /etc/init.d/cups restart` Copy the downloaded bjnp files to the Pi using filezilla sudo apt-get install libcups2 libcups2-dev tar zxf cups-bjnp-1.2.1.tar.gz cd cups-bjnp-1.2.1/ ./configure –prefix=/usr make sudo make install sudo mkdir /opt/airprint cd /opt/airprint sudo wget -O airprint-generate.py –no-check-certificate https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py sudo chmod 755 airprint-generate.py sudo ./airprint-generate.py -d /etc/avahi/services sudo reboot Type https://XXX.XXX.X.X:631/admin into your browser and enter. Select add printer Follow the prompts to add your printer for example a mp620’s ip might be bjnp://XXX.XXX.X.XX:8611