The Printing HOWTO

Grant Taylor

   <gtaylor+pht@picante.com>

Dirk Allaert

   <dirk.allaert@reachout.be>

   v1.8, 2003-06-22

   Questo è il Printing HOWTO, una raccolta di informazioni su come
   generare, visualizzare un'anteprima, stampare e spedire via fax
   qualunque documento sotto GNU/Linux. Quasi tutte le informazioni sono
   ugualmente applicabili per quegli utenti di software libero che usino
   altri sistemi operativi Unix-like.

   Traduzione a cura di Elisabetta Galli, <lab (at) kkk dot it>.
     _________________________________________________________________

   Sommario
   1. Introduzione

        1.1. Terminologia
        1.2. Storia delle versioni
        1.3. Copyright

   2. Partenza veloce

        2.1. Dove trovare aiuto

   3. Come stampare

        3.1. Con BSD LPD e il comando lpr
        3.2. Con LPD System V e il comando lp
        3.3. Con CUPS
        3.4. Strumenti a interfaccia grafica per la stampa

   4. I dispositivi di stampa del kernel

        4.1. Il dispositivo lp (kernel <=2.1.32)
        4.2. Il dispositivo parport (kernel >= 2.1.33)
        4.3. Dispositivi seriali
        4.4. Dispositivi USB

   5. Stampanti supportate

        5.1. Postscript
        5.2. Non Postscript
        5.3. Quali stampanti funzionano?
        5.4. Come comprare una stampante

   6. Software di spool

        6.1. CUPS
        6.2. LPD
        6.3. LPRng
        6.4. PPR
        6.5. Altri

   7. Come funziona

        7.1. CUPS
        7.2. LPD

   8. Come configurare il tutto

        8.1. Configurare CUPS
        8.2. Configurare LPD
        8.3. Installazioni su larga scala
        8.4. Autenticazione

   9. Soluzioni commerciali

        9.1. Red Hat
        9.2. Debian
        9.3. SuSE
        9.4. Caldera
        9.5. Corel
        9.6. Mandrake
        9.7. Slackware
        9.8. Altre distribuzioni

   10. Ghostscript

        10.1. Richiamare Ghostscript
        10.2. Regolazione dell'output di Ghostscript

   11. Reti

        11.1. Stampare su un host Unix/lpd
        11.2. Stampare su una stampante Windows o Samba
        11.3. Stampare su una stampante NetWare
        11.4. Stampare su una stampante EtherTalk (Apple)
        11.5. Stampare su una stampante di rete
        11.6. Esecuzione di if per una stampante remota con il vecchio
                LPD

        11.7. Da Windows
        11.8. Da Apple
        11.9. Da Netware
        11.10. Amministrazione di stampanti di rete

   12. Stampanti solo Windows

        12.1. Redirezionatore Ghostscript per Windows
        12.2. Stampanti HP per Windows
        12.3. Stampanti Lexmark per Windows

   13. Come stampare su un fax

        13.1. Usando un faxmodem
        13.2. Usando il servizio di stampa remota
        13.3. Servizi di invio fax commerciali

   14. Come generare qualcosa che valga la pena stampare

        14.1. Linguaggi di markup
        14.2. Elaboratori di testo WYSIWYG

   15. Stampare fotografie

        15.1. Ghostscript e le fotografie
        15.2. Carta
        15.3. Impostazioni della stampante
        15.4. Durata della stampa
        15.5. Software di tipo shareware e commerciale

   16. Anteprima su schermo di immagini stampabili

        16.1. PostScript
        16.2. TeX dvi
        16.3. Adobe PDF

   17. Stampanti seriali con lpd

        17.1. Configurazione di printcap
        17.2. Stampanti seriali antiquate che perdono caratteri

   18. Cosa manca?

        18.1. Integrazione dei programmi
        18.2. Tipi di carattere
        18.3. Driver

   19. Ringraziamenti
   A. GNU Free Documentation License

        A.1. PREAMBLE
        A.2. APPLICABILITY AND DEFINITIONS
        A.3. VERBATIM COPYING
        A.4. COPYING IN QUANTITY
        A.5. MODIFICATIONS
        A.6. COMBINING DOCUMENTS
        A.7. COLLECTIONS OF DOCUMENTS
        A.8. AGGREGATION WITH INDEPENDENT WORKS
        A.9. TRANSLATION
        A.10. TERMINATION
        A.11. FUTURE REVISIONS OF THIS LICENSE
        A.12. ADDENDUM: How to use this License for your documents

1. Introduzione

   Il Printing HOWTO contiene tutto ciò che serve sapere per configurare
   il servizio di stampa di una GNU/Linux box. Il destino ha voluto che
   il tutto fosse leggermente più complicato rispetto al sistema
   punta-e-clicca di Microsoft ed Apple, ma anche più flessibile e
   certamente più facile da amministrare per reti estese.

   Questo documento è strutturato in maniera tale da permettere alla
   maggior parte degli utenti di leggere solo la prima metà. La maggior
   parte delle informazioni più oscure e variabili a seconda delle
   situazioni si trovano nella seconda metà, e sono facilmente
   rintracciabili nell'indice generale, considerando che alcune
   informazioni necessarie per molti utenti si trovano nelle sezioni 10 o
   11.

   Chi trovasse utile questo documento o il sito linuxprinting.org,
   consideri la possibilità di comprare qualcosa (cartucce, per esempio)
   tramite i link di riferimento sul sito; tali acquisti sosterranno
   questo sforzo.

   Il sito web linuxprinting.org è il posto migliore dove trovare
   l'ultima versione di questo documento (NdT: in lingua inglese);
   ovviamente viene distribuito anche da tldp.org, e dal vostro
   amichevole mirror LDP.
     _________________________________________________________________

1.1. Terminologia

   Si cercherà di usare una terminologia universale in tutto il
   documento, così che gli utenti di tutti i sistemi liberi Unix-like, e
   perfino gli utilizzatori di software libero su sistemi non Unix-like,
   possano beneficiarne. Sfortunatamente esistono molti termini utili ma
   ambigui e molti termini difficili ma non ambigui, quindi, per
   chiarezza, qui si può trovare un rapido glossario:

   Unix
          Unix è un sistema operativo sviluppato presso i laboratori Bell
          da svariati ricercatori. Diversi sistemi operativi, in gran
          parte commerciali, sono basati su questo codice e sono compresi
          nel nome Unix.

   Un*x
          Un*x è una parola difficile usata per fare riferimento ad ogni
          sistema operativo Unix-like. Un sistema operativo Unixlike
          fornisce, come API nativa, qualcosa di simile all'interfaccia
          di programmazione POSIX. Gnu/Linux, FreeBSD, Solaris, AIX, e
          perfino sistemi con scopi speciali come Lynx e QNX sono tutti
          Un*x.

   Linux
          Linux unisce un kernel Unixlike e un piccolo assortimento di
          software a corollario scritto da Linus Torvalds e da centinaia
          di altri programmatori. È il fondamento dei sistemi operativi
          Un*x più usati.

   GNU
          Il progetto GNU (GNU's Not Unix) si sforza da molto tempo di
          sviluppare un sistema operativo Unixlike interamente libero. Il
          progetto GNU, per molti versi, è il padre della maggior parte
          del software libero moderno.

   GNU/Linux
          Un sistema operativo GNU/Linux comprende il kernel Linux, i
          suoi programmi periferici e l'ambiente GNU di runtime completo
          di librerie, utilità, software per l'utente, etc. Red Hat,
          Debian, Caldera, SuSE, TurboLinux, e altre società simili sono
          tutti fornitori commerciali di sistemi GNU/Linux completi.
     _________________________________________________________________

1.2. Storia delle versioni

   Ci sono state diverse generazioni di questo Printing HOWTO. La sua
   storia può essere riassunta così:

    1. Grant Taylor scrisse il Printing HOWTO nel 1992 in risposta alle
       numerose domande inerenti la stampa poste su comp.os.linux. Ciò
       anticipò il progetto dell'HOWTO di alcuni mesi, e fu pertanto il
       primo documento ad essere definito un "howto". Questa edizione era
       in ASCII piano.
    2. Dopo essere entrato a far parte del progetto HOWTO, il
       Printing-HOWTO è stato unito ad una FAQ su Lpd di Brian McCauley
       <B.A.McCauley@bham.ac.uk>; per circa due anni il PHT è stato
       sviluppato in collaborazione. Ad un certo punto è stato
       incorporato anche il lavoro di Karl Auer <Karl.Auer@anu.edu.au>.
       Questa generazione del PHT era in TexInfo e disponibile in PS,
       HTML, ASCII ed Info.
    3. Dopo aver abbandonato il PHT per oltre un anno, ed aver cercato
       inutilmente di convincere qualcun altro ad occuparsene, è stata
       scritta questa versione in SGML, usando il LinuxDoc DTD ed il
       pacchetto SGML-Tools-1. A partire dalla versione 3.27, è stato
       incorporato il riassunto di un database di stampanti
       complementare; in precedenza non c'era mai stata una lista di
       stampanti compatibili in questo HOWTO.
    4. A metà Gennaio del 2000, Grant scoprì lo "spooler" di stampa di
       PDQ. Il meccanismo di stampa messo a disposizione da PDQ era così
       migliorato rispetto a quello di lpd che Grant passò diverse ore
       giocandoci, riscrisse parti di questo HOWTO e fece balzare a 4 il
       numero di versione del documento.
    5. A metà del 2000, Grant spostò il suo sito web su
       www.linuxprinting.org, e cominciò ad mettere a disposizione
       strumenti di configurazione più potenti. Inoltre convertì l'HOWTO
       in docBook, e iniziò la trattazione di CUPS, LPRng e GPR/libppd.
    6. All'inizio del 2001, Grant iniziò ad usare la GNU Free
       Documentation License, che gli sembrò abbastanza adatta. Cominciò
       anche a cercare di chiarire cos'è e cosa non è specifico di Linux;
       ci sono diversi kernel liberi Unixlike in giro, e tutti usano lo
       stesso software per la stampa.
    7. All'inizio del 2003, dopo aver sentito una presentazione di Till
       Kampeter al FOSDEM, io (Dirk) decisi di aggiornare questo HOWTO.
       Da quando Grant lo modificò l'ultima volta, CUPS è diventato più
       maturo e molto più popolare.
     _________________________________________________________________

1.3. Copyright

   Copyright (c) 1992-2001 Grant Taylor.

   Permission is granted to copy, distribute and/or modify this document
   under the terms of the GNU Free Documentation License, Version 1.1 or
   any later version published by the Free Software Foundation; with no
   Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
   Texts. A copy of the license is included in Appendice A.

   Nota del traduttore: qui di seguito trovate la traduzione del
   paragrafo precedente, l'unica licenza che ha valore legale resta
   l'originale inglese.

   Copyright 1992-2001 di Grant Taylor.

   È concesso il permesso di copiare, distribuire e/o modificare questo
   documento nei termini di cui alla licenza GNU Free Documentation,
   versione 1.1 o qualsiasi versione successiva pubblicata dalla Free
   Software Foundation; senza i vincoli sulle sezioni invarianti, sulla
   prima di copertina e sull'ultima di copertina. Una copia della licenza
   è inclusa nella Appendice A.
     _________________________________________________________________

2. Partenza veloce

   Il modo più veloce per iniziare è semplicemente usare gli strumenti di
   configurazione forniti dal venditore. In questo modo dovrebbe essere
   facile ottenere una configurazione di base, assumendo che in quegli
   strumenti sia incluso il supporto per il vostro driver, e che il
   venditore abbia incluso il driver per la vostra stampante. Si possono
   trovare informazioni sugli strumenti di configurazione offerti dai
   venditori in la Sezione 9.

   Se lo strumento del venditore non funziona, si dovrebbe verificare che
   la stampante sia elencata tra quelle presunte funzionanti, consultando
   sia la lista di stampanti compatibili in la Sezione 5.3.1 che la
   versione online qui descritta.

   Se la stampante è indicata come funzionante con un certo driver si
   controlli di averlo, altrimenti lo si installi. Solitamente si sarà in
   grado di trovare un pacchetto scritto per Ghostscript che includa
   nuovo codice e driver assortiti di terze parti. In caso contrario, se
   ne può compilare uno; il processo non è banale, ma è ben documentato.
   Si veda la Sezione 10 per maggiori informazioni su Ghostscript.

   Dopo aver installato il driver adatto, si tenti di nuovo di
   configurare la stampante usando lo strumento del venditore. Se non
   funziona, si selezioni uno strumento di terze parti adatto tra quelli
   descritti in la Sezione 8. Se anche questo non funziona, se ne dovrà
   costruire uno proprio; si veda sempre la Sezione 8.

   Se si è ancora bloccati, sarà necessario dare la caccia al problema.
   Probabilmente la cosa migliore, prima di tutto, è continuare a leggere
   questo documento, per capire come dovrebbero funzionare le cose: ci si
   troverà poi in una posizione migliore per effettuare un debug.
     _________________________________________________________________

2.1. Dove trovare aiuto

   I newsgroup di Usenet comp.os.linux.hardware, comp.os.linux.setup e
   comp.periphs.printers contengono la loro parte di domande generiche
   sulla stampa. Si tratta di newsgroup molto trafficati nei quali si
   potrà sicuramente trovare una risposta; controllare anche gli archivi
   dei gruppi di Google. Si può provare anche sui newsgroup
   linuxprinting.foo; sono disponibili sia come forum via web che NNTP;
   si veda il sito web.

   Rovistate anche il web per trovare le risposte. LinuxPrinting.org è un
   eccellente punto di partenza; da qui sono raggiungibili altri siti web
   e progetti.

   Si può trovare ulteriore aiuto provando sui newsgroup, sulle mailing
   list, tramite il supporto del fornitore e così via. L'autore è
   contattabile tramite il forum di discussione su LinuxPrinting.org;
   questo darà la possibilità ad altri utenti di rispondere, e permetterà
   di archiviare pubblicamente il vostro problema ed ogni soluzione per
   il prossimo utente in difficoltà.
     _________________________________________________________________

3. Come stampare

   Per la verità il comando usato per stampare dipende da quale software
   di spooling si usa.
     _________________________________________________________________

3.1. Con BSD LPD e il comando lpr

   Se lpd è già stato configurato per stampare da voi, o se
   l'amministratore di sistema o il venditore l'hanno fatto per voi,
   tutto quello che si deve fare è imparare ad usare il comando lpr. Il
   Printing Usage HOWTO tratta di questo e di qualche altro comando di
   manipolazione della coda di stampa. Oppure si legga la pagina di
   manuale di lpr(1).

   In poche parole, il nome della coda di stampa si specifica con -P,
   seguito dal nome di un file per stamparlo, oppure niente per stampare
   dallo standard input. Tradizionalmente le opzioni del driver non sono
   controllabili da lpr, ma vari sistemi accettano certe opzioni tramite
   -o, -Z, o -J.

   Esempio 1. lpr
lpr /etc/hosts
lpr -J "my hosts file" /etc/hosts
lpr -P mylaserjet /etc/services
     _________________________________________________________________

3.2. Con LPD System V e il comando lp

   Sono due i set di comandi che si possono incontrare avendo a che fare
   con parecchie versioni di Unix. Il sistema di stampa LPD basato su BSD
   (*BSD, Linux) usa lpr (per stampare), lpq (per vedere la coda di
   stampa), lprm (per cancellare i lavori). I sistemi basati su System V
   dall'altra parte usano lp (per stampare), lpstat (per vedere la coda
   di stampa), cancel (per cancellare i lavori). Alcuni sistemi Unix di
   tipo System V sono Solaris, SCO ed altri.

   Sui sistemi SYSV, si può ovviamente consultare la pagina di manuale
   del comando lp. Per specificare una coda si usa l'opzione -d con il
   nome di un file per stamparlo, o niente per stampare dallo standard
   input.

   Esempio 2. lp
lp /etc/hosts
lp -d mylaserjet /etc/services
     _________________________________________________________________

3.3. Con CUPS

   CUPS mette a disposizione sia l'interfaccia a linea di comando di
   System V che quella di Berkeley. Ciò significa che si può usare sia
   lpr che lp per stampare, il che torna molto utile se si hanno già
   diversi script che usano, per esempio, lp o per chi ha una precedente
   esperienza con un sistema System V o BSD.
     _________________________________________________________________

3.4. Strumenti a interfaccia grafica per la stampa

   La maggior parte dei sistemi di spool offre soltanto un'interfaccia a
   linea di comando abbastanza semplice. Piuttosto che usare direttamente
   lpr, si potrebbe desiderare di usare un'interfaccia utente che
   generalmente permette di giocherellare con diverse opzioni di stampa
   (stampante, tipo di carta, fascicolazione, pagine per foglio, ecc.)
   tramite una forma grafica di facile uso. Alcune possono avere anche
   altre funzioni.
     _________________________________________________________________

3.4.1. KDEPrint

   KDEPrint permette agli utenti di accedere al sottosistema di stampa
   (CUPS, LPD, RLPR, LPRng ecc.) attraverso un'interfaccia utente grafica
   di KDE. Con KDEPrint si può facilmente stampare, si possono
   amministrare i lavori, le stampanti e il demone di stampa. KDEPrint
   rimpiazza i precedenti QtCUPS e CUPS, ed è facile da usare sia per gli
   sviluppatori che per gli utenti. KDEPrint fa parte di KDE già dalla
   versione 2.2.0 e ha diverse funzioni interessanti.

   kprinter è la finestra di dialogo di KDEPrint, e permette di
   selezionare la stampante di destinazione e di cambiare le opzioni di
   stampa. Tra le stampanti di destinazione ci sono alcune stampanti
   virtuali che permettono di inviare la stampa ad email, fax o pdf.

   Figura 1. kprinter

   [snapshot-kdeprint-kprinter.png]

   Il comando kprinter di KDEPrint può essere usato in ogni applicazione
   che permetta di configurare il comando di stampa: alcuni esempi sono
   Mozilla e OpenOffice.

   Figura 2. Usare kprinter con Mozilla

   [snapshot-kdeprint-mozilla.png]

   Tra le funzioni di KDEPrint c'è anche l'Anteprima di Stampa che può
   essere selezionata dalla finestra di dialogo Stampa. L'anteprima si
   ottiene facendo passare il file da stampare attraverso dei filtri che
   lo rendono visualizzabile sullo schermo usando KGhostView o
   un'applicazione esterna come gv.

   KJobViewer, il Visualizzatore di Lavori di Stampa di KDEPrint permette
   di vedere, muovere e cancellare lavori di stampa.

   Figura 3. KJobViewer

   [snapshot-kdeprint-kjobviewer.png]

   Si possono trovare maggiori informazioni su KDEPrint presso
   http://printing.kde.org/.
     _________________________________________________________________

3.4.2. XPP

   Un'altra buona scelta per CUPS è il programma XPP (si veda Figura 4).
   XPP è stato costruito dalla libreria FLTK ed è quindi indipendente dal
   desktop usato.

   Per stampare con XPP, basta far partire il programma xpp specificando
   un file (o niente, se si sta usando xpp al posto di lpr per stampare
   dallo standard input) e selezionando una stampante dalla lista di
   quelle configurate, insieme ad ogni opzione che si vuole applicare
   scelta dai vari pannelli. Si veda Figura 5 per un pannello di opzioni
   di esempio con evidenziate le opzioni standard di CUPS.

   Se usato con il driver dell'interfaccia di sistema Foomatic, XPP
   permetterà anche di controllare parametri numerici normalmente non
   supportati da CUPS, tipicamente cose come la sintonizzazione avanzata
   dei colori, l'allineamento delle cartucce e così via. Si veda Figura 6
   per un esempio.

   La stampante selezionata e tutte le opzioni scelte possono essere
   salvate con il pulsante «Salva impostazioni».

   Figura 4. Finestra principale di XPP

   [snapshot-xpp-main.png]

   Figura 5. Finestra di opzioni di CUPS/XPP

   [snapshot-xpp-options.png]

   Figura 6. Finestra di opzioni di Foomatic CUPS/XPP

   [snapshot-xpp-foomaticoptions.png]
     _________________________________________________________________

3.4.3. GPR

   GPR, di Thomas Hubbell, usa il codice di CUPS per filtrare lavori di
   stampa Postscript e offre agli utenti la possibilità di controllare
   con facilità le opzioni dei lavori di stampa. Alcune opzioni (come le
   pagine per foglio, la selezione delle pagine, ecc.) sono implementate
   direttamente da GPR, altre invece dalla stampante o dal filtro del
   sistema di spool.

   GRP lavora con LPD o LPRng, o può essere compilato specificatamente
   per usare GNUlpr. Se compilato normalmente, usa direttamente la
   libreria libppd di VA per produrre un file Postscript specifico per la
   stampa, che verrà poi inviato al comando lpr. Se compilato per GNUlpr,
   invia un lavoro di stampa Postscript senza modifiche al comando lpr,
   insieme al set di opzioni specificate. Questa è indiscutibilmente la
   strada migliore, perché permette a Postscript di essere reindirizzato
   dallo spooler ad una diversa stampante quando opportuno;
   sfortunatamente richiede GNUlpr, che non è molto diffuso (anche se è
   ovviamente banale da installare).

   Per usare GPR, prima di tutto si selezioni una stampante (usando il
   nome indicato nella coda LPD) e si controlli che GPR abbia caricato il
   file PPD corretto. Se non l'ha fatto, si dovrà specificare il nome del
   file PPD e le opzioni per la stampante nella finestra di dialogo
   Configurazione della Stampante (questa finestra si ottiene usando il
   pulsante Configurazione della Stampante; contiene diverse opzioni per
   la stampante definite dal PPD).

   Dopo aver configurato la stampante, si può stampare specificando il
   nome del file e selezionando le opzioni appropriate dai pannelli a
   linguetta «Generale» e «Avanzate». Le opzioni «Generale» sono
   implementate direttamente da GPR per tutte le stampanti, mentre quelle
   «Avanzate» sono definite per ogni stampante dal file PPD. Si possono
   vedere questi pannelli di opzioni in Figura 8 e in Figura 9.

   Figura 7. Opzioni principali di GPR

   [snapshot-gpr-main.png]

   Figura 8. Opzioni comuni di GPR

   [snapshot-gpr-common.png]

   Figura 9. Opzioni GPR per la stampante

   [snapshot-gpr-printer.png]
     _________________________________________________________________

4. I dispositivi di stampa del kernel

   Ci sono due driver di dispositivo completamente diversi per la porta
   parallela; quello usato dipende dalla versione del kernel (che si può
   scoprire con il comando uname -a). Il driver è cambiato da Linux
   2.1.33; essenzialmente tutti i sistemi recenti usano il kernel 2.2 o
   successivi, quindi probabilmente si vorrà passare alla sezione sul
   driver parport.

   Alcuni dettagli sono uguali per i due tipi di driver. In particolare,
   molti utenti hanno notato che Linux non riconosce la porta parallela a
   meno che non venga disabilitata l'opzione "Plug and Play" dal BIOS.
   (Non è una sorpresa; la storia del PNP dei dispositivi non-PCI con
   Windows e dintorni è praticamente un disastro).
     _________________________________________________________________

4.1. Il dispositivo lp (kernel <=2.1.32)

   Il kernel di Linux (<=2.1.32), dando per scontato che sia stato
   compilato o caricato il dispositivo lp (il risultato di cat
   /proc/devices dovrebbe includere il dispositivo lp), fornisce uno o
   più dispositivi /dev/lp0, /dev/lp1 e /dev/lp2. Questi NON sono
   assegnati dinamicamente, ma corrispondono ad uno specifico indirizzo
   di I/O hardware. Ciò significa che la stampante potrebbe essere lp0 o
   lp1, a seconda della configurazione hardware del sistema: vanno
   provati entrambi.

   Alcuni utenti riferiscono che la porta lp bidirezionale non viene
   riconosciuta se si usa un vecchio cavo per stampanti unidirezionale.
   Si controlli di usare un cavo decente.

   Non è possibile eseguire contemporaneamente i driver plip e lp su una
   data porta (sotto 2.0, in ogni caso). È possibile comunque caricare
   l'uno o l'altro driver, sia manualmente che automaticamente dal
   kerneld dei kernel versione 2.x (e le ultime 1.3.x). Configurando
   adeguatamente gli interrupt e simili, dovrebbe essere possibile
   eseguire plip su una porta ed lp su un'altra. Qualcuno è riuscito a
   farlo modificando il codice dei driver; si spera che qualcun altro
   riesca a farlo direttamente dalla linea di comando.

   C'è una piccola utilità chiamata tunelp con la quale è possibile, da
   root, mettere a punto l'uso degli interrupt del dispositivo lp di
   Linux 2.0, la frequenza dei sondaggi e altri parametri.

   Quando il driver lp è compilato nel kernel, si può usare l'opzione lp=
   per impostare gli interrupt e gli indirizzi di IO:
