I principali strumenti che useremo includono:
CUPS
Il Common UNIX Printing System (Sistema comune di stampa in UNIX) (http://www.cups.org) è un gestore di spool di stampa e un insieme di programmi di supporto per usare e gestire stampanti.
Samba
Samba (http://www.samba.org) è un software che permette a computer non-Windows in una rete di comportarsi come computer Windows, grazie all'implementazione di file e protocolli Windows per la condivisione di stampa.
Driver di stampa
LinuxPrinting.org (http://www.linuxprinting.org) offre il più vasto numero di driver di stampa e mantiene un database di stampanti supportate in Linux. È necessario scaricare un driver di stampa per ogni modello di stampante che si desidera usare in Linux. Un driver di stampa consiste in un file PPD e un programma filtro oppure, per le stampanti Postscript, solo in un file PPD.
Tutti i programmi e le librerie necessarie fanno parte dell'archivio Debian standard. I relativi pacchetti si possono scaricare e installare con i normali strumenti di gestione dei pacchetti Debian. Questa è una lista dei pacchetti necessari:
server CUPS
comandi CUPS BSD
programmi client CUPS
programmi di supporto per la stampa da LinuxPrinting.org
server Samba SMB/CIFS per UNIX
client Samba SMB/CIFS per UNIX
ESP Ghostscript ( http://www.cups.org/ghostscript.php)
Non disponibile come pacchetto per Debian GNU/Linux 3.0 (alias woody), si usi al suo posto "gs".
GNU A2PS ( http://www.gnu.org/software/a2ps/)
Questi pacchetti vengono installati dai comandi che seguono. Per eseguire questi comandi è necessario diventare superutente o usare sudo:
apt-get update apt-get install cupsys cupsys-bsd cupsys-client foomatic-bin samba smbclient gs-esp a2ps
Possono essere necessari pacchetti aggiuntivi per stampanti specifiche. Per esempio per far funzionare correttamente molte stampanti HP InkJet, DeskJet e LaserJet è necessario installare il pacchetto hpijs. I file PPD per queste stampanti si riconoscono perché il loro nome contiene la stringa hpijs.
Per configurare le stampanti si usa il comando lpadmin. Il seguente è un esempio di configurazione di una stampante laser con CUPS. Per eseguire questi comandi è necessario diventare superutente o usare sudo:
/usr/sbin/lpadmin -p Laser -v parallel:/dev/lp0 -P /root/laser.ppd /usr/bin/enable Laser /usr/sbin/accept Laser /usr/sbin/lpadmin -d Laser
Si noti che bash ha un comando incorporato chiamato enable, perciò gli utenti con bash dovranno inserire il percorso completo (/usr/bin/enable) per abilitare le stampanti.
Il primo comando crea una nuova stampante chiamata "Laser" connessa alla prima porta parallela e che usa il file PPD /root/laser.ppd. Successivamente con i comandi enable e accept la stampante "Laser" viene abilitata e impostata per accettare compiti. L'ultimo comando imposta "Laser" come stampante predefinita.
Se la propria stampante è connessa a una porta USB o non si conosce il device-uri corretto per la propria stampante si provi a eseguire /usr/sbin/lpinfo -v per ottenere un elenco dei dispositivi di stampa disponibili.
Ci si assicuri che la dimensione della pagina della stampante e le altre opzioni siano impostate in modo corretto eseguendo /usr/bin/lpoptions -l. Nella documentazione di CUPS sono disponibili ulteriori informazioni dettagliate sulla configurazione delle stampanti.
I documenti vengono inseriti nello spool usando o lpr o lp seguito dal nome file. Si può vedere la coda di stampa e controllare lo stato della stampante con il comando lpstat -o o lpstat -p. Per cancellare un compito di stampa si usi o cancel o lprm seguito dall'identificativo del compito.
Il demone di spool di CUPS si chiama cupsd. Converte documenti in formato PostScript e poi fa la conversione nel formato nativo della stampante Figura 1. Le stampanti che non gestiscono il PostScript usano per i documenti un formato raster o bitmap. I formati raster possono essere molto più grandi del PostScript originale e occorre più tempo per inviarli alla stampante.
I filtri sono programmi usati per convertire documenti da un formato a un altro. Il gestore di spool di CUPS fa del suo meglio per trovare un filtro adatto al documento inviato. Se non è installato un filtro adatto alla conversione del proprio documento si riceverà un errore del tipo lpr: unable to print file: client-error-document-format-not-supported.
Molte applicazioni non includono filtri per i formati dei propri documenti. I documenti creati con tali applicazioni possono essere stampati solo dall'interno dell'applicazione stessa, a meno che il documento non venga esportato in formato PostScript o in un altro formato standard.