Home / LinuxUser / 2013 / 08 / Vom iPad oder iPhone via Airprint und Cups drucken

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

AA_0881509_welle-mit-signal-symbolf_ika747.jpg

© ika747, 123rf.com

Luft-Druck

Vom iPad oder iPhone via Airprint und Cups drucken

17.07.2013 Apple-Geräte setzen auf eigene Technologien. Aber mit wenigen Handgriffen klappt der Druck via Airprint auch über einen Cups-Server.

Bereits seit der iOS-Version 4.2 können Apples iPad und iPhone auch drucken – aber nur auf Druckern, die Airprint [1] unterstützen. Entsprechende Geräte gibt es mittlerweile von allen namhaften Herstellern in jeder Preis- und Leistungsklasse. Trotzdem schrecken viele davor zurück, sich gleich einen neuen Drucker zu kaufen, nur um mit iPhone und iPad etwas zu Papier zu bringen.

Läuft im heimischen Netzwerk aber ein Linux-Rechner, dann stehen damit die Voraussetzungen bereit, alle im Netz freigegebenen Drucker als Airprint-fähige Geräte bereitzustellen.

Das Thema beschäftigt die Linux-Gemeinde schon eine ganze Weile. So hat Till Kamppeter für die Ubuntu-Versionen "Natty" und "Oneiric" schon 2011 die Implementation des Common Unix Printer System Cups entsprechend angepasst, sodass die angeschlossenen Drucker direkt bereit stehen [2]. Allerdings lohnt es zu wissen, wie Sie dieses Kunststück auch selbst fertigbringen: Auf diese Weise sind Sie von einer bestimmten Distribution unabhängig.

Cups

Bei Airprint sendet das Gerät einfach PDF-Dateien an den Drucker. Zusätzlich schickt es Angaben über die gewünschte Anzahl von Kopien sowie diejenigen Seiten, die tatsächlich gedruckt werden sollen. Eine funktionierende Cups-Installation sollte also eigentlich ausreichen, damit iPad und iPhone die im Netzwerk freigegebenen Drucker finden und darauf drucken.

Jedoch hat Apple inzwischen Cups um einige wichtige Funktionen beraubt, auf die Mac OS X verzichten kann, weil sie dort über den Dienst Bonjour [3] bereitstehen. Unter Linux existiert zum Glück mit Avahi [4] eine ähnliche Implementation von Zeroconf [5], mit der die betreffenden Funktionen dann auch wieder bereitstehen.

Die Konfiguration von Cups erläutern zahlreiche Quellen im Netz [6]. Läuft der Dienst, überprüfen Sie zunächst einmal, ob Ihr Drucker funktioniert, indem Sie eine Testseite ausdrucken. Öffnen Sie dazu einen Browser und geben Sie die URL http://Rechnername:631 ein. Sie erreichen diese Seite von jedem anderen Rechner im Netzwerk aus. Im Reiter Drucker finden Sie unter Verwaltung den Befehl zur Ausgabe der Testseite (Abbildung 1).

Abbildung 1

Abbildung 1: Der Druck einer Testseite verschafft Ihnen Klarheit darüber, ob ein angeschlossenes Gerät korrekt eingerichtet ist.

Damit der Drucker im Netz bereit steht, vergewissern Sie sich, dass die Datei /etc/cups/cupsd.conf die entsprechenden Einträge enthält. Listing 1 zeigt dazu ein Beispiel. Dabei ermöglichen es die beiden ersten Zeilen, den Server von jedem Client aus zu erreichen. Allzu freizügige Rechte erleichtern dabei jedoch Angriffe auf den Dienst. Daher gilt es, die Änderungen mit Bedacht vorzunehmen.

Listing 1

ServerAlias *
Listen *:631
Listen /var/run/cups/cups.sock
# Restrict access to the server...
<Location />
   Allow @LOCAL
   Order allow,deny
</Location>
# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow @LOCAL
</Location>
# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow @LOCAL
</Location>

Ändern Sie die Datei entsprechend und starten sie Cups neu (Listing 2). Jetzt sollte es möglich sein, den Drucker von einem Windows-Rechner aus zu finden. Rufen Sie hierzu in dessen Systemsteuerung Neuen Netzwerkdrucker hinzufügen auf und geben Sie unter Freigegebenen Drucker über den Namen auswählen die Adresse des Cups-Servers und den Namen des Druckers ein (Abbildung 2).

Listing 2

# Cups neu starten unter OpenSuse
$ sudo systemctl restart cups.service
# Cups neu starten unter Debian/Ubuntu
$ sudo /etc/init.d/cups restart
Abbildung 2

Abbildung 2: Wollen Sie den freigegebenen Drucker zusätzlich unter Windows nutzen, dann richten Sie auf dem entsprechenden System einen neuen Netzwerkdrucker ein.

Windows fragt nach dem Druckermodell, um den richtigen Treiber zu installieren. Erscheint hier die Nachricht Es konnte keine Verbindung hergestellt werden erscheinen, überprüfen Sie nochmals die CUPS-Installation und Netzwerkfreigabe des Druckers.

Avahi

Damit die Apple-Geräte den Drucker erkennen, machen Sie ihn über einen Bonjour-Broadcast im Netz bekannt. Hierzu richten Sie den Dienst Avahi ein. Dessen Konfigurationsdateien finden Sie im Verzeichnis /etc/ahavi/services. Listing 3 zeigt die Datei Airprint-HP1220C.service unseres Testsystems.

Listing 3

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">Airprint HP1220C @ %h</name>
  <service>
    <type>_ipp._tcp</type>
    <subtype>_universal._sub._ipp._tcp</subtype>
    <port>631</port>
    <txt-record>txtvers=1</txt-record>
    <txt-record>qtotal=1</txt-record>
    <txt-record>Transparent=T</txt-record>
    <txt-record>URF=none</txt-record>
    <txt-record>rp=printers/HP1220C</txt-record>
    <txt-record>note=Raw Queue with driver HP Deskjet 1220c hpijs, 3.12.11</txt-record>
    <txt-record>product=(GPL Ghostscript)</txt-record>
    <txt-record>printer-state=3</txt-record>
    <txt-record>printer-type=0x82b01c</txt-record>
    <txt-record>pdl=application/octet-stream,application/pdf,application/postscript,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.cups-banner,application/vnd.cups-command,application/vnd.cups-pdf,application/vnd.cups-postscript</txt-record>
  </service>
</service-group>

Nun ist es nicht jedermanns Sache, solche Service-Dateien für jeden Drucker im System von Hand zu erzeugen und anzupassen. Der Entwickler Timothy J. Fontaine hat erfreulicherweise ein kleines Python-Skript implementiert, das diese Dateien für alle Cups-Drucker im System automatisch erzeugt [7].

Das geht ganz einfach: Sie starten das Skript einmalig ohne Parameter und erhalten für jeden Drucker eine passende Datei, die Sie ins Verzeichnis /etc/avahi/services kopieren (Listing 4). Nach dem Neustart von Avahi und Cups klappt das Drucken von den Apple-Geräten aus dann problemlos.

Listing 4

$ wget https://github.com/tjfontaine/airprint-generate/blob/master/airprint-generate.py
$ ./airprint-generate.py
$ mv Airprint-HP1220C.service /etc/avahi/services
$ sudo systemctl restart avahi-daemon.service
$ sudo systemctl restart cups.service
Tip a friend    Druckansicht Bookmark and Share
Kommentare

6929 Hits
Wertung: 110 Punkte (2 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...