Linux Airprint Server
With the introduction of IOS 4.2 Apple has introduced a new technique that allows users of iPhones and iPads to print wireless without installing drivers. This technique is known as AirPrint. AirPrint printers are announced on the network with the bonjour protocol (aka. mDNS or multicast DNS) and are recognized by the IOS device.
Printers that are shared via a CUPS server on a Linux system can easily be used as an AirPrint printer. The only thing missing is the announcement of these printers on the local network.
The majority of the Linux distributions use Avahi to announce services on the network. This is done via XML files in the /etc/avahi/services directory. By adding files to this directory it is possible to announce allready shared printers as AirPrint printers.
An example of such a file is:
The record between <name> and </name> (line 4) contains the name under which the printer will be found by the iPhone or iPad. The textrecord <txt-record>rp=printers/Cups_Printer_Name</txt-record> (line 11) icontains the name under which the printer is known in CUPS. This is basically the second half of the URL that is used to print to this printer using IPP.
The <txt-record>adminurl</txt-record> line (line 13) contains the URL that is used to manage the printer via CUPS.
Via T (True) or F (False) you can specify which functions the printer supports, such as duplex printing etc. (line 19 - 30).
Make sure that the file is saved with the extension .service, e.g. AirPrint_CUPS_Printer_Name.service and restart Avahi: /etc/init.d/avahi-daemon restart
Repeat the above steps for each printer that has to be shared via the bonjour protocol.
Notice that the configfile is static. It does not reflect the actual printer status. If the printer goes offline this will go by unnoticed.
We'll have to wait for an extension of CUPS that will do the announcement itself.
If you have many printers to share via AirPrint you may find this script usefull.
Click here to read to bonjour printing specifaction that explain the above settings.
| < Prev | Next > |
|---|











