Linux Airprint Server

AirPrint is de nieuwe techniek van Apple waarmee het mogelijk is om vanaf een IOS 4.2 device te printen zonder drivers te installeren. De printers worden via het bonjour protocol (ook bekend als mDNS of multicast DNS) op het netwerk geadverteerd en herkend door het IOS device. Hiermee kunnen iPhone en iPad gebruikers zonder extra handelingen afdrukken maken.

Verschillende leveranciers ondersteunen de AirPrint functionaliteit in (een aantal van) hun printers. Oudere modellen ondersteunen dit helaas niet.

Voor printers die via CUPS op een Linux server worden aangestuurd is het op eenvoudige wijze mogelijk om als AirPrint compatibele printer geconfigureerd te worden. Het enige dat nog ontbreekt bij een printer die via CUPS gedeeld wordt is dat die niet via het bonjour protocol wordt geadverteerd.

Bij de meeste Linux distributies wordt Avahi gebruikt om services via het bonjour protocol te adverteren. Avahi leest hiervoor informatie uit XML bestanden in /etc/avahi/services. Door zelf een service bestand aan deze directory toe te voegen kunnen bestaande CUPS printers nu ook worden gevonden door de IOS devices en is het mogelijk om te printen vanaf een iPhone of iPad.

Een voorbeeld van zo'n bestand ziet er als volgt uit:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
 <name>Cups Printer via AirPrint</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/Cups_Printer_Name</txt-record>
 <txt-record>ty=Play Printer</txt-record>
 <txt-record>adminurl=http://www.example.com:631/printers/Cups_Printer_Name</txt-record>
 <txt-record>note=Cups Printer via AirPrint</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>

Tussen <name> en </name> (regel 4) staat de naam waaronder de printer gevonden wordt door de iPhone en/of iPad. Het textrecord <txt-record>rp=printers/Cups_Printer_Name</txt-record> (regel 11) is de naam van de printer waaronder deze in CUPS bekend is. Het is hetzelfde als het laatste deel van de URL die gebruikt wordt als de printer als IPP printer wordt aangesproken.

De <txt-record>adminurl</txt-record> regel (regel 13) bevat de URL die in CUPS gebruikt wordt om de printer te beheren.

Geef via T (True) of F (False) aan welke functies de printer ondersteunt zoals duplex printen en kleur op regel 19 t/m 30.

Zorg ervoor dat het bestand wordt opgeslagen onder een naam met de extensie .service, bijvoorbeeld AirPrint_CUPS_Printer_Name.service en herstart Avahi: /etc/init.d/avahi-daemon restart

Herhaal bovenstaande voor iedere gedeelde printer die via bonjour geadverteerd moet worden.

Bovengenoemde oplossing werkt in de meeste gevallen. De printerstatus wordt echter niet bijgewerkt en het kan voorkomen dat de printer offline is zonder dat het IOS device dit doorheeft.

Het is wachten op een nieuwe versie van CUPS die zelf de services adverteert en dynamisch de geadverteerde gegevens aanpast.

Als er veel printers via AirPrint beschikbaar moeten worden gemaakt dan is dit script wellicht een uitkomst?

Klik hier om de bonjour printing specificatie te lezen waarin in detail wordt ingegaan op de diverse instellingen.

 

Plaats reactie


Beveiligingscode
Vernieuwen

NederlandsEnglish (United Kingdom)
Zoeken
Powered by MarCoach
Banner
Powered by MarCoach
Banner
Powered by MarCoach
Banner
Powered by MarCoach
Banner
Powered by MarCoach
Banner
Powered by MarCoach
Banner
Powered by MarCoach
Banner
Powered by MarCoach
Banner