AirPrint mit CUPS unter ubuntu

Nachdem auch ich Besitzer eines iPad nanos = iPhone 🙂 bin und mit dem letzten Firmwareupdate iOS 4.2.1 die Funktion „AirPrint“ ins iPhone bzw. iPad Einzug hielt, dachte ich mir, die muss genutzt werden. Mit der „AirPrint“-Funktion ist es möglich direkt vom iPhone/iPad über WLAN und Bonjour aus einer App (die diese Funktion unterstützt) zu drucken. Offiziell ist dies momentan nur mit ein paar wenigen HP-Druckern möglich, aber es geht auch anders….ein wenig googeln brachte Möglichkeiten zum Vorschein, mit denen AirPrint – auch ohne speziellen HP-Drucker – mit CUPS unter Linux funktioniert. 

Was man braucht, bevor es losgeht:

  • einen unter CUPS laufenden Drucker
    (CUPS ist ein Druckserver-Dienst unter Linux)
  • installierten und laufenden avahi-daemon
    (avahi ist das Pendant zu Bonjour unter Linux).

Und was noch ?

Eine Datei printer.service in /etc/avahi/services mit folgendem Inhalt:

<?xml version=“1.0″ standalone=’no‘?><!–*-nxml-*–>
<!DOCTYPE service-group SYSTEM „avahi-service.dtd“>
<service-group>
  <name>My 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/My-Printer-CUPS-Name</txt-record>
    <txt-record>ty=My Printer</txt-record>
    <txt-record>adminurl=http://198.168.1.4:631/printers/My-Printer-CUPS-Name</txt-record>
    <txt-record>note=My Printer</txt-record>
    <txt-record>priority=0</txt-record>
    <txt-record>product=virtual Printer</txt-record>
    <txt-record>printer-state=3</txt-record>
    <txt-record>printer-type=0x801046</txt-record>
    <txt-record>Transparent=T</txt-record>
    <txt-record>Binary=T</txt-record>
    <txt-record>Fax=F</txt-record>
    <txt-record>Color=T</txt-record>
    <txt-record>Duplex=T</txt-record>
    <txt-record>Staple=F</txt-record>
    <txt-record>Copies=T</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=F</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,CP1,RS600</txt-record>
  </service>
</service-group>

  • My Printer 
    kann frei gewählt werden – dieser Name taucht im AirPrint-Auswahlmenü von iPad/iPhone auf
  • My-Printer-CUPS-Name
    Druckername unter CUPS
  • http://198.168.1.4:631/printers/My-Printer-CUPS-Name
    muss entsprechend der CUPS-Installation angepasst werden

Jetzt muss noch ein wenig in der CUPS-Configdatei cupsd.conf unter /etc/cups/ geändert werden:

ServerAlias *
Port 631
Listen /var/run/cups/cups.sock

Und abschliessend mit sudo /etc/init.d/cups restart den CUPS-Serverdienst neu starten.

Jetzt sollte das Drucken mit iPad/iPhone und AirPrint möglich sein.

Ergänzung:
Nachdem das iPhone/iPad als anonymer User drucken will, muss als berechtigter User „guest“ oder „anonymous“ im entsprechenden CUPS-Druckermenü hinzugefügt werden.

Gefunden bei http://hartlessbydesign.com/blog/view/197-airprint-with-ubuntu-1010

…nur zur Ergänzung:

Auch unter Windows ist es mit Hilfe des Windows-Dienstes AirPrint.zip möglich, AirPrint ür unter Windows freigegebene Drucker zu aktivieren.

Gefunden bei http://www.mielke.de/blog/Drucken-mit-AirPrint-unter-Windows-vom-iPad-oder-iPhone–293/