How-To Raspberry Pi print server (with AirPrint)

This guide demonstrates how to turn your Raspberry Pi into a print server, with AirPrint support

First step is to install CUPS and related plugins

sudo apt-get install cups cups-pdf gutenprint pycups avahi python2 python-cups
sudo usermod -aG lpadmin pi
sudo /etc/init.d/cups start

Second step is to fully integrate AirPrint

sudo apt-get install avahi-daemon avahi-discover libnss-mdns
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 /etc/init.d/avahi-daemon start
echo “image/urf urf (0,UNIRAST)” > /usr/share/cups/mime/apple.types
echo “image/urf application/vnd.cups-postscript 66 pdftops” > /usr/share/cups/mime/local.convs

Step is is to install  Samba (for compatibility with Windows PCs)

sudo apt-get install samba
sudo /etc/init.d/samba start

If you have a special printer, like I do you might want to install the following extras:

sudo apt-get install foo2hp
sudo apt-get install HPLIP