{"id":18959,"date":"2011-05-18T21:17:29","date_gmt":"2011-05-18T19:17:29","guid":{"rendered":"http:\/\/www.boscarol.com\/blog\/?p=18959"},"modified":"2012-04-08T14:14:06","modified_gmt":"2012-04-08T12:14:06","slug":"funzionamento-di-cups","status":"publish","type":"post","link":"http:\/\/www.boscarol.com\/blog\/?p=18959","title":{"rendered":"CUPS prende il PDF dalla coda e lo elabora"},"content":{"rendered":"<p>CUPS supporta <span style=\"text-decoration: underline;\">stampanti PostScript<\/span> e <span style=\"text-decoration: underline;\">stampanti non PostScript<\/span> (che vengono chiamate stampanti raster, facendo riferimento al tipo di dati che devono ricevere).<\/p>\n<p><strong><br \/>\nSe la stampante \u00e8 <em>raster<\/em> (cio\u00e8 non PostScript)<\/strong><\/p>\n<p>Se la stampante \u00e8 <strong>non PostScript<\/strong> CUPS funziona cos\u00ec: il PDF che l&#8217;applicazione ha messo in coda di stampa viene inizialmente rasterizzato in un raster generico mediante un filtro CUPS (tipicamente\u00a0<strong>cgpdftoraster<\/strong>, abbreviazione di &#8220;CoreGraphics PDF to raster&#8221;):<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-19205\" style=\"border: 0px none;\" title=\"Raster generico\" src=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups7.jpg?resize=318%2C145\" alt=\"\" width=\"318\" height=\"145\" srcset=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups7.jpg?w=318 318w, https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups7.jpg?w=300 300w\" sizes=\"(max-width: 318px) 100vw, 318px\" data-recalc-dims=\"1\" \/><\/p>\n<p>Successivamente il raster generico viene convertito in un raster adatto alla specifica stampante mediante un filtro specifico\u00a0e un PPD specifico per quella stampante (non forniti da CUPS, vedi pi\u00f9 sotto):<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-19207\" style=\"border: 0px none;\" title=\"Stampante raster\" src=\"https:\/\/i1.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups81.jpg?resize=490%2C201\" alt=\"\" width=\"490\" height=\"201\" srcset=\"https:\/\/i1.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups81.jpg?w=490 490w, https:\/\/i1.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups81.jpg?w=300 300w\" sizes=\"(max-width: 490px) 100vw, 490px\" data-recalc-dims=\"1\" \/><\/p>\n<p><strong><br \/>\nSe la stampante \u00e8 PostScript<\/strong><\/p>\n<p>Se invece la stampante \u00e8 <strong>PostScript<\/strong>, il primo filtro applicato \u00e8 un filtro CUPS (tipicamente <strong>cgpdftops <\/strong>&#8220;CoreGraphics PDF to PostScript) che trasforma il PDF in coda in un PostScript generico.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-19208\" style=\"border: 0px none;\" title=\"Flusso di stampa PostScript\" src=\"https:\/\/i2.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups9.jpg?resize=318%2C137\" alt=\"\" width=\"318\" height=\"137\" srcset=\"https:\/\/i2.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups9.jpg?w=318 318w, https:\/\/i2.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups9.jpg?w=300 300w\" sizes=\"(max-width: 318px) 100vw, 318px\" data-recalc-dims=\"1\" \/><\/p>\n<p>Il PostScript generico successivamente viene trasformato in un PostScript specifico per quella stampante mediante un filtro specifico e un PPD (non forniti da CUPS, vedi pi\u00f9 sotto):<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-19209\" style=\"border: 0px none;\" title=\"Flusso di stampa PostScript\" src=\"https:\/\/i2.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups10.jpg?resize=491%2C195\" alt=\"\" width=\"491\" height=\"195\" srcset=\"https:\/\/i2.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups10.jpg?w=491 491w, https:\/\/i2.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/cups10.jpg?w=300 300w\" sizes=\"(max-width: 491px) 100vw, 491px\" data-recalc-dims=\"1\" \/><\/p>\n<p><strong><br \/>\nFiltri CUPS<\/strong><\/p>\n<p>I due filtri CUPS citati stanno, assieme a tutti gli altri, in questa cartella:<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-19198\" style=\"border: 0px none;\" title=\"Mac OS X 10.6.7\" src=\"https:\/\/i1.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/libexec.jpg?resize=548%2C195\" alt=\"\" width=\"548\" height=\"195\" srcset=\"https:\/\/i1.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/libexec.jpg?w=548 548w, https:\/\/i1.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/libexec.jpg?w=300 300w\" sizes=\"(max-width: 548px) 100vw, 548px\" data-recalc-dims=\"1\" \/><\/p>\n<p>Il secondo filtro specifico\u00a0assieme al PPD specifico costituisce il <strong>driver<\/strong> della stampante.\u00a0Dunque installare un driver di stampante CUPS significa installare un PPD e un filtro specifico per quella stampante.<\/p>\n<p>Esistono tre &#8220;sorgenti&#8221; per i driver CUPS:<\/p>\n<ul>\n<li>driver originali dei costruttori (Epson, Canon, HP, ecc.);<\/li>\n<li>driver\u00a0<a href=\"http:\/\/gimp-print.sourceforge.net\/\" target=\"_blank\">Gutenprint<\/a> (ex Gimp-Print);<\/li>\n<li>altri driver\u00a0<em>open source<\/em>.<\/li>\n<\/ul>\n<p>In <a href=\"http:\/\/support.apple.com\/kb\/HT3669\" target=\"_blank\">questa pagina<\/a> del sito Apple sono elencati i driver disponibili per Mac OS X 10.6.<\/p>\n<p>Driver per la stessa stampante, ma di diversi fornitori, hanno caratteristiche diverse relative alla velocit\u00e0 di stampa, resa dei colori, impostazione delle opzioni e cos\u00ec via.<\/p>\n<p>Questi sono i filtri della Epson per le stampanti a getto d&#8217;inchiostro:<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-19218\" style=\"border: 0px none;\" title=\"Filtri Epson InkJet Mac OS X 10.6.7\" src=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/filtri-epson.jpg?resize=519%2C173\" alt=\"\" width=\"519\" height=\"173\" srcset=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/filtri-epson.jpg?w=519 519w, https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/filtri-epson.jpg?w=300 300w\" sizes=\"(max-width: 519px) 100vw, 519px\" data-recalc-dims=\"1\" \/><\/p>\n<p><strong><br \/>\nPPD (PostScript Printer Description)<\/strong><\/p>\n<p>Come \u00e8 possibile che una stampante raster abbia un PPD, che significa PostScript Printer Description, e dunque \u00e8 associato ad una stampante PostScript? La risposta \u00e8 che il sistema CUPS ha esteso il concetto di PPD anche alle stampanti non PostScript, mantenendone lo stesso nome. Nel PPD della stampante sono contenute le caratteristiche della stampante, e ora con CUPS questo vale sia per le stampanti PostScript che per le stampanti non PostScript.<\/p>\n<p>I PPD delle varie stampanti stanno in questa cartella:<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-19016\" style=\"border: 0px none;\" title=\"PPD Mac OS X 10.6\" src=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/ppd.jpg?resize=579%2C140\" alt=\"\" width=\"579\" height=\"140\" srcset=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/ppd.jpg?w=724 724w, https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/ppd.jpg?w=300 300w\" sizes=\"(max-width: 579px) 100vw, 579px\" data-recalc-dims=\"1\" \/><\/p>\n<p>Questo \u00e8 un esempio di PPD (la parte iniziale):<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-19017\" title=\"PPD di una stampante Epson\" src=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/ppd_ep.jpg?resize=474%2C646\" alt=\"\" width=\"474\" height=\"646\" srcset=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/ppd_ep.jpg?w=474 474w, https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/ppd_ep.jpg?w=220 220w\" sizes=\"(max-width: 474px) 100vw, 474px\" data-recalc-dims=\"1\" \/><\/p>\n<p>I PPD delle stampanti installate nel sistema vengono copiati in questa cartella, dove c&#8217;\u00e8 anche il file di configurazione di cups:<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-19018\" style=\"border: 0px none;\" title=\"ppd_2\" src=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/ppd_2.jpg?resize=470%2C250\" alt=\"\" width=\"470\" height=\"250\" srcset=\"https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/ppd_2.jpg?w=587 587w, https:\/\/i0.wp.com\/www.boscarol.com\/blog\/wp-content\/uploads\/2011\/05\/ppd_2.jpg?w=300 300w\" sizes=\"(max-width: 470px) 100vw, 470px\" data-recalc-dims=\"1\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CUPS supporta stampanti PostScript e stampanti non PostScript (che vengono chiamate stampanti raster, facendo riferimento al tipo di dati che devono ricevere). Se la stampante \u00e8 raster (cio\u00e8 non PostScript) Se la stampante \u00e8 non PostScript CUPS funziona cos\u00ec: il PDF che l&#8217;applicazione ha messo in coda di stampa viene inizialmente rasterizzato in un raster [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[1114],"tags":[1116,61,1576,105],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pjoVH-4VN","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/18959"}],"collection":[{"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=18959"}],"version-history":[{"count":22,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/18959\/revisions"}],"predecessor-version":[{"id":18980,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/18959\/revisions\/18980"}],"wp:attachment":[{"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=18959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=18959"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.boscarol.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=18959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}