Quando il driver lp è compilato nel kernel, si può usare la linea di
comando di LILO/LOADLIN per passare al driver gli indirizzi delle porte e gli
interrupt che userà.

Sintassi:       lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]

Ad esempio:     lp=0x378,0   oppure   lp=0x278,5,0x378,7 **

Si noti che se si usa questa tecnica, si devono specificare *tutte* le porte ch
e
devono essere considerate, non esistono parametri predefiniti. Si può
disabilitare un driver con lp=0.

   Quando il driver viene caricato come modulo, è possibile specificare
   gli indirizzi di I/O e gli interrupt nella linea di comando di insmod
   (oppure in /etc/conf.modules per influenzare kerneld) usando la solita
   sintassi. I parametri sono io=port0,port1,port2 e irq= irq0,irq1,irq2.
   Si consulti la pagina di manuale di insmod per ulteriori informazioni.

   **Per chi non riesca a ricordare gli indirizzi standard quando
   servono, sono quelli del secondo esempio. L'altra porta (lp0) si trova
   a 0x3bc. Non ho idea di quali interrupt usi.

   Il codice sorgente del driver della porta parallela in Linux 2.0 è in
   /usr/src/linux/drivers/char/lp.c.
     _________________________________________________________________

4.2. Il dispositivo parport (kernel >= 2.1.33)

   A partire dal kernel 2.1.33 (e a disposizione come patch per il kernel
   2.0.30), il dispositivo lp è soltanto un client del nuovo dispositivo
   parport. L'aggiunta del dispositivo parport corregge alcuni dei
   problemi che assillavano il driver del vecchio dispositivo lp - può
   condividere la porta con altri driver, assegna dinamicamente le porte
   parallele disponibili a numeri di dispositivo piuttosto che far
   rispettare un accordo fisso tra gli indirizzi I/O e i numeri delle
   porte, e così via.

   L'avvento del dispositivo parport ha permesso la prolificazione di
   nuovi driver per le porte parallele per cose come dischi Zip, dischi e
   CD-Rom Backpack e così via. Alcuni di questi sono disponibili anche
   per i kernel 2.0; si cerchi sul web.

   La differenza principale che si noterà, per quanto riguarda la stampa,
   è che i kernel basati su parport assegnano dinamicamente i dispositivi
   lp alle porte parallele. Così, quello che era lp1 sotto Linux 2.0
   potrebbe essere lp0 sotto Linux 2.2: se si effettua un aggiornamento
   da un kernel con driver lp ad uno con driver parport bisognerà
   assicurarsi di verificarlo.

   I problemi più comuni di questo dispositivo sembrano derivare da una
   configurazione errata:

   La distribuzione
          Alcune distribuzioni GNU/Linux non sono equipaggiate con un
          file /etc/modules.conf (o /etc/conf.modules) ben configurato,
          così il driver non viene caricato correttamente quando ce n'è
          bisogno. Con un modutils recente, le righe corrette per
          modules.conf sembrano essere:

alias /dev/printers lp             # solo per devfs?
alias /dev/lp*      lp             # solo per devfs?
alias parport_lowlevel parport_pc  # mancante in Red Hat 6.0-6.1

   Il Bios
          Molti Bios trasformano la porta parallela in un dispositivo
          Plug-and-Play, il che aggiunge inutilmente complessità ad un
          dispositivo estremamente semplice che è quasi sempre presente;
          se la porta parallela non è riconosciuta dal driver Linux, si
          disattivi l'impostazione PnP per la porta parallela ("LPT1" in
          molti Bios). L'impostazione corretta spesso si chiama "legacy",
          "ISA", o "0x378", ma probabilmente non "disabilitata".

   Si può anche leggere la documentazione parport dai sorgenti del
   kernel, o cercare il sito web di parport.
     _________________________________________________________________

4.3. Dispositivi seriali

   I dispositivi seriali vengono solitamente identificati come /dev/ttyS1
   e simili sotto Linux. L'utilità stty permette di vedere e modificare
   in modo interattivo le impostazioni per una porta seriale; setserial
   permette di controllare alcuni parametri estesi e di configurare gli
   interrupt e gli indirizzi di I/O per porte non standard. Ulteriori
   informazioni sulle porte seriali sotto Linux possono essere trovate
   nel Serial-HOWTO .

   Usando una stampante seriale lenta con il controllo di flusso, ci si
   accorgerà che alcuni dei lavori di stampa vengono tagliati. Questo
   potrebbe essere dovuto alla porta seriale, il cui comportamento
   predefinito è di eliminare ogni carattere non trasmesso dal buffer
   entro 30 secondi dalla chiusura della porta del dispositivo. Il buffer
   può trattenere fino a 4096 caratteri, e se la stampante usa il
   controllo di flusso ed è troppo lenta per poter accettare tutti i dati
   dal buffer entro 30 secondi dalla chiusura della porta seriale, la
   fine del contenuto del buffer verrà persa. Se il comando cat file >
   /dev/ttyS2 produce un tabulato completo per file brevi ma uno tagliato
   per quelli più lunghi, potreste essere in queste condizioni.

   Il problema dell'intervallo di 30 secondi può essere sistemato
   attraverso l'opzione a linea di comando di setserial "closing_wait"
   (versioni 2.12 e successive). Le porte seriali di una macchina
   solitamente sono inizializzate da una chiamata a setserial tramite il
   file di avvio rc.serial. La chiamata per la porta seriale della
   stampante può essere modificata perché imposti il closing_wait nello
   stesso momento in cui imposta gli altri parametri della porta.
     _________________________________________________________________

4.4. Dispositivi USB
     _________________________________________________________________

