{"id":1138,"date":"2010-11-23T03:00:39","date_gmt":"2010-11-23T02:00:39","guid":{"rendered":"http:\/\/www.zarrelli.org\/blog\/?p=1138"},"modified":"2010-11-23T03:02:17","modified_gmt":"2010-11-23T02:02:17","slug":"stampare-da-ipadiphone-su-gnulinux-con-airprint","status":"publish","type":"post","link":"https:\/\/www.zarrelli.org\/blog\/stampare-da-ipadiphone-su-gnulinux-con-airprint\/","title":{"rendered":"Stampare da iPad\/iPhone su Gnu\/Linux con AirPrint"},"content":{"rendered":"<p>Ok,<\/p>\n<p>visto che nel nuovo IOS 4.2 si pu\u00f2 stampare via AirPrint, perch\u00e9 non sfruttare la condivisione delle stampanti di CUPS per stampare da iPhone\/iPad su una periferica gestita da GNU\/Linux?<\/p>\n<p>Lo spunto, con qualche aggiunta personalizzata, lo ha dato questo <a href=\"http:\/\/www.finnie.org\/2010\/11\/13\/airprint-and-linux\/\" target=\"_blank\">articolo<\/a> in cui l&#8217;autore ha spippolato con Wireshark per esaminare il dialogo in rete di AirPrint, per scoprire che il tutto viaggia su protocollo IPP modificato.<\/p>\n<p>IPP???? Mmmmm&#8230;.quindi&#8230;CUPS! E Avahi, naturalmente, per annunciare in rete il servizio di stampa.<\/p>\n<p>Quindi&#8230;<\/p>\n<p>1. Installare CUPS, configurare la stampante connessa al computer, collegarsi su localhost:631 \u00a0e da tab di amministrazione <strong>condividere la stampante<\/strong>, come si vede nella immagine sottostante.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.zarrelli.org\/blog\/wp-content\/uploads\/2010\/11\/cups.png\" alt=\"\" \/><\/p>\n<p>Quindi verificare che la stampante&#8230;stampi correttamente da computer.<\/p>\n<p>Ora, installate <strong>avahi-daemon<\/strong> e quindi scaricate lo script python che trovate <a href=\"https:\/\/github.com\/tjfontaine\/airprint-generate\" target=\"_blank\">qui <\/a>e che ho caricato in copia <a href=\"https:\/\/www.zarrelli.org\/blog\/wp-content\/uploads\/2010\/11\/tjfontaine-airprint-generate-af37647.tar.gz\" target=\"_blank\">qui<\/a> e lanciatelo da console:<\/p>\n<pre>root@SALOTTO:\/home\/zarrelli\/Scaricati\/tjfontaine-airprint-generate-af37647# python airprint-generate.py -v\r\nBRFAX Losing support for: text\/css,image\/x-photocd,image\/x-bitmap,application\/vnd.hp-hpgl,application\/vnd.cups-raw\r\nCreated: AirPrint-BRFAX.service\r\nHewlett-Packard-HP-LaserJet-6P Losing support for: text\/css,image\/x-photocd,image\/x-bitmap,application\/vnd.hp-hpgl,application\/vnd.cups-raw,application\/vnd.cups-postscript\r\nCreated: AirPrint-Hewlett-Packard-HP-LaserJet-6P.service\r\nBrother-MFC-210C Losing support for: text\/css,image\/x-photocd,image\/x-bitmap,application\/vnd.hp-hpgl,application\/vnd.cups-raw\r\nCreated: AirPrint-Brother-MFC-210C.service\r\nroot@SALOTTO:\/home\/zarrelli\/Scaricati\/tjfontaine-airprint-generate-af37647#\r\nroot@SALOTTO:\/home\/zarrelli\/Scaricati\/tjfontaine-airprint-generate-af37647# python airprint-generate.py -vBRFAX Losing support for: text\/css,image\/x-photocd,image\/x-bitmap,application\/vnd.hp-hpgl,application\/vnd.cups-rawCreated: AirPrint-BRFAX.serviceHewlett-Packard-HP-LaserJet-6P Losing support for: text\/css,image\/x-photocd,image\/x-bitmap,application\/vnd.hp-hpgl,application\/vnd.cups-raw,application\/vnd.cups-postscriptCreated: AirPrint-Hewlett-Packard-HP-LaserJet-6P.serviceBrother-MFC-210C Losing support for: text\/css,image\/x-photocd,image\/x-bitmap,application\/vnd.hp-hpgl,application\/vnd.cups-rawCreated: AirPrint-Brother-MFC-210C.serviceroot@SALOTTO:\/home\/zarrelli\/Scaricati\/tjfontaine-airprint-generate-af37647#<\/pre>\n<p>In pratica, vi generer\u00e0 un file XML per ogni stampante condivisa da CUPS, contenente le informazioni necessarie alla pubblicazione tramite Avahi con le modifiche necessarie a renderla &#8220;digeribile da AirPrint.<\/p>\n<p>Copiate in<\/p>\n<pre>\/etc\/avahi\/services\/<\/pre>\n<p>il file relativo alla stampante che volete utilizzare tramite AirPlay, nel mio caso<\/p>\n<pre>AirPrint-Brother-MFC-210C.service<\/pre>\n<p>Ora, aprite il file<\/p>\n<pre>\/etc\/cups\/cupsd.conf<\/pre>\n<p>e assicuratevi che ci siano le seguenti informazioni:<\/p>\n<pre>ServerAlias *\r\nPort 631\r\nListen \/var\/run\/cups\/cups.sock<\/pre>\n<p>Tanto per non sbagliare, riavviamo i servizi cups \u00a0e avahi-daemon:<\/p>\n<pre>service cupsd restart\r\nservice avahi-daemon restart<\/pre>\n<p>Fatto. Finito. Ora aprite Safari, pigiate sull&#8217;icona delle azioni (quella centrale in basso), \u00a0scegliete &#8220;Stampa&#8221; e buon divertimento con la vostra nuova, vecchia stampante AirPrint.<\/p>\n<p>P.S.<\/p>\n<p>Chiedo venia per lo stile un po&#8217; raffazzonato, ma \u00e8 tardi&#8230;<\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.zarrelli.org\/blog\/wp-content\/uploads\/2010\/11\/airprint.png\" alt=\"\" \/><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.zarrelli.org\/blog\/wp-content\/uploads\/2010\/11\/air2.png\" alt=\"\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ok, visto che nel nuovo IOS 4.2 si pu\u00f2 stampare via AirPrint, perch\u00e9 non sfruttare la condivisione delle stampanti di CUPS per stampare da iPhone\/iPad su una periferica gestita da GNU\/Linux? Lo spunto, con qualche aggiunta personalizzata, lo ha dato questo articolo in cui l&#8217;autore ha spippolato con Wireshark per esaminare il dialogo in rete &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,31],"tags":[],"class_list":{"0":"post-1138","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"hentry","6":"category-apple","7":"category-gnulinux","9":"without-featured-image"},"_links":{"self":[{"href":"https:\/\/www.zarrelli.org\/blog\/wp-json\/wp\/v2\/posts\/1138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zarrelli.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zarrelli.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zarrelli.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zarrelli.org\/blog\/wp-json\/wp\/v2\/comments?post=1138"}],"version-history":[{"count":0,"href":"https:\/\/www.zarrelli.org\/blog\/wp-json\/wp\/v2\/posts\/1138\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.zarrelli.org\/blog\/wp-json\/wp\/v2\/media?parent=1138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zarrelli.org\/blog\/wp-json\/wp\/v2\/categories?post=1138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zarrelli.org\/blog\/wp-json\/wp\/v2\/tags?post=1138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}