Drucken aus der Wolke

Realisierung einer Druckfunktion auf der Basis von Google Cloud Print
Kommentare

Das Konzept „Google Cloud Print“ verspricht das Drucken aus der Cloud ohne großen Entwicklungsaufwand. Dieser Artikel zeigt, wie man eine Druckfunktion auf der Basis von Google Cloud Print in PHP ohne größere Probleme realisieren und beliebige Webinhalte in Google-Docs-Dokumente umwandeln kann.

PHP Magazin

Der Artikel „Drucken aus der Wolke“ von Carsten Harnisch ist erstmalig erschienen im PHP Magazin 5.2012

Würden wir nach den Prognosen des Xerox-Parc aus den Siebziger Jahren gehen, wäre das papierlose Büro schon seit einer Dekade Realität. Faktisch sieht es aber ganz anders aus, der Papierverbrauch steigt weiter und weiter. Gebremst wurde der Hang zum Ausdrucken lediglich durch die zunächst fehlende Druckfunktion auf mobilen Geräten al à Android und iPhone. Auch die neue Geräteklasse der Tablets und die Geräte unter Chrome OS haben zunächst im Betriebssystem auf die Funktion verzichtet. Aber auch die extremsten Verfechter der Vermeidung eines Ausdrucks scheitern vielleicht an manchen bürokratischen Hürden, die weiterhin eine Papierform dringend voraussetzen. Apple und Google bieten jeweils Funktionen an, die den entstandenen Nachholbedarf nach Papier befriedigen können. Dabei sind die Herangehensweisen augenscheinlich zwar grundsätzlich verschieben, im Kern aber doch ähnlich. Beide Systeme setzen für die Druckfunktion im Wesentlichen auf die Druckerhersteller oder benötigen einen „vollwertigen“ PC als verbindendes Element.

Apples System AirPrint basiert auf einer Wireless-(peer-to-peer-)Verbindung zwischen dem mobilen Gerät und dem Drucker. Hier kann alternativ auch ein PC seine Drucker teilen beziehungsweise im lokalen Netz vorhandene Drucker zugänglich machen. Die letzte Funktion war allerdings nur temporär offiziell vorhanden und wurde dann wieder aus den Betaversionen entfernt. Aktuell muss hierzu auf Dienste zurückgegriffen werden, die die proprietäre Apple-Lösung nachbilden. Unterstützt werden eigentlich nur die Lösungen der Druckerhersteller; dabei listet die Apple-Website einige Dutzend Drucker der Hersteller auf. Als Endanwender ist die Nutzung simpel: Ein AirPrint-Drucker macht sich selbst im Netzwerk bemerkbar und bietet seine Dienste den Endgeräten an. Die Nutzung ist dann direkt aus den Anwendungen heraus möglich. Die Implementierung basiert hierbei auf den Basisfunktionen von iOS für die Erstellung von PDF beziehungsweise Images. Die Aufbereitung des Ausdrucks ist dabei eine Aufgabe der Clientsoftware.

Die Google-Lösung ist hingegen vollständig internetbasiert. Google Cloud Print (gcp) basiert auf einer Kombination von anderen Google-Diensten. Das Google-Konto wird zur Authentifizierung genutzt; der Zugriff kann hierbei auch über das OAuth2-Verfahren erfolgen. Google-Cloud-Datendienste speichern alle Druckjobs zunächst zwischen. Da alle Google-Konten auch direkt Google Docs nutzen können, ergibt sich dadurch auch der Weg, Dokumente virtuell in ein Google-Docs-Dokument zu „drucken“. Nachdem ein Job eingetroffen ist, wird der Drucker mittels XMPP/Jabber benachrichtigt. Der Drucker kann dann das Dokument herunterladen, verarbeiten und damit den mechanischen Ausdruck realisieren.

Der Chrome Proxy