4.4.1. USB 1.1

   Linux supporta la tecnologia USB piuttosto bene. USB dovrebbe
   funzionare con gli ultimi kernel 2.2, e con ogni kernel 2.4 o
   successivo. Naturalmente sarà necessario il supporto nel kernel per
   USB, o compilato o attraverso un modulo (raccomandato).

   Con un kernel modulare sarà necessario caricare i seguenti moduli:
     * usb-core.o
     * usb-uhci.o oppure uhci.o oppure usb-ohci.o
     * printer.o

   A seconda del tipo di scheda madre o adattatore che si possiede, sarà
   necessario uno tra usb-uhci.o oppure uhci.o oppure usb-ohci.o. Le
   schede madri Intel e Via, e gli adattatori basati su Via sono UHCI (si
   può usare sia ush-uhci.o che uhci.o). Si può scoprire quale tipo di
   HCI (Host Controller Interface - Interfaccia di Controllo dell'Host)
   si possiede usando lspci -v|grep HCI.
     _________________________________________________________________

4.4.2. USB 2.0

   Per ottenere trasferimenti ad alta velocità da un dispositivo USB 2.0
   bisogna unirlo ad un controller USB 2.0 usando il driver EHCI
   (ehci-hcd.o). Si raccomanda di usare un kernel recente 2.4 o
   successivo.
     _________________________________________________________________

4.4.3. Suggerimenti

   Una cosa da ricordare è che i dispositivi USB sono allocati
   dinamicamente. Quando si accende o si connette una stampante USB, le
   viene assegnato un file di dispositivo (/dev/usb/lp*). Questo
   significa che i lavori di stampa potrebbero essere inviati alla
   stampante sbagliata perché le stampanti sono state accese in un certo
   ordine. CUPS usa indirizzi speciali che contengono fabbricante,
   modello e numero seriale della stampante per continuare ad inviare i
   lavori di stampa alla stampante corretta.

   Anche se la maggior parte delle stampanti lavora bene con Linux, ci
   sono delle eccezioni. Per esempio il nuovo dispositivo MF della Epson
   (Stylus CX3200/CX5200) risponde malamente se si sonda la stringa ID
   IEEE-1284 via IOCTL, per esempio tramite il codice del backend "usb"
   di CUPS. Mentre si può sondare la stringa ID tramite un sistema
   proprietario della Epson.

   Till Kamppeter ha scritto alcuni strumenti per recuperare la stringa
   ID di dispositivo dalle stampanti USB. getusbprinterid.pl e
   usb_id_test.c sono la stessa cosa, ma sono scritti rispettivamente in
   Perl e in C. Come detto prima, i nuovi dispositivi MF della Epson sono
   un'eccezione, ma il "sistema proprietario della Epson" è stato
   implementato nello strumento ttink del pacchetto MTink.

   Maggiore documentazione su USB è disponibile presso il sito web Linux
   USB.
     _________________________________________________________________

5. Stampanti supportate

   Il kernel di Linux permette di comunicare con ogni stampante che si
   possa collegare ad una porta seriale, parallela o usb, più ogni
   stampante sulla rete locale. Sfortunatamente, questo da solo non è
   sufficiente; bisogna essere anche in grado di generare dati che la
   stampante possa capire. Tra le stampanti incompatibili, le prime sono
   quelle definite come "Windows" o "GDI". Sono chiamate così perché
   tutto o parte del linguaggio di controllo della stampante e i dettagli
   del meccanismo di stampa non sono documentati. Tipicamente, il
   venditore metterà a disposizione un driver Windows e lo venderà
   allegramente solo ad utenti Windows; questo è il motivo per cui sono
   chiamate Winprinters. In alcuni casi il venditore metterà a
   disposizione anche driver per NT, OS/2, o altri sistemi operativi.

   Molte di queste stampanti non funzionano con il software libero.
   Alcune funzionano, e altre funzionano solo in parte (solitamente
   perché qualcuno ha effettuato un reverse engineering trovando i
   dettagli necessari per scrivere un driver). Si veda più sotto la lista
   delle stampanti supportate per avere dettagli su stampanti specifiche.

   Poche stampanti sono intermedie. Qualche modello della NEC, per
   esempio, implementa una forma semplificata del linguaggio standard PCL
   che permette ai software che usano PCL di stampare ad una definizione
   fino a 300dpi, ma solo NEC sa come ottenere 600dpi da queste
   stampanti.

   Se si possiede una di queste stampanti Windows, ci sono modi indiretti
   per usarla, ma sono piuttosto scomodi. Si veda la Sezione 12 in questo
   documento per ulteriori informazioni sulle stampanti Windows.
     _________________________________________________________________

5.1. Postscript

   Per quanto riguarda le stampanti che funzionano con il software
   libero, la scelta migliore è comprarne una che abbia il supporto
   nativo per PostScript nel firmware. Quasi tutto il software Un*x che
   produce output stampabile lo produce in PostScript, quindi ovviamente
   sarebbe carino avere una stampante che supporti direttamente
   PostScript. Sfortunatamente, il supporto PostScript è raro al di fuori
   dell'ambito delle stampanti laser, e alcune volte è un'aggiunta
   costosa.

   Il software Un*x, e l'industria editoriale in generale, ha
   standardizzato l'uso di Postscript come linguaggio di controllo delle
   stampanti. Questo è successo per varie ragioni:

   Tempismo
          Postscript è nato come parte di Apple Laserwriter, un perfetto
          compagno per Macintosh, il sistema largamente responsabile
          della rivoluzione dei desktop degli anni 80.

   È indipendente dal dispositivo
          I programmi Postscript possono essere usati per generare output
          per uno schermo a pixel, per uno schermo vettoriale, per un
          fax, o per quasi ogni tipo di meccanismo di stampa, senza che
          sia necessario cambiare il programma originale. L'output di
          Postscript sarà sempre lo stesso su ogni dispositivo
          Postscript, almeno entro i limiti delle capacità del
          dispositivo stesso. Prima della creazione dei PDF ci si
          scambiavano documenti complessi on-line come file Postscript.
          L'unica ragione per cui questo standard non ha "attaccato" è
          stato perché le macchine Windows solitamente non includono un
          visualizzatore Postscript, così Adobe specificò iperlink e
          compressione per Postscript, chiamò il risultato PDF, distribuì
          dei visualizzatori, e inventò un mercato per il suo strumento
          "distillatore" (le cui funzionalità sono offerte anche da
          ps2pdf e pdf2ps di Ghostscript).

   È un vero linguaggio di programmazione
          Postscript è un linguaggio di programmazione completo; può
          essere usato per scrivere software adatto a fare quasi tutto.
          In genere è utile per definire delle subroutine all'inizio dei
          programmi che riproducano più volte cose complesse per tutta la
          lunghezza di un documento, come un logo o una grande scritta
          "MINUTA" sullo sfondo. Ma non c'è ragione per non fare conti
          con un programma Postscript.

   È aperto
          Postscript è completamente descritto in una serie di libri
          pubblicamente disponibili (che si possono trovare in ogni buona
          libreria) e anche on-line presso
          http://partners.adobe.com/asn/developer/technotes/postscript.ht
          ml. Anche se Adobe l'ha inventato e ne fornisce
          l'implementazione commerciale dominante, altri venditori come
          Aladdin ne producono altre implementazioni codificate
          indipendentemente.
     _________________________________________________________________

5.2. Non Postscript

   In mancanza del (ingente) budget necessario per comprare una stampante
   Postscript, si può usare ogni stampante supportata da Ghostscript ,
   l'interprete libero per Postscript usato al posto dell'attuale
   supporto Postscript. Si noti che la maggior parte delle distribuzioni
   GNU/Linux possono vendere solo una versione di Ghostscript piuttosto
   antiquata a causa della licenza. Per fortuna solitamente ci sono dei
   pacchetti aggiornati di Ghostscript messi a disposizione nelle aree
   contrib di ogni distribuzione.

   Oggi Adobe usa un nuovo linguaggio per le stampanti chiamato
   "PrintGear". Sembra che sia un linguaggio in formato binario molto
   semplificato con un po' di eredità Postscript ma senza compatibilità
   Postscript, e non si sa se Ghostscript lo supporta. Ma alcune
   stampanti PrintGear sembrano supportare un altro linguaggio come PCL,
   e queste stampanti funzioneranno con GNU/Linux (se PCL è implementato
   nella stampante e non in un driver Windows).

   Allo stesso modo, Adobe offre un'implementazione Postscript basata
   sugli host chiamata PressReady. Funziona come Ghostscript nell'offrire
   supporto Postscript per una stampante non PostScript, ma ha lo
   svantaggio di funzionare solo sotto Windows.
     _________________________________________________________________

5.3. Quali stampanti funzionano?

   Ci sono diversi luoghi dove si può cercare per scoprire se una
   particolare stampante funzionerà. Il database di stampanti mantenuto
   cooperativamente dal Printing HOWTO vuole essere una lista esauriente
   dello stato del supporto per le stampanti. Ce n'è un riassunto più
   sotto; ci si assicuri di controllare on-line per maggiori dettagli e
   informazioni su quale driver usare.

   La scommessa più sicura per chi deve acquistare una nuova stampante è
   consultare la lista delle stampanti suggerite, che si concentrano
   intorno alle stampanti a getto d'inchiostro a colori e ai dispositivi
   laser monocromatici. Acquistarne una dai fornitori affiliati aiuterà a
   supportare questo documento e il sito web.

   La pagina delle stampanti compatibili di Ghostscript contiene una
   lista di alcune stampanti funzionanti, nonché collegamenti ad altre
   pagine.

   I gruppi di Google contengono centinaia di testimonianze sul
   "funziona" e "non funziona". Si provi con tutti e tre, dopo di che si
   controlli che la propria stampante sia presente nel database, così che
   sia elencata correttamente per il futuro.
     _________________________________________________________________

5.3.1. Lista di stampanti compatibili

   Questa sezione è un riassunto del database on-line. La versione
   on-line include specifiche sui dispositivi, note, informazioni sui
   driver, documentazione mantenuta dagli utenti, pagine web dei
   fabbricanti e script d'interfaccia per usare i driver con diversi
   sistemi di spool (inclusi LPR, LPRng, PDQ e CUPS). La versione on-line
   di questa lista è interattiva: stampanti possono essere aggiunte in
   ogni momento, quindi ci si assicuri di controllarla. Infine, se la
   stampante non è elencata, la si aggiunga!

   Questo elenco non è il vangelo; alcune volte vengono aggiunte
   informazioni errate, che vengono alla fine eliminate. Le voci che non
   sono state controllate sono marcate con un asterisco (*). Si verifichi
   tramite i gruppi di Google che una stampante sia stata utilizzata da
   qualcuno prima di comprarla basandosi su questo elenco.

   Le stampanti possono essere classificate in quattro tipi:

   Perfettamente funzionanti
          Stampanti perfette lavorano perfettamente: si possono
          utilizzare tutte le capacità della stampante, inclusi colore,
          piena risoluzione ecc. In pochi casi stampanti con modalità di
          "miglioramento della risoluzione" che non funziona vengono
          elencate come perfette; generalmente la differenza nella
          qualità di stampa è così piccola che non vale la pena di
          preoccuparsene.

   Generalmente funzionanti
          Si può stampare bene, ma potrebbero esserci piccole limitazioni
          di diverso tipo sia nella stampa che in altre funzioni.

   Parzialmente funzionanti
          Si può stampare, ma potrebbe essere impossibile farlo a colori,
          o possibile solo ad una risoluzione scarsa. Si veda l'elenco
          on-line per informazioni sulle limitazioni.

   Inutili
          Non si può stampare; tipicamente, questo è dovuto a mancanze
          nel driver e/o della documentazione su come scriverne uno.
          Stampanti inutili alcune volte vengono "promosse", sia quando
          qualcuno scopre che funzionano con un driver esistente, che
          quando qualcuno crea un nuovo driver, ma non si dovrebbe
          contare su questo.

   In ogni caso, considerato che queste informazioni sono fornite da
   dozzine di persone, non si può garantire che siano corrette; voci con
   un asterisco (*) sono particolarmente sospette. Comunque, i fatti
   possono essere facilmente corroborati dalle pagine web del driver o
   dai siti web dei produttori.

   E senza ulteriori indugi, ecco la lista delle compatibilità delle
   stampanti:

   Tabella 1. Stampanti supportate da Linux

   Fabbricante

   Perfettamente funzionanti

   Generalmente funzionanti

   Parzialmente funzionanti

   Paperweight

   Alps


   MD-1000
   MD-1300
   MD-1500*
   MD-2000
   MD-2010
   MD-2300
   MD-4000
   MD-5000
   MD-5500

   Anitech

   M24

   Apollo

   P-1200
   P-1220 Barbie
   P-1250
   P-2100
   P-2150
   P-2200
   P-2250
   P-2500
   P-2550
   P-2600
   P-2650

   Apple

   12/640ps
   Dot Matrix
   ImageWriter
   ImageWriter LQ
   LaserWriter 4/600*
   LaserWriter 16/600*
   LaserWriter IINTX*
   LaserWriter IIg
   LaserWriter Pro 630*
   LaserWriter Select 360*

   Color StyleWriter 1500
   Color StyleWriter 2200
   Color StyleWriter 2400
   Color StyleWriter 2500*
   ImageWriter II*
   LaserWriter NT
   StyleWriter 1200
   StyleWriter I
   StyleWriter II

   Avery

   Personal Label Printer+*

   Personal Label Printer

   Brother

   HL-4Ve
   HL-8
   HL-10V
   HL-10h
   HL-630
   HL-660
   HL-720
   HL-730
   HL-760
   HL-820
   HL-960*
   HL-1020
   HL-1040
   HL-1070*
   HL-1250
   HL-1260
   HL-1270N
   HL-1440
   HL-1450
   HL-1470N
   HL-1650
   HL-1660e
   HL-1670N
   HL-2060
   HL-2400CeN
   HL-2460
   HL-2460N
   HL-3400CN

   HJ-400
   HL-1030
   HL-1050
   HL-1060
   HL-1240

   DCP-1200
   HJ-100i*
   HL-4V*
   HL-6*
   HL-6V*
   HL-630/631*
   HL-641/645/655M*
   HL-665*
   HL-730/730DX*
   HL-1270*
   HL-P2000*
   M-1309*
   M-1324*
   M-1809*
   M-1809 Color*
   M-1824L*
   M-1824L Color*
   M-1909*
   M-1909 Color*
   M-1924L*
   M-1924L Color*
   M-4309*
   MC-3000
   MFC 7150C
   MFC-4000/4500/5500*
   MFC-4350
   MFC-6550MC
   MFC-6550MC/7550MC*
   MFC-8300
   MFC-9050
   MFC-9100c*
   MFC-9500
   MFC-9600
   MFC-P2000*
   MFC-P2500

   4550*
   MP-21C

   CItoh

   M8510

   CalComp

   Artisan 1023 penplotter*

   Canon

   BJ-5
   BJ-10e
   BJ-10v*
   BJ-15v*
   BJ-20
   BJ-30*
   BJ-35v*
   BJ-100
   BJ-200
   BJ-330
   BJC-70
   BJC-210
   BJC-250*
   BJC-250ex
   BJC-255SP
   BJC-265SP
   BJC-600*
   BJC-610
   BJC-620
   BJC-680J*
   BJC-800
   BJC-880J*
   BJC-4000
   BJC-4100
   BJC-4200
   BJC-4300*
   BJC-4400*
   BJC-4550*
   GP 335*
   GP 405
   LBP-4+
   LBP-4U
   LBP-8A1
   LBP-310*
   LBP-320 Pro*
   LBP-350*
   LBP-430
   LBP-1000*
   LBP-1260
   LBP-1760*
   LIPS-II+*
   LIPS-III*
   LIPS-IV*
   LIPS-IVv*

   BJC-50*
   BJC-55*
   BJC-80*
   BJC-85*
   BJC-240*
   BJC-1000*
   BJC-2000*
   BJC-2010*
   BJC-2100
   BJC-2110
   BJC-3000
   BJC-4310SP
   BJC-6000
   BJC-7004*
   BJC-8200*
   LBP-4sx
   S100
   S400*
   imageRunner 330s

   BJ F100*
   BJ F200*
   BJ F600*
   BJ F800*
   BJ F6000*
   BJ-30v*
   BJ-200e*
   BJ-220JCII*
   BJ-220JSII*
   BJ-230*
   BJ-300
   BJC-35v*
   BJC-35vII*
   BJC-50v*
   BJC-80v*
   BJC-210J*
   BJC-210SP
   BJC-240J*
   BJC-250J*
   BJC-400J*
   BJC-410J*
   BJC-420J*
   BJC-430J*
   BJC-430J Lite*
   BJC-430JD Lite*
   BJC-440J*
   BJC-455J*
   BJC-465J*
   BJC-600J*
   BJC-600e*
   BJC-610JW*
   BJC-620JW*
   BJC-700J*
   BJC-820*
   BJC-820J*
   BJC-4200 Photo*
   BJC-4304 Photo*
   BJC-4650*
   BJC-5500*
   BJC-5500J*
   BJC-6100*
   BJC-6200*
   BJC-6500*
   BJC-7000*
   BJC-7004 Photo*
   BJC-7100*
   BJC-8000*
   MultiPASS C2500*
   MultiPASS C3000*
   MultiPASS C3500*
   MultiPASS C5000*
   MultiPASS C5500
   S300
   S450*
   S500
   S600
   S630
   S800
   S4500*

   BJC-5000*
   BJC-5100
   BJC-8500*
   LBP-460*
   LBP-600
   LBP-660*
   LBP-800*
   Multipass L6000*
   S200

   Citizen

   ProJet II*
   ProJet IIc
   printiva600C
   printiva600U

   printiva700
   printiva1700

   Compaq


   IJ750*
   IJ1200

   IJ900

   IJ300*

   DEC

   DECWriter 500i*
   DECwriter 110i*
   DECwriter 520ic*
   LA50*
   LA70*
   LA75*
   LA75 Plus*
   LJ250
   LN03*
   LN07*

   1800*
   LN17*

   Daewoo


   DP-3630H*
   DP-7200H*
   DP-7400C*

   Dymo-CoStar

   ASCII 250*
   ASCII+*
   EL40*
   EL60*
   LabelWriter II*
   LabelWriter XL*
   LabelWriter XL+*
   SE250*
   SE250+*
   Turbo*

   Epson

   ActionLaser 1100*
   ActionLaser II*
   ActionPrinter 3250*
   AcuLaser C2000
   AcuLaser C2000PS
   AcuLaser C4000
   AcuLaser C4000PS
   AcuLaser C8500
   AcuLaser C8500PS
   CL 700
   CL 750
   Dot Matrix
   EM 900C
   EM 900CN
   EM 930C
   EM 930CN
   EPL-5200*
   EPL-5200+*
   EPL-5800
   EPL-5800PS
   EPL-5900
   EPL-5900PS
   EPL-7100
   EPL-N1600
   EPL-N1600PS
   EPL-N2050
   EPL-N2050+
   EPL-N2050PS
   EPL-N2050PS+
   EPL-N2120
   EPL-N2750
   EPL-N2750PS
   L-1000*
   LP 8000
   LP-2000*
   LP-3000*
   LP-7000*
   LP-7000G*
   LP-xx00*
   LQ-24
   LQ-500
   LQ-570+*
   LQ-850
   LQ-2550
   LX-1050*
   MC 7000
   MJ 6000C
   MJ 8000C
   MachJet*
   PM 700C
   PM 730C*
   PM 750C
   PM 760C*
   PM 770C
   PM 780C*
   PM 800C
   PM 820C
   PM 880C*
   PM 2000C
   PM 2200C*
   PM 3000C
   PM 3300C
   PM 3500C
   PM 7000C
   SQ 1170
   Stylus*
   Stylus 800*
   Stylus C20SX
   Stylus C20UX
   Stylus C40SX
   Stylus C40UX
   Stylus C41SX
   Stylus C41UX
   Stylus C42SX
   Stylus C42UX
   Stylus C60
   Stylus C61
   Stylus C62
   Stylus C70
   Stylus C80
   Stylus C82
   Stylus Color*
   Stylus Color 8 3
   Stylus Color 400
   Stylus Color 440*
   Stylus Color 460*
   Stylus Color 480
   Stylus Color 500
   Stylus Color 580
   Stylus Color 600
   Stylus Color 640
   Stylus Color 660
   Stylus Color 670*
   Stylus Color 680
   Stylus Color 740
   Stylus Color 760
   Stylus Color 777
   Stylus Color 800
   Stylus Color 850
   Stylus Color 860
   Stylus Color 880
   Stylus Color 900
   Stylus Color 980
   Stylus Color 1160
   Stylus Color 1500
   Stylus Color 1520
   Stylus Color 3000
   Stylus Color I
   Stylus Color PRO
   Stylus Photo
   Stylus Photo 700
   Stylus Photo 720*
   Stylus Photo 750
   Stylus Photo 780*
   Stylus Photo 790*
   Stylus Photo 810
   Stylus Photo 820
   Stylus Photo 830
   Stylus Photo 870*
   Stylus Photo 890*
   Stylus Photo 1200
   Stylus Photo 1270
   Stylus Photo 1280
   Stylus Photo 1290
   Stylus Photo 1290S
   Stylus Photo EX
   Stylus Photo EX3*
   Stylus Pro 7000
   Stylus Pro 7500
   Stylus Scan 2000
   Stylus Scan 2500

   EPL-5700
   MC 5000
   MJ 520C
   MJ 5100C
   PM 790PT*
   PM 850PT
   PM 4000PX
   PM 5000C
   Stylus Color 200*
   Stylus Color 300*
   Stylus Color II
   Stylus Color IIs
   Stylus Photo 785*
   Stylus Photo 825*
   Stylus Photo 875*
   Stylus Photo 895*
   Stylus Photo 915
   Stylus Photo 925
   Stylus Photo 950
   Stylus Photo 960
   Stylus Photo 2100
   Stylus Photo 2200
   Stylus Pro 5000
   Stylus Pro 5500
   Stylus Pro XL

   9-pin 136 Col*
   9-pin 80 Col*
   24-pin 136 Col*
   24-pin 80 Col*
   AP-800*
   AP-2250*
   AP-3250*
   AP-3260*
   AP-5000*
   AP-5500*
   ActionLaser 1000/EPL-5000*
   ActionLaser 1400*
   ActionLaser 1500/EPL-5200*
   ActionLaser 1600/EPL-5600*
   ActionLaser II/EPL-4000*
   DFX-5000*
   DFX-5000+*
   DFX-8000*
   DFX-8500*
   DLQ-2000 (360 dpi)*
   DLQ-3000+*
   EPL-7000/7100*
   EPL-8000/8100*
   EPL-N1200*
   EPL-N2000*
   EX-800*
   EX-1000*
   FX-286e*
   FX-850*
   FX-870*
   FX-880*
   FX-980*
   FX-1000*
   FX-1050*
   FX-1170*
   FX-1180*
   FX-2170*
   FX-2180*
   Generic 48 pin*
   Generic ESC2P*
   Generic ESC_P 24-J84*
   Generic ESC_P 24-J84C*
   JX-80*
   LQ-100*
   LQ-150*
   LQ-300*
   LQ-300 Color*
   LQ-400*
   LQ-510*
   LQ-550*
   LQ-570*
   LQ-670*
   LQ-850 (N9)*
   LQ-850+ (360 dpi)*
   LQ-860*
   LQ-870*
   LQ-950 (N9)*
   LQ-1010*
   LQ-1050*
   LQ-1050 (N9)*
   LQ-1050+ (360 dpi)*
   LQ-1060*
   LQ-1070*
   LQ-1070+*
   LQ-1170*
   LQ-2070*
   LQ-2080*
   LQ-2170*
   LQ-2180*
   LQ-2500*
   LX-100*
   LX-300*
   LX-300 Color*
   LX-400*
   LX-800*
   LX-810*
   LX-850*
   MC 2000
   MC 9000
   MC 10000
   MJ-500C*
   MJ-510C*
   MJ-700V2C*
   MJ-800C*
   MJ-900C*
   MJ-910C*
   MJ-3000C*
   MJ-3000CU*
   MJ-5000C*
   MJ-5100C*
   MX-80 (w_GRAFTRAX 80)*
   PM 950C
   PM 9000C
   PM 10000
   PX 7000
   PX 9000
   SQ-850*
   SQ-2500*
   SQ-2550*
   Stylus 200*
   Stylus 300*
   Stylus 400*
   Stylus 500*
   Stylus 800+*
   Stylus 820*
   Stylus 1000*
   Stylus 1500*
   Stylus Color 600Q*
   Stylus Photo 2000P
   Stylus Pro*
   Stylus Pro 7600
   Stylus Pro 9000
   Stylus Pro 9500
   Stylus Pro 9600
   Stylus Pro 10000
   Stylus Pro XL+*
   TLQ-4800*
   TSQ-4800*

   AcuLaser C1000
   EPL-5500W*
   EPL-5700L
   EPL-5800L
   EPL-5900L
   Stylus CX3200

   Fujitsu

   1200*
   2400*
   3400*
   FMLBP2xx Page Printer*
   FMPR*
   PrintPartner 10V*
   PrintPartner 16DV*
   PrintPartner 20W*
   PrintPartner 8000*

   Generic

   PostScript Printer


   9-pin 136 Col*
   9-pin 80 Col*
   24-pin 136 Col*
   24-pin 80 Col*
   48 pin*

   GoldStar


   GLP-1450*
   GLP-2050*
   GLP-5750*

   HP

   2000C
   2500C
   2500CM
   2563
   Business Inkjet 2200
   Business Inkjet 2230
   Business Inkjet 2250
   Business Inkjet 2250TN
   Business Inkjet 2280
   Business Inkjet 2600
   Business Inkjet 3000
   Color Inkjet Printer CP1160
   Color Inkjet Printer CP1700
   Color LaserJet 2500
   Color LaserJet 4500
   Color LaserJet 4550
   Color LaserJet 4600
   Color LaserJet 5500
   Color LaserJet 8550GN
   DesignJet 3500CP
   DesignJet 5500ps
   DesignJet ColorPro CAD
   DeskJet
   DeskJet 200
   DeskJet 310
   DeskJet 320
   DeskJet 340C
   DeskJet 400
   DeskJet 450
   DeskJet 500
   DeskJet 500C
   DeskJet 505J Plus
   DeskJet 510
   DeskJet 540C
   DeskJet 550C
   DeskJet 600
   DeskJet 610C
   DeskJet 610CL
   DeskJet 612C
   DeskJet 630C
   DeskJet 632C
   DeskJet 640C
   DeskJet 648C
   DeskJet 656C
   DeskJet 660C
   DeskJet 670C
   DeskJet 670TV
   DeskJet 672C
   DeskJet 680C
   DeskJet 682C
   DeskJet 690C
   DeskJet 692C
   DeskJet 693C
   DeskJet 694C
   DeskJet 695C
   DeskJet 697C
   DeskJet 710C
   DeskJet 712C
   DeskJet 720C
   DeskJet 722C
   DeskJet 810C
   DeskJet 812C
   DeskJet 815C
   DeskJet 816C
   DeskJet 820C
   DeskJet 825C
   DeskJet 830C
   DeskJet 832C
   DeskJet 840C
   DeskJet 841C
   DeskJet 842C
   DeskJet 843C
   DeskJet 845C
   DeskJet 850C
   DeskJet 855C
   DeskJet 870C
   DeskJet 880C
   DeskJet 882C
   DeskJet 890C
   DeskJet 895C
   DeskJet 916C
   DeskJet 920C
   DeskJet 930C
   DeskJet 932C
   DeskJet 933C
   DeskJet 934C
   DeskJet 935C
   DeskJet 940C
   DeskJet 948C
   DeskJet 950C
   DeskJet 952C
   DeskJet 955C
   DeskJet 957C
   DeskJet 959C
   DeskJet 960C
   DeskJet 970C
   DeskJet 975C
   DeskJet 980C
   DeskJet 990C
   DeskJet 995C
   DeskJet 1000C
   DeskJet 1100C
   DeskJet 1120C
   DeskJet 1125C
   DeskJet 1200C
   DeskJet 1220C
   DeskJet 1600C
   DeskJet 1600CM
   DeskJet 3820
   DeskJet 5550
   DeskJet 5551
   DeskJet 6122
   DeskJet 6127
   DeskJet Plus
   DeskJet Portable
   LaserJet
   LaserJet 2
   LaserJet 2 w/PS
   LaserJet 2P
   LaserJet 2P Plus
   LaserJet 3
   LaserJet 3D
   LaserJet 3P w/ PCL5
   LaserJet 3P w/PS
   LaserJet 4
   LaserJet 4 Plus
   LaserJet 4L
   LaserJet 4M
   LaserJet 4ML
   LaserJet 4P
   LaserJet 4Si
   LaserJet 4V
   LaserJet 4V/4LJ Pro*
   LaserJet 5
   LaserJet 5L
   LaserJet 5M
   LaserJet 5MP
   LaserJet 5P
   LaserJet 5Si
   LaserJet 6
   LaserJet 6L
   LaserJet 6MP
   LaserJet 6P
   LaserJet 1100
   LaserJet 1100A
   LaserJet 1200
   LaserJet 1220
   LaserJet 2100
   LaserJet 2100M
   LaserJet 2200
   LaserJet 3300 MFP
   LaserJet 3310 MFP
   LaserJet 3320 MFP
   LaserJet 3320N MFP
   LaserJet 4000
   LaserJet 4050
   LaserJet 4100
   LaserJet 5000
   LaserJet 5100
   LaserJet 8000
   LaserJet 8100
   LaserJet 8150
   LaserJet 9000
   LaserJet Plus
   Mopier 240
   Mopier 320
   OfficeJet D125
   OfficeJet G55
   OfficeJet Pro 1150C
   OfficeJet Pro 1170C
   OfficeJet Pro 1175C
   OfficeJet R45
   OfficeJet R60
   OfficeJet R65
   OfficeJet R80
   PSC 370
   PSC 380
   PSC 500
   PSC 750
   PSC 2110
   PSC 2150
   PaintJet
   PaintJet XL
   PaintJet XL300
   PhotoSmart 7150
   PhotoSmart 7350
   PhotoSmart 7550
   PhotoSmart P100
   PhotoSmart P130
   PhotoSmart P230
   PhotoSmart P1000
   PhotoSmart P1100
   PhotoSmart P1115
   PhotoSmart P1215
   PhotoSmart P1218
   PhotoSmart P1315
   e-printer e20

   Color LaserJet 5
   DesignJet 230
   DesignJet 350C
   DesignJet 650C
   DesignJet 750C
   DesignJet 750C Plus
   DeskJet 350C
   DeskJet 420C
   DeskJet 520
   DeskJet 560C
   LaserJet 2D
   LaserJet 3200
   LaserJet 3200m
   LaserJet 3200se
   LaserJet 3330 MFP
   OfficeJet
   OfficeJet 300
   OfficeJet 330
   OfficeJet 350
   OfficeJet 500
   OfficeJet 600
   OfficeJet 625
   OfficeJet 635
   OfficeJet 710
   OfficeJet D135
   OfficeJet D145
   OfficeJet D155
   OfficeJet G85
   OfficeJet G95
   OfficeJet K60
   OfficeJet K80
   OfficeJet LX
   OfficeJet T45
   OfficeJet T65
   OfficeJet V40
   PSC 950
   PSC 2210

   C LaserJet 4500*
   C LaserJet 4550*
   C LaserJet 8500*
   C LaserJet 8550*
   Color LaserJet*
   Color LaserJet 5/5M*
   Color LaserJet 5000
   DesignJet 5500
   LaserJet 2P Plus*
   LaserJet 3P*
   LaserJet 3Si*
   LaserJet 4 Plus/4M Plus*
   LaserJet 4/4M*
   LaserJet 4LJ Pro*
   LaserJet 4P/4MP*
   LaserJet 4PJ*
   LaserJet 4Si/4Si Mx*
   LaserJet 4V/4MV*
   LaserJet 5/5M*
   LaserJet 5P/5MP*
   LaserJet 5Si/5Si Mx/5Si Mopier*
   LaserJet 6L/6L Gold*
   LaserJet 6P/6MP*
   LaserJet 500 Plus*
   LaserJet 1000
   LaserJet 2000*
   LaserJet 4000/4000N*
   LaserJet 4000T/TN*
   LaserJet Classic*
   LaserJet Plus*
   LaserJet Series 2*
   ThinkJet

   DeskJet 3320
   DeskJet 3420
   LaserJet 3100
   LaserJet 3150
   PhotoSmart

   Hansum


   BJ-330H*
   HS-650C*

   Heidelberg

   Digimaster 9110*

   Hitachi

   DDP 70 (with MicroPress)*

   IBM

   3853 JetPrinter*
   4019*
   4029 10P*
   4303 Network Color Printer*
   Execjet 4072*
   Infoprint 12*
   Page Printer 3112*
   ProPrinterII*


   4029 030 LaserPrinter 10*
   5183 Portable Printer*
   Infoprint 20*
   Infoprint 21*
   Infoprint 32*
   Infoprint 40*
   Infoprint 70*
   Infoprint 2085*
   Infoprint 2105*
   Network Printer 12*
   Network Printer 17*
   Network Printer 24*

   Imagen

   ImPress*

   Infotec

   4651 MF*

   Jepcom


   JP-B330*

   Kodak

   DigiSource 9110*
   IS 70 CPII*

   Kyocera

   F-800T*
   F-1010*
   F-3300
   FS-600*
   FS-600 (KPDL-2)*
   FS-680*
   FS-800*
   FS-1000*
   FS-1000+
   FS-1010
   FS-1200
   FS-1700+*
   FS-1750*
   FS-1800
   FS-1900
   FS-3750*
   FS-3800
   FS-5900C*
   FS-9100DN
   FS-9500DN
   P-2000*

   FS-3500*

   F-800A/F-800*
   F-820*
   F-1000A/F-1000*
   F-1200S*
   F-1800A/F-1800*
   F-2000A/F-2200S*
   F-3000A/F-3300*
   F-5000A/F-5000*
   FS-400A/FS-400*
   FS-850A/FS-850*
   FS-1500A/FS-1500*
   FS-1550+*
   FS-1550A/FS-1550*
   FS-1600+*
   FS-1600A/FS-1600*
   FS-1700*
   FS-1800/FS-1800N*
   FS-3400+*
   FS-3400A/FS-3400*
   FS-3500A/FS-3500*
   FS-3600+*
   FS-3600A/FS-3600*
   FS-3700*
   FS-3700+*
   FS-3800/FS-3800N*
   FS-5500A/FS-5500*
   FS-5800C*
   FS-6300*
   FS-6500/6500+*
   FS-6700*
   FS-6900*
   FS-7000*
   FS-7000+*
   FS-9000*
   LS 6550*

   LaserMaster


   LM 1000

   Lexmark

   4039 10plus
   E210
   Optra C710
   Optra Color 40
   Optra Color 45
   Optra Color 1200
   Optra Color 1275
   Optra E*
   Optra E+*
   Optra E310
   Optra E312*
   Optra Ep*
   Optra K 1220
   Optra M410
   Optra M412
   Optra R+*
   Optra S 1250*
   Optra S 1855*
   Optra Se 3455*
   Optra T610
   Optra T612
   Optra T614
   Optra T616
   Optra W810
   Valuewriter 300*
   Z52
   Z53

   1020 Business*
   3000*
   3200
   4076*
   Z31
   Z42*

   1000
   1020*
   1100
   2030*
   2050
   2070
   5000
   5700*
   7000*
   7200
   Winwriter 400*
   X73
   Z11
   Z12
   Z22*
   Z32
   Z43*
   Z51
   Z82

   Winwriter 100*
   Winwriter 150c*
   Winwriter 200*
   Z13
   Z23
   Z33

   Minolta

   PagePro 6*
   PagePro 6e*
   PagePro 6ex*
   PagePro 8*
   PagePro 1100


   PagePro 8L*

   PagePro 6L
   PagePro 1100L

   Mitsubishi

   CP50 Color Printer*

   NEC

   MultiWriter*
   P2X*
   PC-PR150*
   PC-PR201*
   PC-PR1000*
   PC-PR2000*
   PICTY180*
   PinWriter P6*
   PinWriter P6 plus*
   PinWriter P7*
   PinWriter P7 plus*
   PinWriter P60*
   PinWriter P70*
   Pinwriter P20*
   SilentWriter LC 890*
   Silentwriter 95f*
   Silentwriter2 S60P*
   Silentwriter2 model 290*
   SuperScript 660i*
   SuperScript 1800
   SuperScript 4600N*


   SuperScript 100C*
   SuperScript 150C*
   SuperScript 650C*
   SuperScript 750C*
   SuperScript 860*
   SuperScript 870*
   SuperScript 1260*

   SuperScript 610plus*
   SuperScript 660*
   SuperScript 660plus*

   Oce

   3165*
   9050*

   Okidata

   ML 320
   ML 321
   ML 380*
   Microline 600CL*
   Microline 620CL*
   Microline IBM compatible 9 pin*
   OL400
   OL400e
   OL400ex
   OL600e*
   OL610e/PS
   OL800
   OL810e/PS
   OL810ex
   OL830Plus
   Okipage 6e
   Okipage 6ex*
   Okipage 8c
   Okipage 8p
   Okipage 10e
   Okipage 10ex
   Okipage 12i
   Okipage 14ex
   Okipage 20DXn

   DP 5000
   Microline 182
   OL400w*
   OL410e
   OL610e/S
   Okijet 2500*
   Okipage 4w
   Okipage 4w+*
   Okipage 6w
   Okipage 8w
   Okipage 8w Lite
   Okipage 8z
   Super 6e

   ML-184 Turbo*
   ML-192*
   ML-193*
   ML-320*
   ML-320 Turbo*
   ML-321*
   ML-321 Turbo*
   ML-380*
   ML-390*
   ML-390 Turbo*
   ML-391*
   ML-391 Turbo*
   ML-393*
   ML-393C*
   ML-395B*
   ML-395C*
   ML-520*
   ML-521*
   ML-590*
   ML-591*
   ML-3410*
   ML-4410*
   Microline 192+*
   OL410ex*
   OL810e*
   OL820*
   OL1200*
   OkiPage 6e/6ex*
   OkiPos 425D*
   OkiPos 425S*

   Okijet 2010

   Olivetti

   JP350S*
   JP470*
   PG 306*


   JP450

   Others


   BJ-230*
   HDMF NONE-FF*
   LG GIP 3000Q_3000+*
   VP-6570K*

   PCPI

   1030*

   Panasonic

   KX-P1123*
   KX-P1124*
   KX-P1150*
   KX-P2023*
   KX-P2135*
   KX-P2150*
   KX-P4410*
   KX-P4450*
   KX-P5400*
   KX-P8420*
   KX-P8475*

   KX-P2123*
   KX-P6150*

   KX-P1124i*
   KX-P1180*
   KX-P1180i*
   KX-P1191*
   KX-P1624*
   KX-P1654*
   KX-P1695*
   KX-P2124*
   KX-P2130*
   KX-P2180*
   KX-P2624*
   KX-P3123*
   KX-P3124*
   KX-P3624*
   KX-P6500*
   KX-PS600*
   KX-Pxxxx 24-pin*

   KX-P6100*
   KX-P6300 GDI*
   KX-P8410*

   Pentax

   PocketJet 200
   PocketJet II

   Printrex


   820 DL*

   QMS

   2425 Turbo EX*
   LPK-100*
   magicolor 2+*

   ps-810*


   magicolor 2

   Qnix


   PICASSOI*
   PICASSOII*
   QBJ-3630E*

   Raven


   LP-410

   Ricoh

   4081*
   4801*
   6000*
   Aficio 220*
   Aficio 700
   Aficio AP2000
   RPDL I Laser Printer*
   RPDL II Laser Printer*
   RPDL III Laser Printer*
   RPDL IV Laser Printer*

   Aficio 401*


   Aficio Color 2206*
   Afico FX10*

   Sambo


   PageJet P1*
   PageJet P2*
   Stylus 800H+*
   Stylus 1000H+*

   Samsung

   ML-85*
   ML-200
   ML-210
   ML-1000
   ML-1010
   ML-1020
   ML-1200
   ML-1210
   ML-1220
   ML-4500
   ML-4600*
   ML-5000a*
   ML-5080
   ML-6000/6100*
   ML-6040
   ML-7000/7000P/7000N*
   ML-7050*
   QL-5100A*
   QL-6050*
   SI-630A*

   ML-85G
   QL-85G

   MJ 630V*
   SLB-3106G*
   SP-2417HW*
   SP-2421HW*
   SP-2433HW*
   SP-4017*
   SP-4021*

   ML-5050G*
   SF/MSYS/MJ-4700/4800/4500C*

   Seiko

   SpeedJET 200*

   SLP*
   SLP 120*
   SLP 220*
   SLP EZ30*
   SLP Plus*
   SLP Pro*
   SLP-100*
   SLP-200*
   SLP-240*

   Sharp

   AR-161*

   AJ-1800
   AJ-1805
   AJ-2000
   AJ-2005


   AJ-2100

   Sindo


   ExecJet 4072*
   ExecJet 4076*

   Sony


   IJP-V100

   Star

   JJ-100*
   LC24-100*
   LS-04
   NL-10*

   LC 90*
   LC24-200*
   LaserPrinter 8
   NX-1001*
   StarJet 48*

   LC 24-15 Multi-Font*
   LC 24-20 Multi-Font*
   LC 24-200 Colour*
   LC-15 Multi-Font*
   LC-20*
   LC-100 Colour*
   NX-1040R*
   NX-1500*
   NX-2415*
   NX-2420R*
   NX-2430*
   Starjet SJ-144*
   XB 24-200 Multi-Font*
   XB 24-250 Multi-Font*
   XB-2420*
   XB-2425*
   XR-1020*
   XR-1520*
   ZA-200 Multi-Font*
   ZA-250 Multi-Font*

   WinType 4000*

   Tally

   MT908*

   Tektronix

   3693d color printer, 8-bit mode*
   4693d color printer, 2-bit mode*
   4693d color printer, 4-bit mode*
   4695*
   4696*
   4697*
   Phaser 780
   Phaser 850*
   Phaser IISX*
   Phaser PX*

   Phaser 350*

   Xerox

   2700 XES
   3700 XES
   4045 XES*
   DocuPrint 4508
   DocuPrint C20
   DocuPrint C55*
   DocuPrint N17
   DocuPrint N32*
   DocuPrint N4512
   DocuPrint N4512 PS
   Document Centre 400*

   Able 1406
   DocuPrint C6*
   DocuPrint M750*
   DocuPrint M760*
   DocuPrint P8e
   DocuPrint P12*
   DocuPrint P1202*

   DocuPrint C8*
   DocuPrint C11*
   DocuPrint XJ6C
   DocuPrint XJ8C
   Document Homecentre
   WorkCentre 450cp*
   WorkCentre 470cx*
   WorkCentre XK35c

   DocuPrint P8*
   WorkCentre 385
   WorkCentre XD120f*
   WorkCentre XE80
   WorkCentre XE90fx
   * Questa voce non è stata controllata.
     _________________________________________________________________

5.4. Come comprare una stampante

   È difficile selezionare una stampante al giorno d'oggi; ci sono molti
   modelli tra cui scegliere. Ecco alcuni suggerimenti per l'acquisto:

   Costo
          Si ottiene ciò per cui si paga. Quasi tutte le stampanti sotto
          i 200-300 dollari possono stampare ragionevolmente bene, ma il
          costo della stampa per pagina è molto alto. Per alcune
          stampanti, bastano una o due cartucce per eguagliare il costo
          di una stampante nuova! Questo è vero in particolare per le
          stampanti a getto d'inchiostro economiche. Allo stesso modo,
          stampanti economiche non dureranno molto a lungo. Le stampanti
          meno care, per esempio, hanno un MTBF di circa tre mesi;
          ovviamente non sono adatte per un uso intenso.

   Stampanti a getto d'inchiostro
          Le testine delle stampanti a getto d'inchiostro si intaseranno
          irrimediabilmente con l'andare del tempo, perciò la possibilità
          di rimpiazzare in qualche modo la testina è una buona
          funzionalità. Le testine delle stampanti a getto d'inchiostro
          sono costose, e le cartucce integrate testine/inchiostro
          costano dieci volte tanto (!) rispetto alle cartucce di solo
          inchiostro, perciò la possibilità di rimpiazzare la testina
          solo quando necessario è un'altra buona funzionalità. Le
          stampanti Epson Stylus tendono ad avere testine fisse, e le HP
          Deskjet tendono ad averle integrate nelle cartucce. Le Canon
          hanno cartucce in tre parti con contenitori indipendenti per
          l'inchiostro; a me piace questo modello. D'altra parte, le
          cartucce HP non sono più molto costose, e la HP produce una
          linea nel complesso migliore; Canon spesso è la terza scelta
          dal punto di vista della qualità di stampa. Le stampanti Epson
          Stylus e quelle a getto d'inchiostro della HP sono le più
          supportate al momento dal software libero.

   Laser
          Le stampanti laser consumano tamburo e toner, più una piccola
          barra che pulisce il toner. I modelli più economici uniscono
          toner e tamburo in una grande cartuccia; il loro utilizzo è più
          costoso. I migliori modelli per chi stampa molto sono quelli
          che usano semplice polvere di toner o che almeno separano
          cartucce di toner e tamburo.

   Fotografie
          Le migliori fotografie a colori si ottengono da stampanti a
          tono continuo che usano un aloide d'argento unito ad un
          approccio a laser per produrre --sorpresa!--fotografie reali.
          Dato che queste stampanti costano migliaia di dollari,
          Ofoto.com offre lavori stampa-a-stampa a buon mercato. I
          risultati sono sbalorditivi: nemmeno la miglior stampante a
          getto d'inchiostro è paragonabile.

          Le stampe fotografiche più abbordabili sono quelle ottenute dai
          dispositivi di sublimazione del colore, come alcuni della serie
          Alps (trasferimento termico di inchiostro asciutto o
          sublimazione del colore), o delle poche stampanti fotografiche
          a livello utente della Sony. Sfortunatamente i dispositivi Alps
          sono poco supportati dal software libero (l'unico resoconto
          conosciuto di un utente Alps che utilizza il driver Ghostscript
          parla di immagini a strisce e granulose), e anche così non è
          chiaro se l'opzione di sublimazione del colore sia supportata.
          Non si sa se i dispositivi Sony funzionino.

          Le più comuni stampanti a getto d'inchiostro specializzate
          nella stampa di fotografie solitamente presentano processi a 6
          o perfino a 7 colori CMYK. Tutte le stampanti specializzate in
          fotografie sono costose da usare; o finirà il colore blu e si
          dovrà sostituire tutta la cartuccia, oppure il ricambio per un
          singolo colore costerà un occhio della testa. Anche la carta
          speciale è costosa; il costo delle fotografie ad alta qualità
          così ottenute potrebbe superare un dollaro americano per
          pagina. Si veda anche la sezione sulla stampa fotografica più
          avanti, e le sezioni sulla messa a punto del colore (se così si
          può chiamare) con GhostScript.

          Ultimamente le stampanti laser a colori sono diventate più
          economiche, il che le rende dispositivi interessanti per i
          resoconti a colori. Il costo per pagina delle stampanti laser a
          colori è più economico di quello delle stampanti a getto
          d'inchiostro. Comunque possono essere poco adatte per stampare
          le fotografie. Un giorno le stampanti laser a colori
          diventeranno comuni e rimpiazzeranno quelle noiose stampanti
          laser monocromatiche.

   Velocità
          La velocità è proporzionale alla potenza del processore,
          all'ampiezza di banda e generalmente al costo della stampante.
          Le stampanti più veloci saranno quelle di rete di tipo
          Postscript con processori interni potenti. Stampanti a livello
          utente dipenderanno in parte dalla velocità di resa di
          GhostScript, che può essere influenzata usando una macchina ben
          equipaggiata; pagine piene di colori, in particolare, possono
          consumare grandi quantità di memoria. Le cose andranno bene
          finché si avrà questa quantità di memoria.

   Moduli
          Volendo stampare su moduli copiativi, ci vorrà una stampante
          d'impatto; alcune società producono ancora stampanti ad aghi,
          molte delle queli emulano i modelli Epson tradizionali e
          lavorano bene.

   Etichette
          Sono supportate due linee di stampanti per etichette: i modelli
          Dymo-Costar e i Seiko SLP. Altri modelli potrebbero funzionare
          oppure no. La Avery fornisce etichette adesive in formato
          8.5x11 di diverse misure che si possono far passare attraverso
          una stampante.

   Plotting
          Disegni di grande formato sono supportati ai nostri giorni da
          stampanti a getto d'inchiostro gigantesche; la scelta più
          popolare è HP. Stampanti a getto d'inchiostro di media
          grandezza (11x17) vengono usate comunemente per stampe più
          piccole. Il plotting di questo tipo viene fatto tramite i
          linguaggi RTL, HP-GL e HP-GL/2, che sono semplici linguaggi
          vettoriali proprietari di HP, generati direttamente dal
          software dell'applicativo.
     _________________________________________________________________

6. Software di spool

   Fino a poco tempo fa, la scelta per gli utenti di software libero era
   semplice: tutti usavano lo stesso vecchio lpd tirato fuori parola per
   parola dal codice BDS Net-2. Ancora oggi alcuni venditori forniscono
   questo software: ma le cose stanno cambiando. Sistemi di tipo SVR4,
   incluso Solaris, includono un pacchetto di spool di stampa
   completamente diverso, incentrato su lpsched.

   Oggi c'è un buon numero di sistemi tra cui scegliere. Sono tutti
   descritti sotto; si leggano le descrizioni per fare la propria scelta.
   CUPS è una buona scelta ed è raccomandato per la maggior parte degli
   utenti; ha un eccellente supporto per Postscript, offre supporto IPP,
   un'interfaccia web e diverse altre funzioni. Per ambienti di lavoro
   basati principalmente su stampanti di rete Postscript, un'altra scelta
   è rappresentata da un programma front-end come GPR con LPRng; può
   manipolare direttamente le opzioni PPD ed ha un'interfaccia carina.
     _________________________________________________________________

6.1. CUPS

   CUPS oggi è diventato il sistema di stampa predefinito di molte
   distribuzioni. Cosa rende CUPS diverso dal resto? CUPS è
   un'implementazione di IPP (Internet Printing Protocol), un nuovo
   standard che tenta di risolvere alcune delle mancanze del vecchio
   protocollo LPD. Inoltre CUPS supporta LPD, SMB e AppSocket (JetDirect)
   con funzionalità ridotte. L'implementazione di CUPS è stata sviluppata
   da Michael Sweet di Easy Software Products; CUPS è distribuito sotto
   GPL. Dato che è un nuovo protocollo, IPP ha diversi vantaggi sul
   vecchio protocollo LPD:

     * lo scheduler è un server web HTTP 1.1 e mette anche a disposizione
       un'interfaccia web
     * opzioni di stampa, si può perfino chiedere al dispositivo IPP
       quali opzioni e formati di documenti supporta.
     * controllo sull'accesso che limita i lavori di stampa, i controlli
       sui lavori di stampa e i comandi di amministrazione del sistema
       che arrivano da e vanno verso specifici computer e stampanti.
       L'accesso a CUPS può essere controllato, come con Apache, usando
       le direttive Allow e Deny.
     * supporto proxy (dato che IPP usa HTTP)
     * supporto per la cifratura
     *

   Oggi tutti i maggiori venditori di sistemi operativi supportano
   attivamente IPP, così come i maggiori venditori di stampanti. IPP è il
   protocollo di stampa predefinito in Windows 2000 (sarà necessario
   installare IIS) e potrebbe essere una scelta migliore per gli utenti
   di software libero rispetto al protocollo proprietario SMB. Tuttavia,
   su Windows 2000 è possibile scaricare automaticamente solo il driver
   di stampa di SMB e non quello di IPP: questa potrebbe essere una
   ragione per gli amministratori di rete con molti client Windows per
   scegliere la condivisione di stampanti con SMB usando Samba e CUPS.

   CUPS include diverse funzioni molto buone, tra cui una gestione delle
   opzioni ragionevole; interfacce web, grafiche e a linea di comando; e
   un sistema di filtraggio basato su mime con un forte supporto per
   PostScript.

   Parecchi set di PPD possono essere usati con CUPS:

   Incorporati
          L'installazione predefinita di CUPS contiene PPD generici
          validi per le stampanti Epson ad aghi a 9 e 24 pin, per le
          Epson Stylus Color, per le stampanti Stylus Photo, per le HP
          Laserjet, per le stampanti DeskJet e per le stampanti per
          etichette Dymo. Si potranno quindi usare molti modelli di
          stampanti, ma senza l'accesso alle caratteristiche più
          specifiche dei modelli.

   Foomatic
          Foomatic è in grado di generare un PPD utilizzabile con ogni
          driver di stampante che sia completamente dettagliato nel
          database di linuxprinting.org. Il PPD verrà usato con uno
          script di backend chiamato foomatic-rip, che usa driver liberi.
          Al momento si può trovare supporto per un numero piuttosto
          ampio di stampanti. Foomatic è la base per il supporto per
          stampanti non Postscript in molte distribuzioni GNU/Linux. CUPS
          e Foomatic stanno diventando abbastanza popolari e attualmente
          rappresentano il sistempa di stampa raccomandato nella maggior
          parte delle situazioni.

   PPD per Postscript
          CUPS può usare direttamente i file PPD forniti dai venditori
          per le stampanti Postscript. Spesso questi file sono offerti
          insieme ai driver di Windows per la stampante, o si possono
          trovare sul sito web del venditore della stampante. Dovendo
          scegliere fra un driver per Windows 9x e uno per Windows
          NT/W2K, si scelga quello per Windows NT. Anche Adobe
          distribuisce file PPD per molte stampanti Postscript.

   ESP Print Pro
          Easy Software Products, Inc. vende CUPS insieme ad una raccolta
          di driver proprietari. Benché non siano software libero, questi
          driver fanno funzionare molte stampanti comuni. L'insieme dei
          driver è piuttosto costoso se paragonato al costo di un'unica
          stampante supportata, ma sicuramente è utile. Il pacchetto
          include strumenti grafici front-end.

   Gimp-Print
          I drivers Gimp-Print sono driver di alta qualità per stampanti
          Canon, Epson, Lexmark, e PCL che possono essere usati con
          Ghostscript, CUPS, Foomatic e Gimp.

   OMNI
          Omni è un pacchetto fatto da IBM, che ora contiene supporto per
          più di 450 stampanti. Il driver per stampanti OMNI è
          distribuito da IBM sotto licenza LGPL.

   HPIJS
          HPIJS supporta circa 250 stampanti HP fornendo un'eccellente
          qualità di stampa (al momento solo tramite Foomatic). Dalla
          versione 1.0.1, la clausola "Solo prodotti hp" è stata rimossa
          dalla licenza e i driver sono distribuiti sotto licenza BSD.

   Il programma di terze parti XPP (si veda Figura 4) offre
   un'interfaccia grafica per le funzionalità utente di CUPS molto
   gradevole, inclusa una meravigliosa interfaccia per le opzioni da
   indicare al momento della stampa (mostrate in Figura 5). Per
   informazioni sull'uso di XPP, si veda la Sezione 3.4.2.
     _________________________________________________________________

6.2. LPD

   LPD, il demone di stampa BDS Unix originale, è stato per anni lo
   standard di Unix. È disponibile per ogni tipo di Unix, e offre un set
   di funzioni piuttosto minimale nato dalle necessità dell'era dei
   sistemi timesharing. Malgrado la sua storia alquanto particolare, è
   ancora utile oggi come spooler di stampa di base. Per renderlo
   veramente utile con le stampanti moderne sarà necessario molto lavoro
   extra, creando script per i filtri complementari e programmi
   front-end. Ma esiste, e fa tutto il lavoro.

   LPD è anche il nome dato al protocollo di stampa di rete dalla RFC
   1179. Questo protocollo di rete non è usato solo dal demone LPD, ma
   essenzialmente da ogni server di stampa in rete, da ogni stampante di
   rete, e da qualunque altro spooler di stampa presente; LPD è il minimo
   comun denominatore della stampa via rete.

   LPRng(si veda la Sezione 6.3) è un'implementazione di gran lunga
   migliore rispetto a quella regolare del modello di base di LPD; se si
   deve usare LPD, si consideri l'uso di LPRng. Non sono necessari molti
   riti voodoo per fargli fare quello che si vuole, e sono riti ben
   documentati. LPRng è essenzialmente un'implementazione avanzata di LPD
   con un grado di sicurezza migliore e con più funzioni.

   C'è un buon numero di sorgenti di LPD in giro. Si potrebbe sostenere
   che il possessore ufficiale sia qualche tipo di BDS Unix, ma volenti o
   nolenti chiunque può aver implementato cambiamenti che si sarebbero
   quindi incrociati in modi sconosciuti, così che è difficile dire con
   esattezza quale LPD si stia usando. Tra gli LPD disponibili con più
   facilità ce n'è uno offerto da GNUlpr con modifiche minori che rende
   l'interfaccia utente molto più flessibile. GNUlpr permette di
   specificare le opzioni da linea di comando usando il flag -o; le
   opzioni vengono poi passate attraverso i filtri, in modo analogo alle
   funzioni offerte da un buon numero di venditori Unix tradizionali, e
   simile a (anche se incompatibile con) il meccanismo dell'opzione -z di
   LPRng.

   Se si decide di usare LPD, il modo migliore è tramite un front-end. Ce
   ne sono diversi tra cui scegliere; KDEPrint, GPR (si veda la Sezione
   3.4) e XPP sono forse i migliori. Ne esistono altri; fatemi avere
   informazioni al riguardo.
     _________________________________________________________________

6.3. LPRng

   Alcuni venditori GNU/Linux mettono a disposizione LPRng,
   un'implementazione molto meno vecchia dello spool di stampa LPD. LPRng
   è più facile da amministrare per ampie installazioni (come dire: più
   di una stampante, qualunque stampante seriale, o qualche particolare
   stampante di rete non-lpd) e il suo codice di base è fatto meno
   terribilmente a casaccio di quello fornito con lpd. Può perfino
   pretendere in tutta onestà di essere sicuro: non contiene binari SUID,
   e supporta l'autenticazione tramite PGP o Kerberos.

   LPRng include anche alcune impostazioni di esempio adatte per
   stampanti di rete comuni (principalmente HP LaserJet) che includono
   alcune capacità di autenticazione. LPRng usa più o meno lo stesso
   modello di filtri di base di BDS lpd, quindi il supporto LPD offerto
   dal sito web linuxprinting.org si può applicare anche a LPRng. Questo
   può aiutare ad usare driver di software libero con molte stampanti.

   LPRng è distribuito sia sotto licenza GPL che sotto licenza Artistic.
     _________________________________________________________________

6.4. PPR

   PPR è uno spooler incentrato su Postscript che include una rudimentale
   capacità di analisi dalla quale trae diverse belle funzioni. Include
   buone capacità di autenticazione, un buon supporto per Appletalk, SMB
   e per client LPD, e una migliore gestione degli errori rispetto a lpd.
   PPR, come ogni altro spooler, può usare Ghostscript per gestire
   stampanti non Postscript.

   PPR venne scritto, ed è attualmente usato, al Trinity College. La
   licenza è di tipo BSD; libera per ogni uso ma è obbigatorio citare i
   realizzatori.
     _________________________________________________________________

6.5. Altri

6.5.1. PDQ

   PDQ sta per "Print, Don't Queue" ("Stampa, non accodare" n.d.t.), e il
   modo in cui lavora riflette questo modello. Il sistema di stampa di
   PDQ non è incentrato su un demone, ma incorpora una pratica sintassi
   di configurazione del driver che include la capacità di dichiarare
   opzioni di stampa, e uno strumento ad interfaccia grafica o a linea di
   comando per gli utenti tramite il quale specificare le opzioni; gli
   utenti usano un finestra di dialogo per specificare risoluzione,
   duplexing, tipo di carta, ecc.

   Usare tutti i filtri come utente porta un certo numero di vantaggi: i
   problemi di sicurezza derivanti da Postscript vengono superati, lavori
   di stampa di file multipli LaTeX possono essere stampati
   effettivamente come file dvi, e così via.

   PDQ non è esente da difetti: in particolare, processa l'intero lavoro
   di stampa prima di mandarlo alla stampante. Questo significa che, per
   grandi lavori, PDQ potrebbe semplicemente essere inutilizzabile: si
   potrebbe arrivare ad avere centinaia di mega copiati avanti e indietro
   sul disco. Ancora peggio, per driver lenti come quelli di qualità
   migliore a getto d'inchiostro, il lavoro di stampa non verrà eseguito
   finché Ghostscript e il driver non avranno finito di processarlo.
   Questo potrebbe succedere anche minuti dopo l'invio.

   PDQ ha però dei vantaggi; è un modello semplice, che non impedisce il
   controllo da parte dell'utente. E il normale percorso di controllo non
   incrocia i confini della sicurezza, così che non soffre dei bug di
   sicurezza che vengono sempre trovati in altri sistemi. E per finire, è
   leggero.

   Comunque PDQ non è attivamente sviluppato. Un nuovo curatore sarà il
   benvenuto.
     _________________________________________________________________

6.5.2. GNUlpr

   GNUlpr iniziò la sua vita come lavoro sponsorizzato da HP a VA Linux.
   Sfortunatamente, GNUlpr ora è praticamente morto.
     _________________________________________________________________

6.5.3. CPS

   Il Coherent Printing System è un set di script in Perl chiamati "lpr",
   "lpd", "lprm", e "lpq". Rimpiazzano i programmi con lo stesso nome
   normalmente forniti con i sistemi Linux.
     _________________________________________________________________

6.5.4. CEPS

   Il Cisco Enterprise Print System fu sviluppato da Damian Ivereigh
   quando era sysadmin alla Cisco. Fece molto più di ciò per cui era
   stato assunto, sviluppando un nuovo sistema di stampa per migliorare
   un sacco di problemi amministrativi. Cisco autorizzò il rilascio del
   software liberamente sotto licenza GNU General Public License.
   L'installazione di CEPS comunque sarà vantaggiosa solo per grandi
   organizzazioni.
     _________________________________________________________________

7. Come funziona

   Per far funzionare correttamente il sistema di stampa, occorre prima
   capire come funziona il software di spool. Tutti i sistemi funzionano
   essenzialmente allo stesso modo, benché l'ordine esatto possa variare
   leggermente, e alcuni sistemi saltano uno o due passi:

   Figura 10. Illustrazione di spool

   [spool-illustration.png]

    1. L'utente invia un lavoro di stampa con le opzioni selezionate. I
       dati del lavoro di stampa sono solitamente, ma non sempre,
       Postscript.
    2. Il sistema di spool copia il lavoro di stampa e le opzioni lungo
       la rete verso la stampante.
    3. Il sistema di spool aspetta che la stampante sia disponibile.
    4.
    5. Il sistema di spool applica le opzioni selezionate dall'utente al
       lavoro di stampa, e ne traduce i dati nel linguaggio nativo della
       stampante, che solitamente non è Postscript. Questo passaggio si
       chiama filtraggio; la maggior parte del lavoro per far funzionare
       il tutto sta nel far funzionare il filtraggio giusto.
    6. Il lavoro è finito. A questo punto solitamente il sistema di spool
       si occupa di fare un po' di pulizia. Se si fosse verificato
       qualche errore, lo spooler lo notificherà in qualche modo
       all'utente (per esempio, via mail).
     _________________________________________________________________

7.1. CUPS

   Per stampare con CUPS, si possono usare sia comandi BSD (si veda la
   Sezione 5.3.1) che System V, rendendone l'uso molto semplice per chi
   ha precedenti esperienze con altri sistemi.

   Figura 11. Illustrazione semplificata di CUPS

   [cups-overview.png]

   Inizialmente a CUPS mancava un backend LPD, che ovviamente fu aggiunto
   velocemente. Attualmente sono disponibili backend almeno per IPP, LPD,
   SMB, JetDirect, USB, Netatalk, per stampanti su porta parallela e
   seriali. Se ne possono trovare altri sulla rete o si possono scrivere
   da sé.

   C'è solo una manciata di driver incorporati che permettono di stampare
   con molte stampanti, ma probabilmente non alla massima risoluzione
   possibile. Si può aggiungere a CUPS un file PPD per un driver
   Postscript, ma se si vuole stampare alla miglior qualità con una nuova
   stampante HP Deskjet non si avrà fortuna: per questo viene in aiuto
   Foomatic, che può essere usato in combinazione con CUPS. Foomatic usa
   un filtro di CUPS chiamato foomatic-rip per fare il suo lavoro.
   Foomatic-rip usa file PPD per descrivere le capacità della stampante,
   perfino per stampanti non Postscript. CUPS + Foomatic è attualmente il
   metodo di stampa raccomandato: alcune distribuzioni Linux già lo
   usano, e questo numero è destinato a salire.

   Lo scheduler di CUPS non solo accetta lavori di stampa, è anche
   un'interfaccia di amministrazione via web. Attualmente si possono
   aggiungere/cancellare stampanti, cancellare lavori di stampa, far
   partire/fermare stampanti. In una prossima release sarà possibile
   anche spostare i lavori di stampa.
     _________________________________________________________________

7.2. LPD

   Lpd sta per Line Printer Daemon, e si riferisce, a seconda del
   contesto, sia al demone che all'intera raccolta di programmi
   responsabili dello spooling di stampa. Questi sono:

   lpd 
          Il demone di spooling. Una sua istanza controlla l'intero
          sistema, e un'altra è attiva per ciascuna stampante in fase di
          stampa.

   lpr
          Il comando utente per la stampa. Lpr contatta lpd ed inserisce
          un nuovo lavoro di stampa nello spool.

   lpq
          Elenca i lavori di stampa presenti in una coda.

   lpc
          Il comando di controllo di lpd. Con lpc si possono attivare,
          disattivare, riordinare, ecc. le code di stampa.

   lprm 
          lprm permette di rimuovere un lavoro di stampa dalla coda.

   Quindi, come si mette insieme il tutto? Questo è quello che succede:

    1. Quando il sistema viene avviato viene eseguito lpd, che resta in
       attesa di connessioni e si occupa di gestire le code di stampa.
    2. L'utente invia un lavoro di stampa con il comando lpr o, in
       alternativa, con un front-end come GPR, PDQ, ecc. Lpr contatta lpd
       attraverso la rete e gli fornisce sia il file dell'utente (che
       contiene i dati da stampare) che un file di controllo (che
       contiene le opzioni dell'utente).
    3. Quando la stampante è disponibile, l'istanza principale di lpd
       produce un'istanza figlio lpd che si occupa del lavoro di stampa.
    4. L'istanza figlio lpd esegue il filtro/i adatto per quel lavoro di
       stampa (come specificato dall'attributo if del file /etc/printcap)
       ed invia i dati risultanti alla stampante.

   Il sistema lp era stato progettato quando le stampanti erano per lo
   più stampanti di linea, cioè adatte a stampare principalmente in ascii
   piano. È possibile andare incontro a tutte le necessità di stampa
   odierne con lpd usando diverse opzioni nel filtro if (più o meno;
   molti altri sistemi fanno un lavoro migliore).

   Ci sono molti programmi utili per scrivere filtri LPD, tra i quali:

   gs
          Ghostscript è un interprete Postscript basato sugli host (come
          dire un Raster Image Processor o RIP). Accetta Postscript in
          input, e può produrre in output dati in diversi linguaggi o
          formati grafici. Ghostscript verrà trattato in la Sezione 10.

   ppdfilt
          ppdfilt è la versione indipendente di un componente CUPS. Si
          occupa di filtrare Postscript, eseguendo alcune trasformazioni
          di base (pagine per foglio, copie multiple, ecc.) e
          aggiungendovi le opzioni dichiarate dall'utente secondo un file
          PPD (Postscript Printer Definition) solitamente incluso con le
          stampanti Postscript.

          ppdfilt funziona meglio se usato insieme ad un sistema LPD in
          grado di accettare opzioni (come GNUlpr, o LPRng) e con un
          filtro che trasformi le opzioni fornite dagli utenti nel
          comando ppdfilt equivalente. VA Linux e HP forniscono un
          pacchetto con un filtro rhs modificato che fa esattamente
          questo; produce buoni risultati se si possiede una stampante
          Postscript. Si veda la Sezione 8.2.2 per informazioni su questo
          sistema.

   ps2ps
          ps2ps è una utilità inclusa con Ghostscript. Filtra Postscript
          in un Postscript maggiormente razionalizzato, se possibile ad
          un livello di linguaggio più basso. È utile se si possiede una
          vecchia stampante Postscript; il software più moderno produce
          Postscript moderno.

   mpage
          mpage è un'utilità che accetta testo o Postscript e genera
          output composto da diverse immagini di pagine su ogni foglio.
          Attualmente ci sono diversi programmi che lo fanno, inclusi
          enscript, nenscript e a2ps .

   a2ps 
          a2ps, che sta per any-to-ps, è un programma che accetta diversi
          tipi di file e li converte in Postscript per la stampa.
     _________________________________________________________________

8. Come configurare il tutto

   Per configurazioni comuni si può probabilmente ignorare completamente
   questa sezione; meglio passare direttamente, invece, a la Sezione 9,
   o, meglio ancora, alla documentazione del venditore. La maggior parte
   delle distribuzioni GNU/Linux fornisce uno o più strumenti adatti
   anche agli inesperti che permettono di ottenere dalle stampanti più
   comuni tutto quello qui descritto.

   Se lo strumento fornito dal venditore non funziona, o si vuole avere
   la capacità di controllare interattivamente le opzioni di stampa, si
   possono usare altri sistemi. APS Filter è un buon sistema; configura
   le code LPD ed effettua i filtraggi con molta facilità su ogni tipo di
   sistema Unix.

   Si possono anche usare le interfacce di sistema per la stampa dal sito
   web linuxprinting.org per connettere driver liberi con diversi sistemi
   di spool. Completato il progetto, queste interfacce offriranno le
   migliori funzionalità: tutti i tipi di driver liberi saranno
   supportati, ci saranno opzioni impostabili dagli utenti, e saranno
   supportati i più comuni sistemi di spool. Attualmente le più moderne
   distribuzioni usano il sistema foomatic. Tuttavia, alcune
   distribuzioni possono includere una versione leggermente sorpassata di
   foomatic.
     _________________________________________________________________

8.1. Configurare CUPS

   Se si sta usando un client con CUPS ed è già stato configurato un
   server CUPS, installare la stampante sul client non potrebbe essere
   più facile: non c'è niente da fare. Attraverso il broadcasting, il
   client dovrebbe trovare il server CUPS e configurare automaticamente
   le stampanti installate. Questa è una delle funzioni di CUPS più
   apprezzate in una grande rete.

   Configurare manualmente le stampanti con CUPS è altrettanto facile.
   Per chi è alle prime armi con CUPS e/o con la stampa Unix il modo
   migliore di procedere probabilmente è usare l'interfaccia web. Per chi
   deve configurare molte stampanti, sarà probabilmente più veloce usare
   la linea di comando.

   L'indirizzo predefinito da cui si accede all'interfaccia web di CUPS è
   http://hostname:631/admin. Se necessario, la porta può essere cambiata
   nel file cupsd.conf.

   La sintassi generica per aggiungere una stampante da linea di comando
   è lpadmin -p printer -E -v device -m ppd. Lpadmin con l'opzione -p
   aggiunge o modifica una stampante. Le stampanti vengono salvate nel
   file L'opzione -x cancella la stampante indicata. Si legga la pagina
   di manuale di lpadmin per conoscere le opzioni disponibili.

   Esempio 3. Esempi da linea di comando
/usr/sbin/lpadmin -p testpr1 -E -v socket://192.168.1.9 -m deskjet.ppd
/usr/sbin/lpadmin -p testpr2 -E -v parallel:/dev/lp0 -m laserjet.ppd
/usr/sbin/lpadmin -x testpr1

   Si possono trovare maggiori informazioni sulla configurazione delle
   stampanti e sulle opzioni nella documentazione CUPS. Il Software
   Administrators Manual contiene tutto quello che serve sapere per
   configurare stampanti con CUPS.
     _________________________________________________________________

8.2. Configurare LPD

   Fino a poco tempo fa le distribuzioni GNU/Linux fornivano LPD. Questa
   sezione descrive una configurazione di base per LPD; le sezioni
   successive dettaglieranno la creazione di filtri complessi e la
   configurazione per la rete.
     _________________________________________________________________

8.2.1. Configurazione di base di LPD

   La configurazione di base di lpd permette di ottenere un sistema in
   grado di accodare i file in una coda di stampa ed inviarli alla
   stampante. Questa configurazione non pone alcuna attenzione al fatto
   che la stampante sia in grado di interpretare i file, e probabilmente
   non si otterranno stampe di qualità. Ma da qualche parte si deve
   partire.

   Per aggiungere una coda di stampa a lpd, si deve aggiungere un
   elemento in /etc/printcap, e creare la nuova directory di spool in
   /var/spool/lpd.

   Un elemento di /etc/printcap è qualcosa del genere:
# LOCAL djet500
lp|dj|deskjet:\
        :sd=/var/spool/lpd/dj:\
        :mx#0:\
        :lp=/dev/lp0:\
        :sh:

   Questo definisce uno spool chiamato lp, dj o deskjet, il cui spool
   viene eseguito nella directory /var/spool/lpd/dj, senza nessun limite
   sulla dimensione massima dei file stampabili, che stampa sul
   dispositivo /dev/lp0, e che non usa una pagina di intestazione (con il
   nome di chi ha eseguito la stampa e altre informazioni).

   Adesso si legga la pagina di manuale di printcap .

   Quello sopra è un esempio molto semplice, ma c'è un tranello: se si
   manda in stampa un file che la Deskjet non può capire si ottengono
   strani risultati. Per esempio, inviando un normale file di testo Unix
   ad una deskjet si ottengono delle righe nuove interpretate
   letteralmente, cioè:
Questa è la prima riga.
        Questa è la seconda riga.
                Questa è la terza riga.

   e così via. Mandando in stampa un file PostScript si ottiene una bella
   lista di comandi PostScript con il solito effetto a gradinata, ma
   niente di più utile.

   Ovviamente è necessario qualcosa in più, e questo è l'obiettivo del
   filtraggio. I lettori più attenti della pagina di manuale di printcap
   avranno notato gli attributi if e of dello spool. Bene, if, cioè il
   filtro di input, è quello che serve in questo caso.

   Scrivendo un piccolo script chiamato filtro, che aggiunga l'accapo
   prima delle nuove righe, l'effetto a gradinata sarà eliminato. A
   questo scopo si deve aggiungere una riga if nell'elemento del printcap
   illustrato prima:
lp|dj|deskjet:\
        :sd=/var/spool/lpd/dj:\
        :mx#0:\
        :lp=/dev/lp0:\
        :if=/var/spool/lpd/dj/filter:\
        :sh:

   Un semplice filtro potrebbe essere:
#!perl
# The above line should really have the whole path to perl
# La linea precedente dovrebbe contenere il percorso completo a perl
# This script must be executable: chmod 755 filter
# Questo script deve essere eseguibile: chmod 755 filter
while(<STDIN>){chomp $_; print "$_\r\n";};
# You might also want to end with a form feed: print "\f";
# Si potrebbe voler finire con un form feed: print "\f";

   In questo modo otteniamo uno spool su cui possiamo stampare normali
   file di testo Unix ed ottenere delle pagine leggibili. (Si, ci sono
   milioni di modi migliori per scrivere questo filtro, ma pochi
   altrettanto illustrativi. Ci si senta incoraggiati a farlo in modo più
   efficiente.)

   L'unico problema è che stampare solo testo piano non è esattamente il
   massimo: certamente sarebbe meglio poter stampare anche PostScript o
   altri tipi di testo formattato o grafica. Naturalmente è possibile
   farlo, ed è facile. Il metodo da usare è semplicemente un'estensione
   del filtro presentato sopra per risolvere il problema della gradinata.

   Questo tipo di filtro viene detto filtro magico. Non ci si deve
   preoccupare di scriverne uno da soli a meno che si stampino cose molto
   strane: ce ne sono di ottimi a disposizione, e molti hanno strumenti
   di configurazione interattivi facili da usare. Si dovrà semplicemente
   scegliere un filtro adatto:

   foomatic-rip
          foomatic-rip è un filtro che usa dati tratti dal database di
          stampanti fornito da LinuxPrinting.org. Supporta essenzialmente
          tutti i driver liberi, inclusi i normali driver di Ghostscript,
          i driver Uniprint, e altri programmi di filtri assortiti.
          foomatic-rip lavora con CUPS, LPRng, LPD, GNUlpr, PPR, PDQ e
          senza spool.

   apsfilter
          apsfilter è un filtro creato per essere usato con un gran
          numero di Unix. Supporta essenzialmente tutti i driver
          Ghostscript. Lavora anche con diversi tipi di LPD, inclusi BSD
          e LPRng.

   RHS-Printfilters
          RHS-Printfilters è un filtro creato da Red Hat. È stato incluso
          dalla versione 4 di Red Hat Linux, come backend per printtool,
          il loro semplice strumento di configurazione delle stampanti ad
          interfaccia grafica.

          Il sistema di filtri rhs è costruito su un database ASCII
          incluso nel pacchetto. Questo elenco supporta molti driver
          Ghostscript e Uniprint, ma nessun driver che faccia da filtro.
          Inoltre i filtri risultanti non forniscono supporto simile a
          quello che si può ottenere tramite le opzioni controllabili
          dall'utente.

          Lo strumento printtool crea un file di configurazione chiamato
          postscript.cfg nella directory di spool. All'interno di questo
          file, scritto in stile shell, ogni impostazione è una
          variabile. In casi straordinari, si possono fare cambiamenti
          direttamente in questo file, cosa che lo strumento printtool
          non permetterebbe di fare; solitamente si tratterà di
          specificare un driver Ghostscript particolare, o un file PPD
          per la versione VA di rhs-printfilters.

          VA Linux ha aggiunto alcune migliorie al sistema
          rhs-printfilters per conto di HP. Con la versione giusta, è
          possibile selezionare opzioni per stampanti Postscript
          controllabili tramite file Adobe PPD. Questo sistema è
          descritto in la Sezione 8.2.2.

   C'è un trabocchetto però: le versioni più vecchie di lpd non usano il
   filtro if per le stampanti di rete, le più recenti invece si (benché
   spesso senza argomenti). La versione di LPD contenuta nelle
   distribuzioni più recenti di GNU/Linux e FreeBSD lo usa; molti Unix
   commerciali invece forniscono ancora LPD in una versione che non lo
   usa. Si veda la sezione sulla stampa in rete più avanti in questo
   documento per maggiori informazioni. Avendo solo stampanti locali
   questo problema non esiste.
     _________________________________________________________________

8.2.2. LPD per stampanti PostScript

   Mentre molte versioni di LPD non sono in grado di usare PostScript
   (senza dare altre possibilità agli utenti), VA Linux ha modificato LPD
   e il software di filtraggio di Red Hat per supportare le stampanti
   PostScript piuttosto bene. Il progetto è stato chiamato GNUlpr perché
   è loro intenzione donare il codice al progetto gnu.
     _________________________________________________________________

8.2.2.1. Come funziona

   Il sistema VA usa file Postscript Printer Definition, o PPD, che sono
   forniti dai produttori delle stampanti e dichiarano le opzioni
   disponibili per la stampante insieme al codice Postscript necessario
   per attivarle. Con il sistema VA, il normale schema di lavoro di LPD
   funziona in maniera leggermente diversa:

    1. L'utente può specificare le opzioni usando il flag -o. Per
       esempio, volendo stampare su un lucido si può specificare -o
       MediaType:Transparency. In alternativa, si possono specificare le
       opzioni tramite una finestra di dialogo usando il front-end GPR;
       si possono vedere alcuni screenshot di GPR in la Sezione 3.4.3.
    2. LPR invia le opzioni a LPD come attributo esteso nel file di
       controllo di LPD.
    3. Una versione modificata del pacchetto rhs-printfilters assegna le
       opzioni estese ad una variabile d'ambiente, e usa ppdfilt per
       aggiungerle ai dati da stampare.
     _________________________________________________________________

8.2.2.2. Come ottenere ed installare i pacchetti

   I pacchetti RPM, o gli archivi compattati dei sorgenti, si possono
   ottenere dal sito web del progetto su SourceForge. Per i dettagli
   sull'installazione, si consulti il micro-HOWTO. In sostanza, dovrà
   essere disinstallata completamente la versione di Red Hat di
   printtool, di lpd e di rhs-printfilters, e installata invece la
   versione VA, più ppdfilt, gpr, e poche altre utilità.

   Sarà necessario avere anche i file PPD per la propria stampante
   Postscript. I file PPD solitamente sono abbastanza facili da trovare.
   VA Linux e HP distribuiscono file PPD per molti modelli di Laserjet:
   altri venditori forniscono file PPD per le proprie stampanti, e Adobe
   distribuisce file PPD per molte stampanti.

   Al momento molti di questi file sono leggermente difficili da
   installare. Ma verranno creati strumenti di installazione basati sulla
   libreria di configurazione delle stampanti libprinterconf, che abilita
   sia l'autoriconoscimento che la configurazione di rhs-printfilter, sia
   per stampanti di rete che per stampanti locali.

   Nota

   È possibile usare GPR da solo, senza l'LPD modificato o anche senza
   rhs-printfilters. GPR può essere compilato con tutto quello che è
   necessario per effettuare direttamente stampe di tipo Postscript, il
   che potrebbe essere una soluzione più semplice, adatta a chi non avrà
   mai bisogno di stampare usando lpr direttamente.
     _________________________________________________________________

8.2.2.3. Controllo delle opzioni Postscript

   Dopo aver impostato un sistema LPD in grado di utilizzare il supporto
   Postscript fornito da VA (GNUlpr), le opzioni della stampante possono
   essere controllate in due modi:

   Tramite un'interfaccia grafica
          Per usare GPR, assicurarsi prima di tutto di aver specificato
          il file PPD corretto. Dopo di che le opzioni della stampante
          saranno disponibili nel pannello "Avanzate". Le opzioni ppdfilt
          di base saranno disponibili nel pannello "Comuni".

   Tramite la linea di comando
          lpr supporta l'opzione -o. È possibile specificare qualunque
          coppia di opzioni/valori dal file PPD della stampante con -o.
          Per esempio, si consideri questa proposizione contenuta in un
          file PPD:

*OpenUI *PrintQuality/Print Quality: PickOne
*DefaultPrintQuality: None
*OrderDependency: 150 AnySetup *PrintQuality
*PrintQuality None/Printer Setting: ""
*PrintQuality Quick/QuickPrint:  "<< /DeviceRenderingInfo ...
*PrintQuality Normal/Normal: "<< /DeviceRenderingInfo << /...
*PrintQuality Pres/Presentation: "<< /DeviceRenderingInfo ...
*PrintQuality Image/1200 Image Quality: "<< /DeviceRenderi...
*CloseUI: *PrintQuality

          Possibili valori per l'opzione PrintQuality sono Quick,
          Normal,Pres, o Image. Si potrebbe dare un comando del tipo:

% lpr -o PrintQuality:Image
 file.ps

          Un certo numero di opzioni sono comuni a tutte le stampanti, e
          possono essere usate in aggiunta a quelle del proprio file PPD.
          Tra queste:

        page-ranges
                È possibile specificare una serie di pagine da stampare.
                Per esempio, page-ranges:2-3.

        page-set
                È possibile stampare solo pagine pari o dispari. Per
                esempio, page-set:odd.

        number-up
                È possibile stampare pagine multiple su un foglio. Per
                esempio, number-up:2.

          Altre opzioni sono dettagliate nella pagina di manuale di
          ppdfilt.
     _________________________________________________________________

8.2.3. Permessi sui file

   A grande richiesta è inclusa una lista dei permessi su alcuni file
   interessanti. Ci sono modi migliori per ottenere lo stesso risultato,
   idealmente usando solo eseguibili SGID e non rendendo tutto SUID root,
   ma il mio sistema era configurato così dopo l'installazione e
   funziona. (Sinceramente, se il venditore non è in grado di fornire un
   lpd che funzioni saranno guai).
-r-sr-sr-x   1 root     lp    /usr/bin/lpr*
-r-sr-sr-x   1 root     lp    /usr/bin/lprm*
-rwxr--r--   1 root     root  /usr/sbin/lpd*
-r-xr-sr-x   1 root     lp    /usr/sbin/lpc*
drwxrwxr-x   4 root     lp    /var/spool/lpd/
drwxr-xr-x   2 root     lp    /var/spool/lpd/lp/

   Lpd deve essere eseguito da root, in modo che possa connettersi alle
   porte riservate di lp. Dovrebbe probabilmente diventare UID lp.lp o
   qualcosa del genere dopo la connessione, ma non credo che lo faccia:
   il che è un altro motivo per evitare l'uso di BSD LPD.
     _________________________________________________________________

8.3. Installazioni su larga scala

   Con installazioni su larga scala si intendono reti che includono più
   di due stampanti o macchine, e che hanno necessità speciali. Ecco qui
   sotto alcuni suggerimenti.

   CUPS supporta alcune funzioni interessanti che ne fanno una buona
   scelta per grandi reti. Per nominarne alcune, le classi di stampa, il
   controllo degli accessi e la configurazione automatica per i client.

   Se si usa LPD per ambienti su scala davvero molto grande, già la sola
   distribuzione delle informazioni relative a printcap/filtri diventa un
   problema; il Cisco Enterprise Print System fa riferimento proprio a
   questo e può essere un buon punto di partenza o una soluzione completa
   a seconda delle necessità. Le funzioni native di LPRng possono
   supportare molto bene ambienti di medie o grandi dimensioni.

     * Ogni stampante dovrebbe avere un singolo punto di controllo,
       tramite il quale un amministratore possa mettere in pausa,
       riordinare o redirigere la coda di stampa. Per implementarlo, si
       dovrebbe far stampare tutti su un server locale, che metterà in
       coda i lavori di stampa e li indirizzerà alla stampante corretta.
       Per grandi campus o reti distribuite, ci vorrà un server o un
       altro sottosistema adatto per la rete per ogni edificio.
     * Usare CUPS o LPRng, almeno sui server; il sistema BDS LPD è troppo
       bacato perché si possa farne un uso "reale". Ma non ci si deve
       basare solo su queste parole; si dovrebbero testare diversi
       spooler per scoprire quale è più adatto alle proprie necessità.
     * I client non dovrebbero avere un'unica configurazione di stampa.
       CUPS permette di configurare automaticamente i client appartenenti
       alla stessa sottorete. Si potrebbe perfino configurare CUPS
       (BrowsePoll) per sondare dei server presenti su altre sottoreti e
       trovare stampanti disponibili. Queste funzioni limitano il numero
       di configurazioni che devono essere fatte su un client. Per
       implementare una configurazione di stampa uniforme usando LPRng,
       si usi la sintassi estesa di printcap per ottenere un printcap
       adatto per essere usato dappertutto. CEPS permette di farlo
       creando in cima un database leggero e distribuibile al posto dei
       file printcap tradizionali.
     * Non si dovrebbe dare alle code di stampa un nome corrispondente al
       modello o alla marca della stampante; sarebbe meglio usare un nome
       più indicativo come l'ubicazione (piano2_nw) o le capacità
       (colore_trasparenza). Fra tre anni, quando una stampante si
       romperà, potrà essere rimpiazzata con una di marca diversa o con
       un modello diverso senza creare confusione.
     * Pubblicare una pagina web che mostri informazioni dettagliate su
       ogni stampante, inclusa l'ubicazione, le capacità e così via,
       considerando di mostrare le code di stampa e includendo un bottone
       per la rimozione dei lavori di stampa dalla coda. Ambienti di rete
       complessi saranno ingestibili per gli utenti in mancanza di
       un'adeguata documentazione.
     * Su sistemi Windows e Apple, si usino dappertutto i driver
       specifici per la piattaforma (Samba supporta il meccanismo
       automatico di scaricamento dei driver di Windows) o, meglio
       ancora, si usino dappertutto driver Postscript generici. Mai
       mischiare le cose; gli elaboratori di testo più primitivi spesso
       producono un output diverso quando viene cambiato il driver di
       stampa installato; gli utenti non possono avere a che fare con un
       output diverso a seconda di quale coppia di client/stampante
       usano.
     * Per grandi volumi di stampa acquistare, se possibile, una
       stampante adatta. Se si deve rispettare un budget, si sfruttino le
       capacità di LPRng di usare una coda di stampa su più stampanti, o
       le classi di stampa di CUPS assegnando una babysitter; le
       stampanti sono dispositivi meccanici complessi che spesso si
       inceppano e finiscono la carta in configurazioni di questo tipo.
     * Non è più necessario attaccare le stampanti direttamente alle
       postazioni di lavoro; "server di stampa" di tipo Ethernet oggi
       costano meno di $100. La capacità di localizzare stampanti ovunque
       all'interno di una rete è un grande miglioramento rispetto alla
       necessità di localizzare una stampante vicino ad un host; le
       stampanti possono essere poste in punti centrali e pratici.
     * Usare trappole SNMP o altri sistemi di controllo/allarme a vostra
       disposizione. Qualcuno dovrebbe essere incaricato di controllare e
       sistemare stampanti senza inchiostro o carta. Per effettuare
       operazioni di controllo su stampanti SNMP può essere usato Npadmin
       (si veda la Sezione 11.10.1).
     _________________________________________________________________

8.4. Autenticazione

   Una normale installazione di LPD non aiuta molto con l'autenticazione.
   È possibile specificare il nome di un file di autenticazione tramite
   l'attributo af del file printcap, ma in questo modo l'attributo verrà
   semplicemente passato come argomento al filtro if. È compito nostro
   far si che il filtro if scriva entrate appropriate nel file di
   autenticazione, e di processarlo successivamente (il formato
   tradizionale è utile principalmente per stampanti in linea, e non è
   banale trasformarlo in Perl, dunque non c'è motivo di conservarlo).
   Usando come filtro il programma foomatic-rip si dovranno fare dei
   cambiamenti, dato che il programma richiede che gli venga indicato un
   file di configurazione come nome di file di "autenticazione".

   CUPS mette a disposizione l'autenticazione per pagina, passando i
   lavori di stampa attraverso il filtro pstops. Questo file si aspetta
   input Postscript. Se si passano lavori di stampa "raw", questi saranno
   sempre contati come una pagina. Questo significa che l'autenticazione
   non funzionerà stampando da Windows con il suo driver di stampa
   nativo.

   Ghostscript mette a disposizione l'operatore PageCount che può essere
   usato per fare il conto delle pagine che compongono un lavoro di
   stampa; sostanzialmente, verranno aggiunte alcune linee postscript
   alla fine del lavoro di stampa che serviranno ad aggiungere una voce
   nel file di autenticazione; il miglior esempio si trova nel file
   unix-lpr.sh presente nel sorgente di Ghostscript.

   L'implementazione dell'autenticazione di unix-lpr scrive su un file
   dall'interprete Ghostscript, ed è quindi incompatibile con l'opzione
   raccomandata -dSAFER. Una soluzione migliore potrebbe essere
   un'interrogazione alla stampante tramite un comando PJL dopo ogni
   lavoro di stampa, o la scrittura di uno qualche riga di codice
   postscript che stampi il conto delle pagine sullo standard output,
   dove possa essere catturato senza dover essere scritto in un file.

   Lo spooler di stampa di LPRng include un'implementazione di
   autenticazione specifica per HP, che interroga la stampante tramite
   PJL. Questa tecnica dovrebbe funzionare per quasi tutte le stampanti
   PJL, Postscript o SNMP con le quali si ha una comunicazione a doppio
   senso.

   Avendo una stampante di rete che supporta SNMP, si può usare il
   programma npadmin per richiedere un PageCount dopo ogni lavoro di
   stampa. Dovrebbe funzionare correttamente per tutti i lavori di
   stampa. Si veda la sezione la Sezione 11.10.1 per maggiori
   informazioni su npadmin.
     _________________________________________________________________

9. Soluzioni commerciali

   Questa sezione è, per definizione, incompleta. Ci si senta liberi di
   inviare dettagli della distribuzione preferita.

   Ci sono diversi pacchetti di terze parti creati per facilitare la
   configurazione delle stampanti sotto Unix. Se ne parla nella la
   Sezione 8; per riferimenti si può consultare la sottosezione relativa
   a software di spool particolari.
     _________________________________________________________________

9.1. Red Hat

   La RedHat fornisce uno strumento di amministrazione dotato di
   interfaccia grafica chiamato printtool che può aggiungere stampanti
   remote e stampanti locali. Permette di scegliere tra le stampanti
   supportate dal Ghostscript e i dispositivi su cui stampare, e quindi
   installa una coda di stampa in /etc/printcap ed usa un programma di
   filtro tratto dal pacchetto rhs-printfilters per supportare postscript
   ed altri tipi comuni di input. Questa soluzione funziona piuttosto
   bene, ed è semplicissima da configurare.

   Red Hat 6.x forniva una versione LPD BSD; Red Hat 7.x e 8.0 usano
   LPRng in maniera predefinita.

   Red Hat 6.x e 7.x non funzioneranno se la stampante non è supportata
   dal loro Ghostscript predefinito (che è quello GNU, non quello Aladdin
   Ghostscript, e che supporta poche stampanti). Se non si riesce a
   stampare correttamente con il software fornito da Red Hat si controlli
   la lista di stampanti compatibili riportata sopra (oppure online). Nel
   caso in cui la stampante non sia supportata dagli strumenti Red Hat,
   bisognerà installare una versione fatta in collaborazione con Aladdin
   Ghostscript, e probabilmente sarà meglio usare anche i pacchetti
   lpdomatic o apsfilter, che riconoscono le stampanti supportate dai più
   recenti Ghostscript, ed altri ancora.

   L'installazione predefinita di Red Hat 8.0 è LPRng anche se si può
   scegliere CUPS. Ma anche scegliendo esplicitamente solo CUPS, verrà
   installato anche LPRng. CUPS diventerà finalmente lo spooler
   predefinito a partire da Red Hat 8.1.

   Red Hat 9.0 usa CUPS come spooler predefinito.
     _________________________________________________________________

9.2. Debian

   Debian permette di scegliere tra LPD piano, LPRng o CUPS; le scelte
   migliori probabilmente sono LPRng o CUPS. Nel ramo unstable
   (attualmente chiamato sid) è possibile trovare PDQ. Debian offre anche
   una scelta di strumenti per configurare le stampanti; quella più
   sicura è usare apsfilter versione 5 o superiore, che aggiunge il
   supporto per lo schema del driver uniprint per LPRng e Ghostscript. È
   supportato anche lo strumento printtool di Red Hat, per chi ama l'uso
   di strumenti di amministrazione con una interfaccia grafica.
     _________________________________________________________________

9.3. SuSE

   Il sistema di stampa di SuSE Linux è basato su apsfilter, con alcuni
   miglioramenti; l'apsfilter di SuSE riconosce tutti i file nei formati
   più comuni (incluso l'HTML, se è installato html2ps). Ci sono due modi
   per installare stampanti sui sistemi SuSE:

     * Yast permette di configurare "PostScript", "DeskJet" e "Altre
       stampanti", supportati dai driver Ghostscript; è anche possibile
       installare stampanti HP di tipo GDI (DeskJet 710/720, 820, 1000,
       tramite il pacchetto "ppa"). YaST crea voci adatte per
       /etc/printcap per ogni stampante ("raw", "ascii", "auto" e
       "color", se la stampante da configurare è a colori); crea anche
       directory di spool e mette in ordine i file apsfilterrc, tramite i
       quali è possibile mettere a punto diverse impostazioni
       (precaricamenti Ghostscript, formato della carta, orientamento,
       risoluzione, sequenze di escape della stampante, e così via). Con
       YaST è anche possibile impostare stampanti di rete (TCP/IP, Samba,
       o stampanti Novell Netware).
     * Oltre a questo SuSE include il normale programma SETUP tratto dal
       pacchetto originale apsfilter (con alcuni miglioramenti); questo
       script di configurazione può essere invocato tramite il comando
       lprsetup. Una volta presa l'abitudine alla sua interfaccia
       grafica, si sarà in grado di configurare stampanti locali e di
       rete.

   Il manuale di installazione di SuSE spiega entrambe le procedure di
   configurazione.

   Wolf Rogner ha riportato alcune difficoltà con SuSE. A quanto pare
   potrebbe presentarsi il seguente bug:

     * lo script SETUP di Apsfilter sembra essere leggermente rovinato,
       come gli strumenti di configurazione di KDE. Si usi YaST. [Ed:
       tutto ciò è ancora valido? è passato diverso tempo dall'avviso di
       Wolf.]
     * Per stampanti di rete che necessitano di essere alimentate tramite
       Ghostscript, sarà necessario togliere il commento alla riga
       REMOTE_PRINTER="remote" in /etc/apsfilterrc. Fatto ciò bisognerà
       usare YaST per configurare la stampante e, alla voce
       Configurazione di rete, impostare la coda della stampante remota.
     * YaST non permette di configurare stampanti laser a colori, perciò
       bisognerà configurare la stampante come monocromatica e cambiarla
       successivamente come stampante a colori dappertutto nella relativa
       voce di printcap. Bisognerà anche rinominare la directory di
       spool.
     _________________________________________________________________

9.4. Caldera

   Caldera fornisce LPRng. Non si conoscono gli strumenti di
   configurazione messi a disposizione.

   Recentemente è stato aggiunto un impiegato di Caldera come curatore
   del dabatase LinuxPrinting.org; evidentemente intendono fornire CUPS
   ed un sistema di stampa basato su Foomatic nelle prossime release.
     _________________________________________________________________

9.5. Corel

   Corel è basata su Debian, quindi dovrebbe essere valido tutto quello
   spiegato prima. In più, hanno scritto un loro strumento di
   configurazione basato sulle librerie sysAPS, che a sua volta usa il
   mio database. Sicuramente è stato fatto come parte di WordPerfect.

   Corel gestisce un newsgroup di supporto chiamato
   corelsupport.linux.printing. Il tipo di traffico sembra essere
   relativo a WordPerfect e Corel Linux.
     _________________________________________________________________

9.6. Mandrake

   Dalla versione 7.2b1, Mandrake fornisce in modo predefinito CUPS,
   insieme ad una semplice interfaccia grafica di amministrazione
   ottenuta tramite il programma QtCUPS. Till ebbe alcuni problemi nel
   cercare di includere quanti più driver possibile, e i loro file PPD
   per CUPS sono stati realizzati con il codice del mio foomatic.
   Mandrake è stata la prima distribuzione a fornire CUPS.

   Penso che versioni precedenti fornissero lo strumento printtool di Red
   Hat.
     _________________________________________________________________

9.7. Slackware

   Slackware fornisce i filtri APS. Lo script SETUP di apsfilter viene
   installato sotto il nome «apsfilterconfig»: usandolo, è possibile
   ottenere una configurazione ragionevole.

   Dalla versione 9.0, CUPS è stato incluso nella directory extras, ma il
   sistema predefinito è rimasto LPRng + APSFilter.
     _________________________________________________________________

9.8. Altre distribuzioni

   Per favore fatemi sapere cosa fanno le altre distribuzioni.
     _________________________________________________________________

10. Ghostscript

   Ghostscript è un programma incredibilmente importante per la stampa
   ottenuta tramite driver liberi. La maggior parte del software di
   stampa per Unix genera PostScript, che è una scelta da oltre mezzo
   milione su una stampante. Ghostscript, comunque, è gratuito, e genera
   il linguaggio adatto per la stampante dal PostScript.

   Ghostscript è disponibile in diverse forme. La versione commerciale di
   Ghostscript, detta Aladdin Ghostscript, può essere usata liberamente
   per scopi personali, ma non può essere distribuita da entità
   commerciali. È almeno un anno avanti rispetto alla versione libera di
   Ghostscript; al momento, per esempio, supporta molte più stampanti a
   getto d'inchiostro a colori rispetto al vecchio Ghostscript, e
   fornisce un supporto migliore per il formato PDF.

   La principale versione libera di Ghostscript è il Ghostscript GNU, ed
   è semplicemente una versione vecchia del ghostscript Alladin. Questo
   accordo alquanto delicato ha permesso alla Aladdin di diventare un
   progetto di software libero totalmente autonomo; le versioni
   principali sono fatte da L Peter e da alcuni impiegati, e vengono
   fornite con una licenza ai produttori di software e hardware per poter
   essere usate in prodotti commerciali. Sfortunatamente, anche se questo
   schema ha permesso a L Peter di portare avanti il suo lavoro per anni,
   nello stesso tempo ha inibito la partecipazione dell'intera comunità
   di software libero. Gli autori dei driver, in modo particolare,
   trovano questo accordo poco utile. I piani di pensionamento di L Peter
   danno mandato ad una maggior partecipazione della comunità nel
   progetto, e per questo egli sta prendendo in considerazione
   cambiamenti nella licenza, ed ha creato un progetto SourceForge.

   La terza versione di Ghostscript è ESP Ghostscript, mantenuta da Easy
   Software Products (gli autori di CUPS) che ha stipulato un contratto
   con la Epson. ESP Ghostscript combina i driver del progetto gimp-print
   con quelli GNU Ghostscript, più un assortimento di patch. Questa
   versione non è ancora in pieno corso, ma sarà presto disponibile, e si
   spera che possa semplificare la vita per chi possiede stampanti che
   usano driver Gimp.

   Qualsiasi cosa si faccia con gs, ci si assicuri di eseguirlo con
   l'opzione che disabilita l'accesso ai file (-dSAFER). PostScript è un
   linguaggio pienamente funzionale, ed un programma PostScript difettoso
   può procurare più di un mal di testa.

   Parlando di PDF, il Portable Document Format di Adobe (almeno dalla
   1.3) è al momento poco meno di un PostScript organizzato in un file
   compresso. Ghostscript può trattare input di tipo PDF come fa con i
   Postscript. Potreste essere i primi dell'isolato ad usare una
   stampante in grado di gestire file PDF.
     _________________________________________________________________

10.1. Richiamare Ghostscript

   Tipicamente, Ghostscript funzionerà tramite qualunque filtro venga
   impostato (si raccomanda Foomatic se il venditore non ha fornito
   strumenti adatti), ma per effettuare un debug è spesso più utile
   usarlo direttamente.

   gs -help darà un breve elenco di opzioni e di driver disponibili
   (questa lista indicherà i driver compilati, non la lista principale di
   tutti i driver disponibili).

   Si può far partire gs per scopi di test con: «gs <options> -q -dSAFER
   -sOutputFile=/dev/lp1 test.ps».
     _________________________________________________________________

10.2. Regolazione dell'output di Ghostscript

   Ci sono un sacco di cose che si possono fare se l'output di gs non è
   soddisfacente (in realtà si può fare qualsiasi cosa, avendo i
   sorgenti).

   Alcune di queste opzioni, e anche altre, sono descritte nella guida
   utente di Ghostscript (il file Use.htm nella distribuzione
   Ghostscript; probabilmente sarà installato sotto /usr/doc o
   /usr/share/doc ) sono tutti ottimi candidati come opzioni per i driver
   nel sistema di filtri.
     _________________________________________________________________

10.2.1. Dimensioni e posizione dell'output

   La posizione, la dimensione ed il rapporto altezza-larghezza
   dell'immagine sulla pagina dipendono dal driver specifico della
   stampante di ghostscript. Se ci si accorge che le pagine sono troppo
   corte, o troppo lunghe, o troppo grandi di un fattore due, si dovrebbe
   controllare il sorgente del driver della stampante e modificare i
   parametri che sembrano pertinenti. Sfortunatamente ciascun driver è
   diverso dall'altro, e quindi non si può dire esattamente cosa
   modificare, ma la maggior parte è ragionevolmente ben commentata.
     _________________________________________________________________

10.2.2. Gamma, dotsize, etc.

   Molte stampanti non laser hanno il problema che i singoli punti sono
   troppo grandi. Ciò dà luogo a stampe troppo scure. Avendo questo
   problema con un driver non regolabile in altri modi, si dovrà usare
   una funzione di trasferimento. Semplicemente si crei il seguente file
   nella directory lib di ghostscript e si aggiunga il suo nome alle
   chiamate di gs, appena prima del file vero e proprio. Si potrebbe aver
   bisogno di modificare i valori per adeguarli alla stampante: valori
   più bassi daranno stampe più chiare. Specialmente se il driver usa
   l'algoritmo di Floyd-Steinberg per rasterizzare i colori, i valori più
   bassi (0.2-0.15) sono una buona scelta.

%!
%transfer functions for cyan magenta yellow black
{0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer


   È anche possibile rimettere a posto stampanti che hanno qualche
   problema con il colore modificando questi valori. Nel fare questo tipo
   di cose si raccomanda l'uso del file colorcir.ps, che viene fornito
   con ghostscript (nella sottodirectory example/), come pagina di prova.

   Per molti dei nuovi driver per stampanti a getto d'inchiostro a colori
   sono presenti opzioni da linea di comando, o diversi driver upp, che
   implementano gamma e altri cambiamenti per adattare la stampante a
   diversi tipi di carta. Si dovrebbe guardare anche questo prima di fare
   tentativi con Postscript per sistemare i problemi.
     _________________________________________________________________

10.2.3. Stampa a colori con Ghostscript

   Il dithering predefinito dei colori in Ghostscript è ottimizzato per
   dispositivi a bassa risoluzione. Il dithering sarà effettuato in
   maniera piuttosto grossolana nel tentativo di ottenere un output a
   60ppi (non dpi, ppi: l'"apparente" colore dei pixel che si otterrà
   dopo il dithering). Questo produrrà, sulle moderne stampanti a colore,
   un output piuttosto povero; in particolare, stampanti a getto
   d'inchiostro con carta fotografica sono in grado di ottenere
   impostazioni ppi molto più fini.

   Per le regolazioni necessarie, si usi l'opzione di Ghostscript
   -dDITHERPPI=x, nella quale x è il valore da usare. Questo potrebbe, o
   non potrebbe, avere effetto con tutti i driver; molti nuovi driver
   (per esempio il driver stp delle Epson Stylus) implementano un loro
   dither e non danno importanza a questa impostazione. Alcuni driver
   possono usare sia il normale driver Ghostscript che un driver
   specifico per il dithering (per esempio, il driver bjc600 delle Canon
   Bubblejet).

   In effetti il dithering di Ghostscript è piuttosto rudimentale. Molte
   delle cose necessarie per ottenere un buon output con le stampanti
   moderne semplicemente in Ghostscript non sono disponibili. La licenza
   di Ghostscript, e il risultante tipo di sviluppo "a cattedrale",
   impedisce a vari progetti di sistemare questa situazione (e il mondo
   del software libero avrebbe pronto e in attesa tutto il software
   necessario per farlo). Comunque, a partire dall' Open Source Printing
   Summit 2000, tutte le persone coinvolte si stanno parlando, così ci si
   può aspettare un miglioramento della situazione in tempi brevi.
     _________________________________________________________________

11. Reti

   Una delle capacità di molti spooler è il supporto della stampa tramite
   la rete su stampanti fisicamente connesse ad altre macchine, o
   direttamente alla rete. Con una attenta combinazione di filtri e
   utilità assortite, si può far stampare lpd su stampanti connesse a
   qualsiasi tipo di rete, in modo del tutto trasparente.
     _________________________________________________________________

11.1. Stampare su un host Unix/lpd

   Per abilitare macchine remote a stampare su una stampante usando il
   protocollo LPD, si devono elencare tali macchine in /etc/hosts.equiv o
   /etc/hosts.lpd. (Si noti che aggiungere una macchina a hosts.equiv ha
   molti altri effetti; ci si assicuri di sapere cosa si sta facendo
   prima di elencarvi una macchina). Si possono anche abilitare solo
   certi utenti dell'altra macchina a stampare su una stampante
   utilizzando l'attributo rs; per informazioni si legga la pagina di
   manuale di lpd.
     _________________________________________________________________

11.1.1. Con lpd

   Per stampare su un'altra macchina, bisogna aggiungere a /etc/printcap
   una voce di questo tipo:
# REMOTE djet500
lp|dj|deskjet:\
        :sd=/var/spool/lpd/dj:\
        :rm=machine.out.there.com:\
        :rp=printername:\
        :sh:

   Si noti che c'è ancora la coda di stampa sulla macchina locale,
   gestita da lpd, di modo che se la macchina remota è occupata o fuori
   linea i lavori di stampa possono essere accodati nell'area di spool
   fino a che possano essere inviati.
     _________________________________________________________________

11.1.2. Con rlpr

   Si può anche usare rplr per inviare un lavoro di stampa direttamente
   in una coda su una macchina remota, senza doversi preoccupare di
   configurare lpd per supportare la stampa remota. La sua maggiore
   utilità si dimostra quando si stampa solo occasionalmente su un gran
   numero di stampanti. Dall'annuncio di rlpr:

   Rlpr usa il TCP/IP per inviare lavori di stampa a server lpd ovunque
   su una rete.

   A differenza di lpr, non necessita che la stampante remota sia
   esplicitamente conosciuta alla macchina da cui si vuole stampare (ad
   esempio tramite /etc/printcap) e pertanto è molto più flessibile e
   richiede meno amministrazione.

   Rlpr può essere usato ovunque si possa usare un normale lpr, ed è
   compatibile all'indietro con l'lpr BSD.

   Il maggior vantaggio che si ottiene con rlpr è la capacità di stampare
   remotamente da qualsiasi macchina a qualsiasi macchina, senza
   preoccuparsi di come sia configurato il sistema su cui si desidera
   stampare. Inoltre può lavorare come un filtro allo stesso modo
   dell'lpr tradizionale, in modo che applicazioni client in esecuzione
   su una macchina remota, come Netscape, xemacs e così via possano
   stampare sulla macchina locale senza sforzo.

   Rlpr è disponibile presso Metalab.
     _________________________________________________________________

11.2. Stampare su una stampante Windows o Samba

   Si possono trovare molte più informazioni al riguardo nel Printing to
   Windows mini-HOWTO.
     _________________________________________________________________

11.2.1. Da LPD

   È possibile dirigere una coda di stampa, attraverso il programma
   smbclient (che fa parte della suite Samba), ad un servizio di stampa
   SMB basato su TCP/IP. Samba include uno script chiamato smbprint per
   farlo: in breve, si deve inserire un file di configurazione per la
   stampante in questione nella directory di spool, e si deve installare
   lo script smbprint come if.

   In /etc/printcap ci sarà qualcosa del genere:
lp|remote-smbprinter:\
    :sh:\
    :lp=/dev/null:\
    :sd=/var/spool/lpd/lp:\
    :if=/usr/local/sbin/smbprint:

   Leggere la documentazione all'interno dello script smbprint per
   ulteriori informazioni sulla configurazione.

   È anche possibile usare smbclient per passare un file direttamente al
   servizio di stampa SMB senza coinvolgere lpd. Controllare la pagina di
   manuale.
     _________________________________________________________________

11.3. Stampare su una stampante NetWare

   La suite ncpfs comprende una utilità chiamata nprint che fornisce le
   stesse funzionalità di smbprint , ma per NetWare. È possibile ottenere
   ncpfs da Metalab . Dalla LSM per la versione 0.16:

   "Con ncpfs si possono montare volumi del server NetWare sotto Linux.
   Inoltre è possibile stampare verso code di stampa NetWare e fare lo
   spool di code di stampa NetWare verso lo spool di stampa Un*x. Si avrà
   bisogno del kernel 1.2.x, o 1.3.54 e superiori. ncpfs non funziona con
   kernel della serie 1.3.x inferiori alla 1.3.54."
     _________________________________________________________________

11.3.1. Da LPD

   Per far funzionare nprint tramite lpd, serve un piccolo script della
   shell che stampi lo stdin sulla stampante NetWare, e che va installato
   come if per una coda di stampa di lpd. Si otterrà qualcosa del tipo:

sub2|remote-NWprinter:\
        :sh:\
        :lp=/dev/null:\
        :sd=/var/spool/lpd/sub2:\
        :if=/var/spool/lpd/nprint-script:

   Lo script per nprint sarà qualcosa di simile a questo:
#! /bin/sh
# You should try the guest account with no password first!
# Si dovrebbe provare prima di tutto con un account guest senza password.
/usr/local/bin/nprint -S net -U name -P passwd -q printq-name -
     _________________________________________________________________

11.4. Stampare su una stampante EtherTalk (Apple)

   Il pacchetto netatalk comprende qualcosa di simile a nprint e a
   smbclient. Altri hanno documentato la procedura per stampare da e
   verso una rete Apple molto meglio di quanto si potrebbe mai fare qui;
   si veda il Linux Netatalk-HOWTO .
     _________________________________________________________________

11.5. Stampare su una stampante di rete

   Molte stampanti sono dotate di un'interfaccia ethernet verso la quale
   si può stampare direttamente usando il protocollo LPD. Per farlo, si
   possono seguire le istruzioni allegate alla stampante o al suo
   adattatore di rete, ma in generale tali stampanti "eseguono" lpd, e
   forniscono una o più code su cui stampare. Una HP, per esempio,
   dovrebbe funzionare con un printcap del tipo:
lj-5|remote-hplj:\
        :sh:\
        :sd=/var/spool/lpd/lj-5:\
        :rm=printer.name.com:\
        :rp=raw:

   Stampanti HP Laserjet con interfacce JetDirect generalmente supportano
   due code lpd incorporate: quella "raw" che accetta PCL (e se possibile
   Postscript) e quella "text" che accetta direttamente codici ascii (e
   risolve automaticamente l'effetto a gradinata). Con una stampante
   JetDirect Plus3 a tre porte, le code si chiameranno "raw1", "text2" e
   così via.

   Si noti che la società ISS ha identificato un assortimento di attacchi
   di tipo "denial of service" che bloccano le interfacce HP Jetdirect.
   La maggior parte è stata scoperta nell'autunno 98. Questi problemi
   sono comuni nel codice incorporato; poche apparecchiature da ufficio
   dovrebbero essere esposte al traffico Internet.

   In installazioni su larga scala, specialmente in un ambito in cui
   alcune stampanti non supportano il PostScript, può essere utile
   configurare un server di stampa dedicato, verso il quale stampano
   tutte le macchine, e che esegue le varie istanze di ghostscript.
   Questo permetterà di mettere in pausa o riordinare la coda, usando i
   comandi topq e lprm.

   Inoltre permette alla GNU/Linux box di agire come server di spool per
   la stampante, in modo che gli utenti della rete possano completare i
   loro lavori di stampa velocemente e andare avanti con le loro cose
   senza dover aspettare che finisca il lavoro di stampa inviato da
   qualcun altro. È una soluzione suggerita anche quando siano presenti
   vecchie HP Jetdirects impossibili da sistemare; riduce infatti la
   probabilità che le stampanti si inceppino.

   Per farlo, si dovrà impostare una coda sulla linux box che punti alla
   stampante HP LJ equipaggiata con l'interfaccia ethernet (come detto
   prima). Poi si impostino anche tutti i client della LAN perché puntino
   alla coda LPD (lj-5 nell'esempio riportato sopra).

   Alcune stampanti di rete HP in apparenza non tengono conto delle
   impostazioni delle intestazioni delle pagine inviate dai client; la
   generazione interna delle intestazioni può essere disattivata
   connettendosi via telnet alla stampante, premendo due volte il tasto
   invio e scrivendo "banner: 0" seguito da "quit". Ci sono anche altre
   impostazioni che si possono cambiare in questo modo; scrivere "?" per
   vederne una lista.

   Tutte le impostazioni possono essere controllate tramite il software
   webJetAdmin di HP. Questo pacchetto viene eseguito come demone, e
   accetta richieste http su una porta designata allo scopo. Tramite
   l'uso di moduli e di applet Java permette di controllare stampanti HP
   sulla rete. Teoricamente, può anche controllare code di stampa Unix,
   ma lo fa tramite il servizio rexec, che è assolutamente insicuro.
   Sarebbe meglio non usare questa funzione.
     _________________________________________________________________

11.5.1. Su dispositivi AppSocket

   Alcune stampanti (e stampanti messe in rete come "scatole nere")
   supportano solo una specie di non-protocollo basato su connessioni TCP
   piane, che qualche volta viene chiamato protocollo "AppSocket". Degne
   di nota in questa categoria sono le vecchie schede JetDirect (comprese
   alcune JetDirectEx). Fondamentalmente, per stampare su stampanti di
   questo tipo si deve aprire una connessione TCP verso la stampante su
   una porta specifica (di solito 9100, o 9100, 9101 e 9102 per box a tre
   porte) e trasmetterle il documento da stampare. Il supporto per
   trasmettere lavori di stampa a porte TCP casuali è incorporato in
   LPRng, ma con l'lpd BDS non è così semplice. La cosa migliore da fare
   probabilmente è ottenere e usare una piccola utilità chiamata netcat.

   In caso di fallimento lo si può implementare, tra l'altro, usando il
   programma scritto in Perl riportato sotto. Per ottenere le migliori
   prestazioni, si usi il programma netcat ("nc"), che più o meno fa le
   stesse cose in maniera generica. Molte distribuzioni dovrebbero
   includere netcat.
     _________________________________________________________________

11.6. Esecuzione di if per una stampante remota con il vecchio LPD

   Un difetto delle vecchie versioni di lpd è che l'if non viene eseguito
   per le stampanti remote. (Versioni successive alla 0.43 comprendono la
   modifica che ha avuto origine su FreeBSD che permette a if di essere
   sempre eseguito). Se si ha bisogno di eseguire un if su una stampante
   remota, e ci si accorge che lpr non funziona, si può ottenere la
   stampa configurando una coda di stampa doppia e riaccodando il lavoro
   di stampa. Come esempio si consideri questo printcap:

lj-5:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/lj-5:\
        :if=/usr/lib/lpd/filter-lj-5:
lj-5-remote:sh:rm=printer.name.com:\
        :rp=raw:sd=/var/spool/lpd/lj-5-raw:


   alla luce di questo script di filtraggio filter-lj-5 :
#!/bin/sh
gs <options> -q -dSAFER -sOutputFile=- - | \
lpr -Plj-5-remote -U$5

   L'opzione -U di lpr funziona solamente se lpr è eseguito come demone,
   e imposta il nome utente corretto nella seconda coda di stampa.
   Probabilmente è meglio usare un metodo più robusto per determinare il
   nome dell'utente, perché in alcuni casi non è il quinto argomento. Si
   veda la pagina di manuale di printcap .
     _________________________________________________________________

11.7. Da Windows

   La stampa da un client Window (o presumo OS/2) ad un server Un*x è
   supportata direttamente su SMB tramite l'uso del pacchetto SAMBA, che
   supporta anche lo scambio di file tra il file system Un*x e i client
   Windows.

   Samba include una documentazione molto completa, e si possono trovare
   anche buone FAQ al proposito. La configurazione può essere fatta o
   tramite un filtro magico sulla macchina Un*x per stampare PostScript,
   o girandoci intorno installando un driver specifico della stampante su
   tutte le macchine Windows e creando una coda senza alcun filtro. In
   alcuni casi fidarsi del driver Windows può produrre un output
   migliore, ma dal punto di vista amministrativo possono crearsi un
   sacco di problemi se ci sono molti client Windows. Meglio provare
   Postscript per primo. Per superare questo problema, le versioni più
   moderne di Samba dovrebbero supportare il meccanismo automatico di
   scaricamento dei driver offerto dai server Windows NT.
     _________________________________________________________________

11.8. Da Apple

   Il supporto per la stampa da client Apple viene supportato da Netatalk
   tramite EtherTalk. Si veda la pagina Netatalk HOWTO per maggiori
   informazioni.

   In verità, comunque, qualunque Mac moderno può stampare tramite TCP/IP
   usando piuttosto bene il protocollo LPD. UVa mette a disposizione una
   pagina di supporto molto carina che spiega dettagliatamente come
   impostarlo.
     _________________________________________________________________

11.9. Da Netware

   Il pacchetto ncpfs include un demone chiamato pserver che può essere
   usato per fornire servizi ad una coda di stampa NetWare. Per quanto ne
   so, questo sistema richiede NetWare basato su Bindery, ad esempio 2.x,
   3.x o 4.x con l'accesso bindery abilitato.

   Si veda il sito FTP di ncpfs per maggiori informazioni su ncpfs e sul
   suo programma pserver.
     _________________________________________________________________

11.10. Amministrazione di stampanti di rete

   Quasi tutte le stampanti di rete supportano alcuni metodi
   amministrativi remoti: spesso si possono configurare tramite pagine
   web facili da usare. Molto più utile è il supporto per
   l'amministrazione via SNMP: tipicamente, sarà possibile trovare
   interessanti informazioni sullo stato della stampante, come i livelli
   dell'inchiostro e della carta, i volumi di stampa, e così via; inoltre
   solitamente si possono cambiare alcune impostazioni. Il controllo
   delle stampanti via SNMP, e alcune altre cose relative alla stampa,
   sono state standardizzate dal Printer Working Group di IEEE.
     _________________________________________________________________

11.10.1. npadmin

   Npadmin è un programma a linea di comando che offre un'interfaccia per
   le funzionalità SNMP delle stampanti di rete. Implementa il Printer
   MIB standard, insieme a pochi schemi proprietari dei venditori usati
   principalmente per vecchi dispositivi. Supporta sia azioni tese a
   trovare le stampanti che diverse richieste sullo stato della
   stampante.

   npadmin ha una pagina di manuale eccellente, e molte distribuzioni
   basate su RMP e dpkg lo distribuiscono in pacchetti precompilati.
     _________________________________________________________________

11.10.2. Altri strumenti SNMP

   Oltre a npadmin, ci sono altri strumenti SNMP che potrebbero rivelarsi
   utili. snmptraplogd può effettuare il log di eventi trappola SNMP, il
   che è utile per controllare stampanti bloccate, senza carta, e così
   via; può ritrasmettere in modo semplice alcuni eventi ad un
   paginatore, o inviare una email.

   Anche se npadmin mette a disposizione un supporto semplificato per
   molte interfacce SNMP delle stampanti di rete, alcune tra queste
   potrebbero includere ulteriori e poco comuni estensioni aggiunte dai
   produttori. In questo caso, si possono usare gli strumenti SNMP della
   CMU, che permettono operazioni SNMP GET e SET arbitrarie, come pure
   ricerche e simili. Con essi e con un po' di lavoro, sara' possibile
   usare qualunque funzione SNMP offerta dal MIB della stampante.
   Potrebbe essere necessario ottenere un MIB dal produttore per capire
   quali sono le variabili; alcune volte, i produttori pensano che gli
   utenti useranno solo gli strumenti proprietari che forniscono.

   libprinterconf di VA Linux include del codice per trovare le stampanti
   di rete. Le stampanti sono identificate tramite una libreria interna
   contenente firme di stampanti; al momento questa libreria non è molto
   grande, ma include molti modelli comuni di stampanti di rete.
     _________________________________________________________________

12. Stampanti solo Windows

   Come si diceva, alcune stampanti non sono supportate perché non
   parlano il normale linguaggio delle stampanti, usando invece la CPU
   del computer per interpretare una mappa di bit che viene poi trasmessa
   alla stampante ad una velocità predefinita. Alcune volte queste
   stampanti parlano anche qualcosa che somiglia al PCL, ma più spesso
   no. In pochi casi (si tratta di stampanti di livello molto basso) non
   usano nemmeno una normale porta parallela, ma fanno affidamento sul
   driver del venditore per emulare il comportamento dell'hardware
   (principalmente il controllo di flusso).

   Comunque, c'è modo di girarci intorno se ci si trova bloccati con un
   catorcio di questo tipo.
     _________________________________________________________________

12.1. Redirezionatore Ghostscript per Windows

   Ora è disponibile un driver per stampanti Ghostscript (chiamato
   mswinpr2) che stampa usando chiamate GDI Windows. C'è anche uno
   strumento che serve a redirigere le porte chiamato redmon che passerà
   un lavoro di stampa attraverso Ghostscript prima di stamparlo. (Più o
   meno come un filtro if nell'LPD Unix). Messi insieme, questi due
   strumenti permettono ad una macchina Windows di stampare PostScript
   verso una stampante solo Windows attraverso il driver del venditore.

   Una stampante locale che non può essere usata direttamente può essere
   esportata come stampante "Postscript" usando redmon, Ghostscript e
   mswinpr2 da un PC Windows per stampare attraverso il driver del
   venditore.
     _________________________________________________________________

12.2. Stampanti HP per Windows

   Alcune stampanti HP usano "Printing Performance Architecture" (un modo
   commerciale per dire "siamo troppo economiche per poter implementare
   PCL"). Il supporto viene fatto in maniera indiretta tramite il
   traduttore pbm2ppa scritto da Tim Norman. Sostanzialmente, tramite
   ghostscript si interpreta PostScript in una immagine bitmap in formato
   pbm e usando pbm2ppa lo si traduce in un formato ppa specifico per la
   stampante pronto per essere scaricato alla stampante. Questo programma
   ormai si può trovare anche nel formato dei driver di ghostscript.

   Il software ppa può essere preso dalla sua home page; pbm2ppa supporta
   alcuni modelli di HP 720, 820 e 1000; si veda la documentazione
   compresa nel pacchetto per maggiori dettagli.
     _________________________________________________________________

12.3. Stampanti Lexmark per Windows

   Quasi tutte le stampanti a getto d'inchiostro economiche della Lexmark
   usano un linguaggio proprietario e sono quindi stampanti per Windows.
   Comunque Henryk Paluch ha scritto un programma che può stampare sulla
   Lexmark 7000: si spera che sia in grado di capire i colori ed
   estendere il supporto ad altre stampanti Lexmark a getto d'inchiostro.
   Si veda qui per maggiori informazioni.

   Allo stesso modo, ora si possono trovare driver per le stampanti 5700,
   1000, 1100, 2070, 3200 e altre. Si veda l'elenco delle stampanti
   supportate, e il mio sito web, per maggiori informazioni su come
   ottenere questi driver.
     _________________________________________________________________

13. Come stampare su un fax

   È possibile stampare su un fax con o senza un modem.
     _________________________________________________________________

13.1. Usando un faxmodem

   Ci sono una quantità di programmi per fax che permettono di spedire e
   ricevere fax. Uno dei più potenti è HylaFax di Sam Leffler. Supporta
   di tutto, dall'uso di più modem al broadcasting.

   SuSE fornisce un client Java HylaFax che lavora dichiaratamente su
   qualunque piattaforma Java (inclusi Windows e GNU/Linux). Ci sono
   anche client per fax non Java che lavorano su molte piattaforme;
   GNU/Linux si potrà certamente occupare di inviare fax da una rete.

   È anche disponibile, e probabilmente è una scelta migliore per piccole
   installazioni, efax , un semplice programma che spedisce e riceve fax.
   Il programma di getty mgetty può ricevere fax tramite efax (e può
   anche gestire la posta vocale o login interattivi).
     _________________________________________________________________

13.2. Usando il servizio di stampa remota

   Esiste un servizio sperimentale che permette di spedire un messaggio
   email contenente qualcosa che si vorrebbe stampare in modo che questo
   compaia su un fax da qualche altra parte. Essendo supportati anche
   formati come il postscript, questo è un servizio che può essere utile,
   anche se la copertura mondiale è a macchie. Per maggior informazioni
   sulla stampa tramite servizi di stampa remota si veda il sito WWW
   sulla stampa remota .
     _________________________________________________________________

13.3. Servizi di invio fax commerciali

   Il servizio di invio fax basato sul web viene fornito da una quantità
   di società. EFax, in particolare, offre la ricezione gratuita di fax
   (unicamente al proprio numero di fax) tramite email, mentre la
   trasmissione è a pagamento. Altre società offrono servizi simili.
     _________________________________________________________________

14. Come generare qualcosa che valga la pena stampare

   Qui abbiamo veramente tantissimi programmi. Sostanzialmente Linux può
   eseguire molti tipi di binari con vari livelli di successo: Linux/x86,
   Linux/Alpha, Linux/Sparc, Linux/foo, iBCS, Win16/win32s (con dosemu,
   e, un giorno, con Wine), Mac/68k (con Executor) e Java. Tratteremo
   solo di applicazioni native per Linux e di programmi comuni per Unix.
     _________________________________________________________________

14.1. Linguaggi di markup

   La maggior parte dei linguaggi di markup è adatta a progetti molto
   grandi o ripetitivi, nei quali si desidera che sia il computer a
   controllare l'aspetto del testo, per rendere tutto uniforme.

   nroff
          Questo è stato uno dei primi linguaggi di markup nelle versioni
          originali di Unix. Le pagine di manuale sono l'esempio più
          comune di testo formattato con le macro *roff; molte persone lo
          gradiscono, ma nroff ha una sintassi più arcana del necessario
          (si veda Figura 12), che lo rende inadeguato per nuovi lavori.
          Vale la pena sapere, comunque, che si può comporre una pagina
          di manuale direttamente in postscript con groff. La maggior
          parte dei comandi man lo fanno per vostro conto con man -t foo
          | lpr .

          Figura 12. Esempio di input roff 

.B man
is the system's manual pager. Each
.I page
argument given to
.B man
is normally the name of a program, utility or function.
The
.I manual page
associated with each of these arguments is then found and
displayed. A
.IR section ,
if provided, will direct
.B man
to look
only in that
.I section
of the manual.

   TeX
          TeX, ed il package di macro LaTeX, è uno dei più usati
          linguaggi di markup in ambiente Un*x anche se non è nato con
          Unix, ed è disponibile per un'ampia varietà di sistemi. Molti
          lavori tecnici sono scritti in LaTeX perchè semplifica
          notevolmente i problemi di aspetto della pagina ed è ancora uno
          dei pochi sistemi di text processing che supporta bene e
          completamente la simbologia matematica. TeX produce file dvi ,
          che possono essere convertiti in PostScript oppure nel PCL di
          Hewlett Packard con dvips o dvilj. Per installare TeX o LaTeX
          usare l'intero gruppo di pacchetti teTex, che contiene tutto il
          necessario. Le installazioni più recenti includono pdfTeX e
          pdfLaTeX, che producono direttamente file Adobe PDF. Sono
          disponibili comandi per creare, nel file PDF, hyperlink e
          funzioni di navigazione.

          Figura 13. Esempio di input LaTeX

\subsubsection{NAT}

Each real server is assigned a different IP address, and the NA
implements address translation for all inbound and outbound
packets.

  \begin{description}
  \item[Advantage] Implementation simplicity, especially if we
already implement other NAT capabilities.

  \item[Disadvantage] Return traffic from the server goes through
address translation, which may incur a speed penalty.  This
probably isn't too bad if we design for it from the
beginning.

  \item[Disadvantage] NAT breaks the end-to-end semantics of normal
internet traffic.  Protocols like ftp, H.323, etc would
require special support involving snooping and in-stream
rewriting, or complete protocol proxying; neither is likely
to be practical.
  \end{description}

   SGML
          C'è almeno un parser sgml libero per i sistemi Un*x; esso forma
          la base del sistema di documentazione Linuxdoc-SGML, ma
          supporta anche altri DTD, in particolare DocBook. Questo
          documento è scritto in DocBook-DTD SGML; si veda, per un
          esempio, Figura 14.

          Figura 14. Esempio di DocBook SGML

<varlistentry>
<term>SGML</term>
<listitem>
<para>
There is at least one free SGML parser available for Un*x
systems; it forms the basis of Linuxdoc-SGML's homegrown
document system.  It can support other DTD's, as well, most
notably DocBook.  This document is written in DocBook-DTD
SGML.
</para>
</listitem>
</varlistentry>
     _________________________________________________________________

14.2. Elaboratori di testo WYSIWYG

   Non c'è carenza di elaboratori di testo WYSIWYG: sono disponibili
   parecchie suite complete di programmi per l'ufficio, compresa una che
   è libera per uso personale (StarOffice).

   StarOffice
          Questa completa suite per l'ufficio include tutte le funzioni
          che ci si potrebbe aspettare, inclusa l'importazione ed
          esportazione di file in formato Microsoft Office (compresi
          documenti Word). C'è un mini-HOWTO che spiega come ottenerlo ed
          installarlo. Dovrebbe funzionare con tutte le stampanti
          compatibili con GNU/Linux, visto che genera PostScript.

   WordPerfect
          Corel distribuisce una versione di base di WordPerfect 8 libera
          per GNU/Linux, e vende vari pacchetti di Word Perfect Office
          2000 (che include WordPerfect, Corel Draw e Quattro Pro
          versione 9). La pagina Linux WordPerfect tipi di caratteri e
          stampanti contiene informazioni su come configurare WordPerfect
          per l'uso sia con Ghostscript che con il suo driver incorporato
          (che in apparenza è identico al driver di WordPerfect per DOS,
          se il driver della stampante non è incluso nella
          distribuzione).

   Applix
          Applix è una suite per l'ufficio cross-platform (cioè che
          funziona su diversi Unices, su Windows e su altri) venduta
          dalla Applix. Anche Red Hat e SuSE la vendevano quando era
          l'unica suite disponibile; ora le vendite sono tornate alla
          Applix. Questa è l'unica suite di applicazioni nativa in stile
          Unix; si integra probabilmente meglio con il modo Unix di fare
          le cose.

   AbiWord
          AbiWord è uno dei vari progetti di elaboratori di testo WYSIWYG
          GPL, che ha creato un elaboratore di testi molto carino basato
          su formato XML e che può importare file Word. AbiWord è ancora
          in costruzione, anche se per ora è utilizzabile per piccole
          cose.

          Figura 15. AbiWord

          [snapshot-abiword.png]

   LyX
          Lyx è un front-end per LaTeX che sembra molto promettente. Per
          maggiori informazioni si veda la pagina web di LyX . Se ne può
          trovare anche una versione in stile KDE, che si chiama Klyx;
          l'autore di LyX e il promotore di KDE sono la stessa persona.

          Figura 16. LyX

          [snapshot-lyx.png]

   Maxwell
          Maxwell è un elaboratore di testo molto semplice basato su un
          formato MS RTF, che nacque come prodotto commerciale ma ora
          viene distribuito sotto GPL.

   Sarebbero gradite da altri venditori notizie sui prodotti che offrono.
     _________________________________________________________________

15. Stampare fotografie

   Ci sono molti particolari da considerare per poter ottenere un output
   fotografico decente dalle stampanti comuni. Per acquistare una
   stampante fotografica, si vedano i relativi suggerimenti in la Sezione
   5.4.
     _________________________________________________________________

15.1. Ghostscript e le fotografie

   Ghostscript incontra alcune difficoltà nell'interpretare i colori
   fotografici attraverso quasi tutti i driver. I problemi sono di vario
   tipo:

     * In molti driver il supporto per la sintonizzazione dei colori è
       scarso. Spesso i colori non corrispondono all'output di un driver
       Windows o a quello visibile sullo schermo. D'altra parte il
       supporto per i colori in tutti i driver, e in Ghostscript nel suo
       insieme, sono regolabili con facilità; un'impostazione da
       controllare sicuramente è la "Gamma" (si veda la sezione la
       Sezione 10.2.2), e se ne possono trovare altre nel file di
       documentazione Use.htm di Ghostscript.
     * Al momento c'è un solo driver Ghostscript con il supporto 6 e 7
       per la stampa a colori, che è ancora in versione beta e supporta
       quasi tutti i modelli Epson Stylus Photo: pare che produca colori
       anche migliori di quelli ottenibili con un driver Windows (!). Il
       driver Ghostscript in sé non supporta colori non CMYK o RGB; c'è
       bisogno di un po' di lavoro per risolvere questo problema.
     * Ghostscript spesso effettua il dithering grossolanamente, o
       generando stampe con metodi artificiosi, come generare delle
       strisce. Il dithering solitamente può essere corretto; si veda la
       Sezione 10.2.3, e si legga la documentazione per il proprio
       driver.

   Alcuni di questi problemi si possono correggere mettendo bene a punto
   Ghostscript; per maggiori informazioni si veda la Sezione 10. Sarà
   molto più facile giocherellare con le opzioni di Ghostscript
   dichiarandole come opzioni nel sistema di spool.

   Detto questo, la soluzione più ovvia è di usare software non
   Ghostscript per stampare le foto, e in effetti questo software esiste.
   Il contendente principale è il plugin di stampa di Gimp, che supporta
   la stampa pixel-a-pixel su stampanti Epson Styluses e Postscript (con
   un supporto elementare di PPD). Una porzione di questo driver per le
   Epson Stylus è disponibile per Ghostscript, così come il driver stp.
   Un'altra possibilità è usare gli assortiti programmi esterni
   pnm-to-foo, che sono in grado di stampare sulle Lexmark più
   economiche; queste stampe tentano di stampare mappe pixel-per-pixel.

   Naturalmente la soluzione migliore è comprare una stampante
   Postscript, che può essere completamente controllata dal software
   libero disponibile, e che stamperà sfruttando tutte le capacità della
   stampante.
     _________________________________________________________________

15.2. Carta

   Il risultato ottenuto usando stampanti a getto d'inchiostro a colori
   dipende moltissimo dal tipo di carta usato. La carta lucida rivestita,
   molto costosa, permette di ottenere un risultato molto simile ad una
   fotografia, mentre la carta normale non rivestita spesso produce
   colori smorti e dettagli sfocati. Carte non lucide rivestite
   permetteranno di ottenere una via di mezzo, e sono le migliori anche
   per stampare testo. Carta fotografica rigida, lucida e rivestita
   produrrà un risultato simile a quello ottenibile con carta lucida più
   leggera che sembrerà una foto normale.
     _________________________________________________________________

15.3. Impostazioni della stampante

   Per ottenere un risultato fotografico su quasi tutte le stampanti a
   getto d'inchiostro a colori si dovrebbe usare il metodo di stampa più
   strettamente interlacciato (e più lento); altrimenti zone di colore
   pieno potrebbero avere delle bande o colori smorti. Generalmente con
   Ghostscript succede quando si usa la risoluzione più alta. Con
   stampanti Postscript potrebbe essere necessario aggiungere qualche
   riga di codice al prologo basandosi su quanto indicato dal file PPD.
   Il supporto PPD di Gimp non include impostazioni per la qualità di
   stampa (specifici per una stampante), ma ne ho aggiunto uno io per mio
   uso; potete contattarmi se vi interessa. Usando PDQ o CUPS si possono
   controllare facilmente tutte le impostazioni della stampante. Si
   possono aggiungere queste opzioni anche alle stampanti Postscript
   tramite il libppd di VA Linux e il front-end GPR.
     _________________________________________________________________

15.4. Durata della stampa

   Le stampe ottenute da stampanti a getto d'inchiostro a colori
   svaniscono dopo pochi anni, specialmente se esposte a molta luce ed
   aria; è un problema di inchiostro. Stampanti a cartucce di solo
   inchiostro come le Epson e le Canon possono usare un tipo di
   inchiostro per archivi che è meno soggetto a questo problema. Le
   stampanti più recenti spesso usano inchiostro basato su pigmenti, che
   non svanisce in fretta come quelli più vecchi basati su tinture. In
   realtà, nessuna stampa di questo tipo è adatta per essere archiviata a
   lungo termine: meglio usare un CD-R e archiviare quello.
     _________________________________________________________________

15.5. Software di tipo shareware e commerciale

   C'è un programma chiamato xwtools che supporta stampe fotografiche con
   tutti gli annessi e connessi su un buon assortimento di stampanti
   Epson, HP e Canon. Sfortunatamente, essendo scritto sotto NDA non
   mette a disposizione il sorgente. A meno che sia usato per la
   stampante Epson Stylus Color 300 su un sistema GNU/Linux con
   architettura x86, costa E15 per uso personale; non si conosce il
   prezzo commerciale.

   Il pacchetto ESP Print Pro di Easy Software supporta alcune stampanti
   che altrimenti non sarebbero supportate. Questi driver funzionano,
   anche se sembra che non siano messi bene a punto per le fotografie.
     _________________________________________________________________

16. Anteprima su schermo di immagini stampabili

   Quasi tutto ciò che può essere stampato può anche essere visualizzato
   sullo schermo.
     _________________________________________________________________

16.1. PostScript

   Ghostscript ha un driver per X11, che viene sfruttato al meglio sotto
   il controllo del visualizzatore PostScript gv. Le ultime versioni di
   questi programmi supportano anche i file PDF. gv ha rimpiazzato il
   vecchio visualizzatore "Ghostview"; la nuova interfaccia utente è
   molto più bella e ricca di funzioni rispetto alla vecchia interfaccia
   grafica Athena.

   Figura 17. Gv

   [snapshot-gv.png]
     _________________________________________________________________

16.2. TeX dvi

   I Device Indipendent file di TeX possono essere visti sotto X11 con
   xdvi. Le versioni moderne di xdvi chiamano ghostscript per rendere
   alcune particolarità del PostScript.

   Esiste un driver per VT100 che si chiama dgvt . Tmview lavora con
   GNU/Linux e la svgalib, in mancanza di meglio.
     _________________________________________________________________

16.3. Adobe PDF

   L'Acrobat Reader di Adobe è disponibile per GNU/Linux; basta
   scaricarlo dal sito web di Adobe.

   Si può usare anche xpdf, che è software libero, e gv supporta la
   visualizzazione di file PDF se usato con gs sotto X11.
     _________________________________________________________________

17. Stampanti seriali con lpd

   Le stampanti seriali sono piuttosto difficili da usare sotto lpd.
     _________________________________________________________________

17.1. Configurazione di printcap

   Lpd fornisce cinque attributi da configurare in /etc/printcap per
   controllare le impostazioni della porta seriale a cui è collegata la
   stampante. Si legga la pagina di manuale di printcap e si prenda nota
   del significato degli attributi br#, fc#, xc#, fs# e xs#. Gli ultimi
   quattro sono mappe di bit che indicano le impostazioni della porta.
   L'attributo br# è semplicemente il baud rate, ad esempio " br#9600".

   È molto semplice tradurre le impostazioni stty in attributi per
   printcap. Se ce n'è bisogno, si guardi ora la pagina di manuale di
   stty.

   stty può essere usato per configurare la porta della stampante, in
   modo da poter fare il cat di un file sulla porta ed ottenere una
   stampa corretta. Nel mio caso «stty -a» fornisce le seguenti
   informazioni:
dina:/usr/users/andy/work/lpd/lpd# stty -a < /dev/ttyS2
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr
-igncr -icrnl ixon -ixoff -iuclc -ixany -imaxbel
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0
bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase
-tostop -echoprt -echoctl -echoke

   L'unica differenza tra questo ed il modo in cui la porta è
   inizializzata al boot è data da -clocal, -crtscts, e ixon. Le
   impostazioni della porta potrebbero essere differenti, a seconda di
   come la stampante effettua il controllo di flusso.

   In realtà l'uso di stty è un po' strano. Dato che stty opera sul
   terminale collegato al suo standard input, lo si usa per manipolare
   una data porta seriale utilizzando il carattere "<" come sopra.

   Dopo aver configurato correttamente le impostazioni di stty, in modo
   che «cat file > /dev/ttyS2» (nel mio caso) invii il file alla
   stampante, si guardi il file
   /usr/src/linux/include/asm-i386/termbits.h. Questo file contiene molti
   #defines ed alcune strutture (si potrebbe farne il cat sulla stampante
   (che ormai funziona) e usarlo come punto di partenza). Si veda la
   sezione che comincia con

/* c_cflag bit meaning */
#define CBAUD   0000017

   Questa sezione elenca i significati dei bit fc# ed fs# i cui nomi
   (dopo il baud rate) coincidono con una delle linee dell'output di
   stty. Non è forse facile?

   Annotare quali di questi settaggi sono preceduti da un - nell'output
   di stty e sommare tutti questi numeri (sono in ottale). Questo
   rappresenta i bit che vanno azzerati, così il risultato è la capacità
   di fc# . Naturalmente ci si ricordi che poi i vari bit verranno
   impostati direttamente dopo essere stati azzerati, pertanto si potrà
   semplicemente usare "fc#0177777" (io lo faccio).

   Ora fare lo stesso per quei settaggi (elencati in questa sezione) che
   non hanno un - davanti nell'output di stty. Nell'esempio i più
   importanti sono CS8 (0000060), HUPCL (0002000), e CREAD (0000200).
   Controllare anche il flag relativo al baud rate (il mio è 0000015).
   Sommare tutti questi numeri, ottenendo nell'esempio 0002275. Questo
   numero viene messo nelle capacità di fs# ("fs#02275" funziona
   correttamente nell'esempio).

   Ripetere il procedimento di azzeramento e impostazione dei bit nella
   successiva sezione del file di include, "c_lflag bits". Nell'esempio
   non c'è niente da impostare, quindi vengono usati " xc#0157777" e
   "xs#0".
     _________________________________________________________________

17.2. Stampanti seriali antiquate che perdono caratteri

   Jon Luckey ha evidenziato come alcune stampanti seriali con interfacce
   da due lire e buffer molto piccoli intendono veramente fermarsi quando
   lo indicano attraverso il controllo di flusso. Jon ha scoperto che
   disabilitando il buffer FIFO della porta seriale 16550 tramite
   setserial si risolve il problema della perdita dei caratteri (in
   pratica specificando il tipo UART della porta seriale come 8250).
     _________________________________________________________________

18. Cosa manca?

   Ancora non esiste tutto il necessario per un sistema completo di
   stampa. Sono in corso molti progetti per questo, anche se la maggior
   parte non ha ancora prodotto codice utile, e gli sforzi per
   standardizzare i protocolli e le API necessarie sono appena agli
   inizi.
     _________________________________________________________________

18.1. Integrazione dei programmi

   Il problema è riuscire a far parlare tra di loro le varie parti,
   specialmente in modo indipendente dallo spool. È un problema che si
   nota maggiormente in quelle patetiche applicazioni che cercano di
   supportare il controllo di tutte le "normali" funzioni di stampa. Non
   c'è modo per chi scrive le applicazioni di ottenere informazioni sulle
   stampanti, sui lavori di stampa e così via; non c'è un metodo standard
   per inviare i lavori di stampa; non c'è modo di conoscere lo stato dei
   lavori di stampa; a dire la verità non c'è nemmeno un metodo standard
   per generare i dati da stampare (anche se la maggior parte dei nuovi
   sistemi desktop ci provano mettendo a disposizione servizi specifici
   per il desktop).
     _________________________________________________________________

18.2. Tipi di carattere

   La gestione dei tipi di carattere sui sistemi liberi è piuttosto
   difficile. Il monitor, la stampante, le applicazioni e i file di dati
   dovrebbero avere tutti accesso agli stessi caratteri. Sfortunatamente
   non è così. Questa situazione dovrebbe risolversi con l'avvento di
   xft2 e fontconfig, di cui faranno uso le prossime distribuzioni. Per
   quanto si sa, RedHat 8.0 è stata la prima distribuzione ad usare xft2.
     _________________________________________________________________

18.3. Driver

   C'è ancora un po' da lavorare sui driver. Sono già migliorati molto
   negli ultimi anni, ma ancora oggi non tutte le stampanti sono
   supportate.

   I venditori di stampanti dovrebbero avere un ruolo di primo piano in
   questo caso: con la continua crescita di Linux diventa sempre più
   difficile per loro ignorare questa fascia di utenti.
     _________________________________________________________________

19. Ringraziamenti

   Un ringraziamento speciale va a Grant Taylor che ha creato questo
   HOWTO e a Till Kampeter per foomatic e per i suoi esperti consigli.

   Le informazioni su smbprint provengono da un articolo di Marcel
   Roelofs <marcel@paragon.nl> .

   Le informazioni su nprint per usare stampanti NetWare sono state
   fornite da Michael Smith <mikes@bioch.ox.ac.uk>.

   La sezione sulle stampanti seriali proviene da Andrew Tefft
   <teffta@engr.dnet.ge.com>.

   Il materiale su gamma e cose del genere per gs è stato mandato da
   Andreas <quasi@hub-fue.franken.de>.

   I due paragrafi sul closing_wait di 30 secondi del driver seriale sono
   stati mandati da Chris Johnson <cdj@netcom.com>.

   Robert Hart ha inviato un paio di paragrafi eccellenti
   sull'impostazione di un server di stampa su stampanti di rete HP che
   Grant ha usato così come erano.

   E uno speciale ringraziamento va alle dozzine di persone che hanno
   segnalato errori tipografici, indirizzi errati, e errori nel documento
   nel corso degli anni.
     _________________________________________________________________

A. GNU Free Documentation License

   Version 1.2, November 2002

     Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59
     Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is
     permitted to copy and distribute verbatim copies of this license
     document, but changing it is not allowed.
     _________________________________________________________________

A.1. PREAMBLE

   The purpose of this License is to make a manual, textbook, or other
   functional and useful document "free" in the sense of freedom: to
   assure everyone the effective freedom to copy and redistribute it,
   with or without modifying it, either commercially or noncommercially.
   Secondarily, this License preserves for the author and publisher a way
   to get credit for their work, while not being considered responsible
   for modifications made by others.

   This License is a kind of "copyleft", which means that derivative
   works of the document must themselves be free in the same sense. It
   complements the GNU General Public License, which is a copyleft
   license designed for free software.

   We have designed this License in order to use it for manuals for free
   software, because free software needs free documentation: a free
   program should come with manuals providing the same freedoms that the
   software does. But this License is not limited to software manuals; it
   can be used for any textual work, regardless of subject matter or
   whether it is published as a printed book. We recommend this License
   principally for works whose purpose is instruction or reference.
     _________________________________________________________________

A.2. APPLICABILITY AND DEFINITIONS

   This License applies to any manual or other work, in any medium, that
   contains a notice placed by the copyright holder saying it can be
   distributed under the terms of this License. Such a notice grants a
   world-wide, royalty-free license, unlimited in duration, to use that
   work under the conditions stated herein. The "Document", below, refers
   to any such manual or work. Any member of the public is a licensee,
   and is addressed as "you". You accept the license if you copy, modify
   or distribute the work in a way requiring permission under copyright
   law.

   A "Modified Version" of the Document means any work containing the
   Document or a portion of it, either copied verbatim, or with
   modifications and/or translated into another language.

   A "Secondary Section" is a named appendix or a front-matter section of
   the Document that deals exclusively with the relationship of the
   publishers or authors of the Document to the Document's overall
   subject (or to related matters) and contains nothing that could fall
   directly within that overall subject. (Thus, if the Document is in
   part a textbook of mathematics, a Secondary Section may not explain
   any mathematics.) The relationship could be a matter of historical
   connection with the subject or with related matters, or of legal,
   commercial, philosophical, ethical or political position regarding
   them.

   The "Invariant Sections" are certain Secondary Sections whose titles
   are designated, as being those of Invariant Sections, in the notice
   that says that the Document is released under this License. If a
   section does not fit the above definition of Secondary then it is not
   allowed to be designated as Invariant. The Document may contain zero
   Invariant Sections. If the Document does not identify any Invariant
   Sections then there are none.

   The "Cover Texts" are certain short passages of text that are listed,
   as Front-Cover Texts or Back-Cover Texts, in the notice that says that
   the Document is released under this License. A Front-Cover Text may be
   at most 5 words, and a Back-Cover Text may be at most 25 words.

   A "Transparent" copy of the Document means a machine-readable copy,
   represented in a format whose specification is available to the
   general public, that is suitable for revising the document
   straightforwardly with generic text editors or (for images composed of
   pixels) generic paint programs or (for drawings) some widely available
   drawing editor, and that is suitable for input to text formatters or
   for automatic translation to a variety of formats suitable for input
   to text formatters. A copy made in an otherwise Transparent file
   format whose markup, or absence of markup, has been arranged to thwart
   or discourage subsequent modification by readers is not Transparent.
   An image format is not Transparent if used for any substantial amount
   of text. A copy that is not "Transparent" is called "Opaque".

   Examples of suitable formats for Transparent copies include plain
   ASCII without markup, Texinfo input format, LaTeX input format, SGML
   or XML using a publicly available DTD, and standard-conforming simple
   HTML, PostScript or PDF designed for human modification. Examples of
   transparent image formats include PNG, XCF and JPG. Opaque formats
   include proprietary formats that can be read and edited only by
   proprietary word processors, SGML or XML for which the DTD and/or
   processing tools are not generally available, and the
   machine-generated HTML, PostScript or PDF produced by some word
   processors for output purposes only.

   The "Title Page" means, for a printed book, the title page itself,
   plus such following pages as are needed to hold, legibly, the material
   this License requires to appear in the title page. For works in
   formats which do not have any title page as such, "Title Page" means
   the text near the most prominent appearance of the work's title,
   preceding the beginning of the body of the text.

   A section "Entitled XYZ" means a named subunit of the Document whose
   title either is precisely XYZ or contains XYZ in parentheses following
   text that translates XYZ in another language. (Here XYZ stands for a
   specific section name mentioned below, such as "Acknowledgements",
   "Dedications", "Endorsements", or "History".) To "Preserve the Title"
   of such a section when you modify the Document means that it remains a
   section "Entitled XYZ" according to this definition.

   The Document may include Warranty Disclaimers next to the notice which
   states that this License applies to the Document. These Warranty
   Disclaimers are considered to be included by reference in this
   License, but only as regards disclaiming warranties: any other
   implication that these Warranty Disclaimers may have is void and has
   no effect on the meaning of this License.
     _________________________________________________________________

A.3. VERBATIM COPYING

   You may copy and distribute the Document in any medium, either
   commercially or noncommercially, provided that this License, the
   copyright notices, and the license notice saying this License applies
   to the Document are reproduced in all copies, and that you add no
   other conditions whatsoever to those of this License. You may not use
   technical measures to obstruct or control the reading or further
   copying of the copies you make or distribute. However, you may accept
   compensation in exchange for copies. If you distribute a large enough
   number of copies you must also follow the conditions in section 3.

   You may also lend copies, under the same conditions stated above, and
   you may publicly display copies.
     _________________________________________________________________

A.4. COPYING IN QUANTITY

   If you publish printed copies (or copies in media that commonly have
   printed covers) of the Document, numbering more than 100, and the
   Document's license notice requires Cover Texts, you must enclose the
   copies in covers that carry, clearly and legibly, all these Cover
   Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
   the back cover. Both covers must also clearly and legibly identify you
   as the publisher of these copies. The front cover must present the
   full title with all words of the title equally prominent and visible.
   You may add other material on the covers in addition. Copying with
   changes limited to the covers, as long as they preserve the title of
   the Document and satisfy these conditions, can be treated as verbatim
   copying in other respects.

   If the required texts for either cover are too voluminous to fit
   legibly, you should put the first ones listed (as many as fit
   reasonably) on the actual cover, and continue the rest onto adjacent
   pages.

   If you publish or distribute Opaque copies of the Document numbering
   more than 100, you must either include a machine-readable Transparent
   copy along with each Opaque copy, or state in or with each Opaque copy
   a computer-network location from which the general network-using
   public has access to download using public-standard network protocols
   a complete Transparent copy of the Document, free of added material.
   If you use the latter option, you must take reasonably prudent steps,
   when you begin distribution of Opaque copies in quantity, to ensure
   that this Transparent copy will remain thus accessible at the stated
   location until at least one year after the last time you distribute an
   Opaque copy (directly or through your agents or retailers) of that
   edition to the public.

   It is requested, but not required, that you contact the authors of the
   Document well before redistributing any large number of copies, to
   give them a chance to provide you with an updated version of the
   Document.
     _________________________________________________________________

A.5. MODIFICATIONS

   You may copy and distribute a Modified Version of the Document under
   the conditions of sections 2 and 3 above, provided that you release
   the Modified Version under precisely this License, with the Modified
   Version filling the role of the Document, thus licensing distribution
   and modification of the Modified Version to whoever possesses a copy
   of it. In addition, you must do these things in the Modified Version:

    A. Use in the Title Page (and on the covers, if any) a title distinct
       from that of the Document, and from those of previous versions
       (which should, if there were any, be listed in the History section
       of the Document). You may use the same title as a previous version
       if the original publisher of that version gives permission.
    B. List on the Title Page, as authors, one or more persons or
       entities responsible for authorship of the modifications in the
       Modified Version, together with at least five of the principal
       authors of the Document (all of its principal authors, if it has
       fewer than five), unless they release you from this requirement.
    C. State on the Title page the name of the publisher of the Modified
       Version, as the publisher.
    D. Preserve all the copyright notices of the Document.
    E. Add an appropriate copyright notice for your modifications
       adjacent to the other copyright notices.
    F. Include, immediately after the copyright notices, a license notice
       giving the public permission to use the Modified Version under the
       terms of this License, in the form shown in the Addendum below.
    G. Preserve in that license notice the full lists of Invariant
       Sections and required Cover Texts given in the Document's license
       notice.
    H. Include an unaltered copy of this License.
    I. Preserve the section Entitled "History", Preserve its Title, and
       add to it an item stating at least the title, year, new authors,
       and publisher of the Modified Version as given on the Title Page.
       If there is no section Entitled "History" in the Document, create
       one stating the title, year, authors, and publisher of the
       Document as given on its Title Page, then add an item describing
       the Modified Version as stated in the previous sentence.
    J. Preserve the network location, if any, given in the Document for
       public access to a Transparent copy of the Document, and likewise
       the network locations given in the Document for previous versions
       it was based on. These may be placed in the "History" section. You
       may omit a network location for a work that was published at least
       four years before the Document itself, or if the original
       publisher of the version it refers to gives permission.
    K. For any section Entitled "Acknowledgements" or "Dedications",
       Preserve the Title of the section, and preserve in the section all
       the substance and tone of each of the contributor acknowledgements
       and/or dedications given therein.
    L. Preserve all the Invariant Sections of the Document, unaltered in
       their text and in their titles. Section numbers or the equivalent
       are not considered part of the section titles.
    M. Delete any section Entitled "Endorsements". Such a section may not
       be included in the Modified Version.
    N. Do not retitle any existing section to be Entitled "Endorsements"
       or to conflict in title with any Invariant Section.
    O. Preserve any Warranty Disclaimers.

   If the Modified Version includes new front-matter sections or
   appendices that qualify as Secondary Sections and contain no material
   copied from the Document, you may at your option designate some or all
   of these sections as invariant. To do this, add their titles to the
   list of Invariant Sections in the Modified Version's license notice.
   These titles must be distinct from any other section titles.

   You may add a section Entitled "Endorsements", provided it contains
   nothing but endorsements of your Modified Version by various
   parties--for example, statements of peer review or that the text has
   been approved by an organization as the authoritative definition of a
   standard.

   You may add a passage of up to five words as a Front-Cover Text, and a
   passage of up to 25 words as a Back-Cover Text, to the end of the list
   of Cover Texts in the Modified Version. Only one passage of
   Front-Cover Text and one of Back-Cover Text may be added by (or
   through arrangements made by) any one entity. If the Document already
   includes a cover text for the same cover, previously added by you or
   by arrangement made by the same entity you are acting on behalf of,
   you may not add another; but you may replace the old one, on explicit
   permission from the previous publisher that added the old one.

   The author(s) and publisher(s) of the Document do not by this License
   give permission to use their names for publicity for or to assert or
   imply endorsement of any Modified Version.
     _________________________________________________________________

A.6. COMBINING DOCUMENTS

   You may combine the Document with other documents released under this
   License, under the terms defined in section 4 above for modified
   versions, provided that you include in the combination all of the
   Invariant Sections of all of the original documents, unmodified, and
   list them all as Invariant Sections of your combined work in its
   license notice, and that you preserve all their Warranty Disclaimers.

   The combined work need only contain one copy of this License, and
   multiple identical Invariant Sections may be replaced with a single
   copy. If there are multiple Invariant Sections with the same name but
   different contents, make the title of each such section unique by
   adding at the end of it, in parentheses, the name of the original
   author or publisher of that section if known, or else a unique number.
   Make the same adjustment to the section titles in the list of
   Invariant Sections in the license notice of the combined work.

   In the combination, you must combine any sections Entitled "History"
   in the various original documents, forming one section Entitled
   "History"; likewise combine any sections Entitled "Acknowledgements",
   and any sections Entitled "Dedications". You must delete all sections
   Entitled "Endorsements".
     _________________________________________________________________

A.7. COLLECTIONS OF DOCUMENTS

   You may make a collection consisting of the Document and other
   documents released under this License, and replace the individual
   copies of this License in the various documents with a single copy
   that is included in the collection, provided that you follow the rules
   of this License for verbatim copying of each of the documents in all
   other respects.

   You may extract a single document from such a collection, and
   distribute it individually under this License, provided you insert a
   copy of this License into the extracted document, and follow this
   License in all other respects regarding verbatim copying of that
   document.
     _________________________________________________________________

A.8. AGGREGATION WITH INDEPENDENT WORKS

   A compilation of the Document or its derivatives with other separate
   and independent documents or works, in or on a volume of a storage or
   distribution medium, is called an "aggregate" if the copyright
   resulting from the compilation is not used to limit the legal rights
   of the compilation's users beyond what the individual works permit.
   When the Document is included an aggregate, this License does not
   apply to the other works in the aggregate which are not themselves
   derivative works of the Document.

   If the Cover Text requirement of section 3 is applicable to these
   copies of the Document, then if the Document is less than one half of
   the entire aggregate, the Document's Cover Texts may be placed on
   covers that bracket the Document within the aggregate, or the
   electronic equivalent of covers if the Document is in electronic form.
   Otherwise they must appear on printed covers that bracket the whole
   aggregate.
     _________________________________________________________________

A.9. TRANSLATION

   Translation is considered a kind of modification, so you may
   distribute translations of the Document under the terms of section 4.
   Replacing Invariant Sections with translations requires special
   permission from their copyright holders, but you may include
   translations of some or all Invariant Sections in addition to the
   original versions of these Invariant Sections. You may include a
   translation of this License, and all the license notices in the
   Document, and any Warranty Disclaimers, provided that you also include
   the original English version of this License and the original versions
   of those notices and disclaimers. In case of a disagreement between
   the translation and the original version of this License or a notice
   or disclaimer, the original version will prevail.

   If a section in the Document is Entitled "Acknowledgements",
   "Dedications", or "History", the requirement (section 4) to Preserve
   its Title (section 1) will typically require changing the actual
   title.
     _________________________________________________________________

A.10. TERMINATION

   You may not copy, modify, sublicense, or distribute the Document
   except as expressly provided for under this License. Any other attempt
   to copy, modify, sublicense or distribute the Document is void, and
   will automatically terminate your rights under this License. However,
   parties who have received copies, or rights, from you under this
   License will not have their licenses terminated so long as such
   parties remain in full compliance.
     _________________________________________________________________

A.11. FUTURE REVISIONS OF THIS LICENSE

   The Free Software Foundation may publish new, revised versions of the
   GNU Free Documentation License from time to time. Such new versions
   will be similar in spirit to the present version, but may differ in
   detail to address new problems or concerns. See
   http://www.gnu.org/copyleft/.

   Each version of the License is given a distinguishing version number.
   If the Document specifies that a particular numbered version of this
   License "or any later version" applies to it, you have the option of
   following the terms and conditions either of that specified version or
   of any later version that has been published (not as a draft) by the
   Free Software Foundation. If the Document does not specify a version
   number of this License, you may choose any version ever published (not
   as a draft) by the Free Software Foundation.
     _________________________________________________________________

A.12. ADDENDUM: How to use this License for your documents

   To use this License in a document you have written, include a copy of
   the License in the document and put the following copyright and
   license notices just after the title page:

     Copyright (c) YEAR YOUR NAME. Permission is granted to copy,
     distribute and/or modify this document under the terms of the GNU
     Free Documentation License, Version 1.2 or any later version
     published by the Free Software Foundation; with no Invariant
     Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of
     the license is included in the section entitled "GNU Free
     Documentation License".

   If you have Invariant Sections, Front-Cover Texts and Back-Cover
   Texts, replace the "with...Texts." line with this:

     with the Invariant Sections being LIST THEIR TITLES, with the
     Front-Cover Texts being LIST, and with the Back-Cover Texts being
     LIST.

   If you have Invariant Sections without Cover Texts, or some other
   combination of the three, merge those two alternatives to suit the
   situation.

   If your document contains nontrivial examples of program code, we
   recommend releasing these examples in parallel under your choice of
   free software license, such as the GNU General Public License, to
   permit their use in free software.