Airprint, Ipad en Ubuntu

Het nieuwe schooljaar begint en onze oudste, ze begint dit jaar op een andere opleiding in een andere plaats, grijpt nog gauw even de Ipad van tafel om de route met het OV na te kijken. Ze vindt alles en wil het wel graag mee nemen voor onderweg. Een Ipad in de bus, op de introductiedag, das geen goed plan. Dus print het effe uit joh. Ach. Printen wil alleen op een Airprint enabled printer, dus op naar de dichtsbijzijnde desktop, de zoekactie nog een keer doen en printen. Ze grist het papier zonder commentaar uit de printer en stopt het in haar tas. De normaalste zaak van de wereld, maar iets in mij komt in opstand. Dat moet toch anders kunnen. Later op internet zoek ik op airprint en ubuntu en vind de volgende link onder andere : http://hartlessbydesign.com/blog/view/197-airprint-with-ubuntu-1010

Lang verhaal kort, het werkt. Ik heb het eerst op mijn zakelijke machine uitgevoerd, de afdeling IT kan nu, indien nodig een printje maken. Nou is het wat tegenstrijdig, de ipads zijn er om papierloos te kunnen werken, maar ook ik heb een beetje moeite om het papier helemaal en ten alle tijde los te laten. Affijn, remote ingelogged op mijn thuisserver en dezelfde stappen uitgevoerd. Later die dag als ik thuiskom pak ik de ipad en ik test het printen. Hier ging het wat minder soepel, op het werk kreeg ik keurig de melding dat de printer bijna geen papier meer had, hier kreeg ik de melding dat ik niet gerechtigd was om deze printer te gebruiken. Eerst via het Afdrukken control panel gecontroleerd of de printer gedeeld was, daarna op CUPS ingelogged en daar het vinkje voor het delen aangevinkt. En bij de tweede test rolde er even later keurig een printje uit de printer! En zo kan ik dankzij Ubuntu, Cups en de community mooi verder met de oude printer en hoeft er niet een nieuwe Airprint compatible printer gekocht te worden. En weer is, met een beetje tweaken, de technology weer wat harder voor mij aan het werk.

Instructies:

Ten eerste heb ik het volgende bestandje aangemaakt : /etc/avahi/services/printer.service
Dit heb ik als volgt gedaan, in een terminal :
sudo gedit /etc/avahi/services/printer.service
Met ‘sudo gedit’ start ik de grafische tekst editor op als superuser, zodat ik die map mag schrijven, maar je kunt hier natuurlijk ook vi of pico voor gebruiken.

Het volgende knip je hier en plak je in het bestand.

<?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>


 

In het rood zijn de stukken aangegeven die je moet aanpassen:
My Printer                            : De naam zoals je de printer wilt zien op de Ipad, vrije keuze.
My-Printer-Cups-Name           : De naam zoals je printer op je systeem bekent is. Zoals de printer hier dus bekend is.
Adminurl                             : Het ipadress hier moet het IP-adress zijn van de Computer waar cups op draait.

Controleer nog even het volgende:
      sudo gedit /etc/cups/cupsd.conf
Controleer of dit er in staat:
      ServerAlias *
      Port 631
      Listen /var/run/cups/cups.sock

Herstart de CUPS server.
      sudo /etc/init.d/cups restart
 
En controleer dan nog even het volgende op de cups pagina op je eigen systeem : 

9 gedachten over “Airprint, Ipad en Ubuntu

  1. FF

    Gelukkig heb ik een normaal wireless printertje staan die vanaf elke aansluiting op het netwerk kan printen.
    Voor het geval je niet op het netwerk zit drop je het bestandje in een dropbox directory die vervolgens afgedrukt wordt. Dit laatste laat ik trouwens slechts 1x per uur controleren omdat ik eigenlijk zelden print 😉

    Reageren
  2. McVries

    De printers die hier gebruikt worden hangen ook allebei keurig aan het netwerk, dus wat dat betreft is er geen verschil. Maar je kunt geen printer installeren op een ipad….

    Het enige dat de ipad ondersteund is airprint, driverless printing op basis van bonjour.

    Hoe verwerk jij die dropbox directory eigenlijk? Stel ik dump er een jpg, een .doc en een png in, wat dan?

    Reageren
    1. FF

      Hij verwerkt bestand voor bestand 😉
      Althans, als ik het goed heb 😀

      Ik moet alleen nog een optie inbouwen dat hij de afbeeldingen schaalt.
      Nu drukt hij ze op ware grootte af en dat was bij de eerste test 4x A4 full-color 😮

      /etc/cron.hourly/dropboxprint.sh

      #!/bin/bash
      export PrintQueue="dropboxdir/PrintQueue";
      export Printed="dropboxdir/Printed";
      IFS=$'\n'
      for PrintFile in $(/bin/ls -1 ${PrintQueue});
      do
      lpr -P printername ${PrintQueue}/${PrintFile};
      mv ${PrintQueue}/${PrintFile} ${Printed};
      done

      Voel je vrij om de code aan te passen en te citeren 😉

      Reageren
      1. McVries

        Gniffel, nou probeer ik juist om zo min mogelijk papier te gebruiken, maar ik sla hem wel even op!

        heb je ook een overzichtje van wat je waarom doet in dit script?De exports zijn me duidelijk maar de IFS=$’\n’ … heuh??

        Reageren
  3. DenBolle

    Die was voor volgende week gepland. Wat ik dus vergeten was en dus kon ik in de vrieskou een wandeling naar de bios maken. As. maandag opnieuw boeken en dan rechtstreeks printen vanaf de iphone/ipad. 😉

    Reageren

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

Houd mij op de hoogte van nieuwe reacties. Of abonneer jezelf op deze discussie zonder te reageren.