Zunächst kann das (mittlerweile) kombinierte Google-Konto zur Anmeldung genutzt werden. Hier ist es allerdings empfehlenswert, je Drucker ein spezielles Konto zu nutzen. Innerhalb des Google-Kontos können zunächst Drucker registriert werden [1]. Hierbei können entweder so genannte Cloud-Ready-Drucker installiert werden oder herkömmliche. Die Cloud-fähigen Drucker enthalten dabei bereits die notwendige Software. Für alle anderen Drucker muss eine solche Software auf einem Rechner oder auf einer dedizierten Hardware wie einem Druckserver laufen.

Google liefert einen solchen Konnektor zusammen mit dem Browser Chrome aus. Hier lässt sich Cloud Print in den erweiterten Einstellungen aktivieren. Der Konnektor läuft dann im Hintergrund und gibt die Jobs auf den oder die Drucker aus. Intern nutzt Google dabei auch Microsoft Windows XPS (Microsoft XML Paper Spec), auf anderen Rechnern wie Apple wird PPD genutzt. „PPD“ steht für „Postscript Printer Definition“ und beschreibt einen Drucker beziehungsweise dessen Fähigkeiten in Form einer Postscript-Datei. Der zugrunde liegende Sourcecode zu dem in Chrome genutzten Konnektor steht zur Verfügung. Daneben lässt sich aber auch in PHP ein solcher Proxy realisieren. Hierzu befindet sich unter [2] ein Projekt. Letztlich ist die Entwicklung eines solchen Konnektors eigentlich die Aufgabe eines Druckerherstellers, der seinen Drucker mit dem Etikett „Cloud-ready“ schmücken möchte.

Vorbereitungen

Beginnen wir mit den Vorbereitungen für einen ersten Test. Zunächst einmal geht es um die Einrichtung eines Druckers. Das Verfahren für die Registrierung eines Cloud-Ready-Druckers variiert leicht. Im Wesentlichen braucht ein solcher Drucker zunächst eine Verbindung zum Internet, typischerweise bucht dieser sich via WLAN in einem Accesspoint ein. Danach wird nun mittels unterschiedlicher Verfahren die Assoziierung mit dem Google-Konto vorgenommen. Am Ende erhält der Drucker eine eindeutige PrinterID und sendet unter dieser dann Statusinformationen zum zentralen Cloud-Dienst.

Der andere Weg ermöglicht es uns, einfach die durch das Betriebssystem verfügbaren Drucker nutzbar zu machen. Dazu nutzen wir den Google-Browser Chrome und den dort verfügbaren Drucker-Proxy. Die Einrichtung ist denkbar einfach: Man startet Chrome und wechselt in die EINSTELLUNGEN, ganz unten dann weiter in ERWEITERTE EINSTELLUNGEN. Wiederum am Ende der Seite erscheint dann der Bereich GOOGLE CLOUD PRINT. Nach der Aktivierung und eventuell der Anmeldung mit dem Google-Konto werden alle erreichbaren Drucker registriert (Abb. 1). Die Weboberfläche erlaubt im Folgenden die weitere Definition von Optionen. Dabei können Drucker wieder entfernt oder umbenannt werden. Interessant ist auch das Sharing von Druckern an beliebige E-Mail-Adressen. Ist unter der Adresse ein Google-Konto registriert, kann der Anwender direkt Daten auf dem Drucker ausgeben. Zusammen mit FedEx bietet Google in den USA die Möglichkeit, einen Ausdruck zunächst in der Cloud zwischen zu lagern. Nach dem Ausdruck gibt es zunächst einen Code. Mit diesem geht man in ein FedEx-Geschäft und druckt dann dort mit dem Code sein Dokument.

Abb. 1: Einrichtungsdialog in der Cloud/Chrome

Themen auf Seite 2:

  • Die Entwicklerbrille
  • Listing 1: Code für Authentication
  • Servicegrundlage
  • Listing 2: Einfacher Serviceaufruf
  • Listing 3: Komplexer Serviceaufruf mit Multipart
  • Listing 4: Nutzen des Service und Druck nach Google Docs
  • Google Web Elements
  • Fazit
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -