Heute möchte ich euch zeigen, wie man das neue iOS Feature "AirPrint" auch ohne AirPrint fähigen Drucker unter Ubuntu nutzen kann. Dazu wird lediglich eine kleine avahi Service Datei erstellt und einige Änderungen an cups vorgenommen. Folgt einfach meiner, kleinen Anleitung und ihr könnt mit AirPrint drucken:
- Zuerst erstellt ihr die avahi Service Datei mittels
sudo gedit /etc/avahi/services/printer.service
- In dieser Datei fügt ihr nun folgendes ein:
<?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>
Ersetzt "My Printer" durch den Namen eures Druckers, z.B. "AirPrinter". "My-Printer-CUPS-Name" muss der Name des CUPS Druckers sein, wie der drucker unter Ubuntu heißt. Meist ist das hier das Drucker Modell. Meines z.B. ist der EPSON_Stylus_S20. Es steht euch auch frei, die anderen Werte anzupassen. Diese könnt ihr inman cups
nachschlagen.
- Nun stellt sicher, das sich in eurer cupsd.conf
sudo gedit /etc/cups/cupsd.conf
folgender Eintrag befindet:ServerAlias * Port 631 Listen /var/run/cups/cups.sock
Solte dies nicht der Fall sein, so fügt es am Anfang der Datei hinzu. - Nun geht ihr mit eurem Ubuntu Rechner auf http://localhost:631. Dort befindet sich euer CUPS Druckersystem. Dort wählt ihr dann im oberen Tab "Verwaltung" und markiert dort das Kästchen "Freigeben von Druckern welche mit diesem System verbunden sind". Anschließend klickt ihr auf "Einstellungen ändern" und gebt das Root-Passwort ein (Benutzername: euer User, Passwort: Root-Passwort). Anschließend startet cups neu.
- Nachdem CUPS neugestartet ist, könnt ihr mit AirPrint drucken :)
U P D A T E:
Mit folgenden schritten, lässt sich das ganze etwas automatisieren:
- Auf der Konsole
git clone https://github.com/tjfontaine/airprint-generate.git
ausführen - Danach mit
cd airprint-generate
in das Verzeichnis airprint-generate wechseln - dort
python airprint-generate.py
ausführen - Die nun erzeugte *.service Datei in das avahi Verzeichnis kopieren
sudo cp *.service /etc/avahi/services/
- noch oben ab Schritt 3 folgen
- Mit AirPrint drucken :)