Make AirPrint Work With Any Shared Printer

Well we’ve had AirPrint for a few weeks now but it’s not all it’s cracked up to be, other than a few new AirPrint enabled printers it doesn’t really work for most of us. Lets fix that. Regardless of your OS of choice we’re going to show you how to get it working with ANY printer shared from your computer.

Check out the method for your OS below–as always, use these tutorials at your own risk. We accept no responsibility should anything go wrong.


OS X Snow Leopard

What You’ll need
  • iPhone/iPad running iOS 4.2GM or newer
  • A Computer running OS X 10.6.5 or newer
  • iTunes 10.1 or newer
  • AirPrint Hacktivator here
The steps are pretty easy just follow along
  1. Download the Hacktivator and then
  2. Run the resulting application
  3. Click on the on/off slider Hacktivator Running OS X will ask you to enter your password. Do so.
  4. A Window may or may not appear with further instructions. What you need to do either way is go to “Printers” in your “System Preferences” remove any printers you want to share then re-add them ensuring you select “Share this printer on the network”
  5. You’re done. You should now be able to see your shared printer from any AirPrint enabled iOS apps.
Windows


A generous German developer known as Stephan from macerkopf.de has released a convenient 1 click tool to enable AirPrint in Windows ( As a disclaimer I’ve only tried this in Windows 7 so I can’t speak to XP or Vista compatibility)
You can get the tool here or visit the forums here or in english thanks to google here

  1. Download AirPrint Activator
  2. Right click the executable and “Run as Administrator”
  3. Click on “Activate AirPrint” AirPrint Activator
  4. Open your printer properties from the “Control Panel” or “Devices and Printers” go to the “Sharing” tab and share the printer Share Printer
  5. You also need to allow AirPrint through the firewall so in the firewall settings allow the Application C:\AirPrint\airprint.exe  Windows Firewall 1 Windows Firewall 2
  6. You’re done. You should now be able to see your shared printer from any AirPrint enabled iOS apps.

UPDATE: If you for some reason want to remove the AirPrint service you need to stop the airprint service from the task manager and then just delete the c:\AirPrint folder.

And now Linux

What you’ll need
  • CUPS running with a printer configured
  • A PDF filter working correctly This has been done by default on the systems I’ve tested. (Ubuntu 10.04, CentOS 5.2 and Debian)
  • Another computer where you can run either Bonjour Browser ( OS X ) or avahi-discover ( Linux )
  1. Install Avahi-daemon and make sure it’s running
    • Ubuntu “sudo apt-get install avahi-daemon”
    • CentOS “sudo yum install avahi-daemon”
  2. Log into your CUPS web interface and ensure “Share printers connected to this system” is checked CUPS Sharing
  3. restart CUPS
    • Ubuntu “sudo /etc/init.d/cups restart”
    • CentOS “sudo service cups restart”
  4. Open up Bonjour Browser or run avahi-discover on your other machine
    bonjour browser

    • Find the printer that you shared from CUPS it should be listed under “Internet Printing Protocol” Bonjour Browser
    • You need to copy down or keep all this info available you’ll be using it to fill a file later.


    avahi-discover

    • start up avahi-discover from the terminal
    • click on the printer you shared in CUPS from the GUI
    • switch back to the terminal you should have a whole bunch of debug info pertaining to your printer save this for later as you’ll use this to fill in another file
  5. Back on the machine we’re sharing your printer from we need to create a file to advertise the AirPrint service for your printer so create /etc/avahi/services/printername.service where printername is any name you want. Mine is /etc/avahi/services/officeprinter.service
  6. Now in the file you just created you need to create a file similar to the following but fill in the values with the info you found earlier using avahi-discover or bonjour browser. Your printer may have more or less entries between the “printer-type” and “pdl” txt-record’s don’t worry too much about that if they’re there you can add them if not remove them.
     <?xml version="1.0" standalone='no'?><!--*-nxml-*-->
    	 <!DOCTYPE service-group SYSTEM "avahi-service.dtd">
    	 <service-group>
    	 <name>Office Printer</name>
    	 <service>
    	 <type>_ipp._tcp</type>
    	 <subtype>_universal._sub._ipp._tcp</subtype>
    	 <port>631</port>
    	 <txt-record>txtver=1</txt-record>
    	 <txt-record>qtotal=1</txt-record>
    	 <txt-record>rp=printers/Brother_MFC-420CN</txt-record>
    	 <txt-record>ty=Office Printer</txt-record>
    	 <txt-record>adminurl=http://media.local:631/printers/Brother_MFC-420CN</txt-record>
    	 <txt-record>note=Printer in Liam's Office</txt-record>
    	 <txt-record>product=(Brother MFC-420CN)</txt-record>
    	 <txt-record>priority=0</txt-record>
    	 <txt-record>printer-state=3</txt-record>
    	 <txt-record>printer-type=0x480904E</txt-record>
    	 <txt-record>Color=T</txt-record>
    	 <txt-record>Copies=F</txt-record>
    	 <txt-record>Duplex=F</txt-record>
    	 <txt-record>PaperCustom=T</txt-record>
    	 <txt-record>Binary=T</txt-record>
    	 <txt-record>Transparent=T</txt-record>
    	 <txt-record>TBCP=F</txt-record>
    	 <txt-record>Fax=F</txt-record>
    	 <txt-record>Staple=F</txt-record>
    	 <txt-record>Collate=F</txt-record>
    	 <txt-record>Punch=F</txt-record>
    	 <txt-record>Bind=F</txt-record>
    	 <txt-record>Sort=F</txt-record>
    	 <txt-record>Scan=T</txt-record>
    	 <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,image/jpeg,image/png,image/urf</txt-record>
    	 <txt-record>URF=W8,SRGB24,CP255,RS300</txt-record>
    	 </service>
    	 </service-group>
  7. Save the file once you’re done editing it, there’s no need to restart avahi-daemon.
  8. You’re done. You should now be able to see your shared printer from any AirPrint enabled iOS apps.
Now everyone can print to their shared printers from any OS. If you have any questions or run into any trouble leave me a message in the comments or find me on twitter @liamm

P.S. - Like our news? Support the site with a coffee/beer. Or shop with our Amazon link. We use affiliate links when possible--thank you for supporting independent media.