Stampa

NLNX include un servente di stampa compatibile con il tipo BSD, dove il file /etc/printcap può essere configurato facilmente con l'aiuto di nlnxrc.

Configurazione

Con il comando nlnxrc printer config si rigenera il file /etc/printcap, specificando una sola coda di stampa predefinita, che può corrispondere anche a un servizio presso un elaboratore remoto, inclusi quelli offerti da elaboratori MS-Windows:

nlnxrc printer config[Invio]

.Setup default printer filter type--.
| Please, select one of the         |
| following filter programs:        |
| .-------------------------------. |
| |   magicfilter  Magicfilter    | |
| |   foomatic     Foomatic       | |
| `-------------------------------' |
|-----------------------------------|
|       <  OK  >    <Cancel>        |
`-----------------------------------'

Inizialmente viene chiesto di specificare quale programma usare per la gestione del filtro di stampa che si preferisce. Magicfilter è il più semplice, con lo svantaggio che l'elenco di stampanti è ridotto (con Magicfilter manca soprattutto la gestione attraverso il servente HP IJS), ma consente a chi sa usarlo di predisporre il proprio filtro personalizzato; Foomatic è il più adatto per i meno esperti, essendo fornito di un elenco molto grande di modelli di stampanti.

Quello che segue è l'elenco che può apparire dopo avere selezionato Magicfilter:

.---------------Setup default printer type-----------------.
| Please, select one of the following printer filters.     |
| If you don't find your special printer, please try a     |
| different name that might be compatible with the one     |
| that you have.                                           |
| .------------------------------------------------------. |
| |bj10e        /etc/magicfilter/bj10e-filter            | |
| |bj200        /etc/magicfilter/bj200-filter            | |
| |bj600_draft  /etc/magicfilter/bj600_draft-filter      | |
| |bj600        /etc/magicfilter/bj600-filter            | |
| |bj610        /etc/magicfilter/bj610-filter            | |
| |bj800_draft  /etc/magicfilter/bj800_draft-filter      | |
| |bj800        /etc/magicfilter/bj800-filter            | |
| |bjccolor     /etc/magicfilter/bjccolor-filter         | |
| |cps300       /etc/magicfilter/cps300-filter           | |
| `v(+)--------------------------------------------------' |
|----------------------------------------------------------|
|                <  OK  >            <Cancel>              |
`----------------------------------------------------------'

Il menù seguente riguarda invece la scelta di Foomatic:

.---------------Setup default printer type-----------------.
| Please, select one of the following PPD.                 |
| .------------------------------------------------------. |
| |   HP-2000C-hpijs                         .           | |
| |   HP-2000C-pcl3                          .           | |
| |   HP-2500C-hpijs                         .           | |
| |   HP-2500CM-hpijs                        .           | |
| |   HP-2500CM-Postscript                   .           | |
| |   HP-2500C-pcl3                          .           | |
| |   HP-2563-lp2563                         .           | |
| |   HP-Business_Inkjet_1100-hpijs          .           | |
| |   HP-Business_Inkjet_1200-hpijs          .           | |
| |   HP-Business_Inkjet_2200-chp2200        .           | |
| |   HP-Business_Inkjet_2200-hpijs          .           | |
| `---v(+)-----------------------------------------------' |
|----------------------------------------------------------|
|                <  OK  >         <Cancel>                 |
`----------------------------------------------------------'

Nel caso di Foomatic, i nomi dei modelli di stampante contengono anche un'estensione che fa capire in che modo viene realizzato il filtro; pertanto, spesso sono disponibili filtri differenti per uno stesso modello. Si osservi che non è garantito che funzionino tutte le voci e può essere necessario fare dei tentativi.

Dopo avere specificato il nome del filtro da usare, si può indicare l'indirizzi IPv4 presso il quale si trova la stampante; se si tratta dell'indirizzo 127.0.0.1 o se si lascia vuoto il campo, si intende fare riferimento a una stampante locale. In alternativa, si può indicare un percorso per raggiungere una stampante condivisa di MS-Windows.

.----------------Printer location------------------.
| Please insert the printer location address; if   |
| the printer is local, just use "127.0.0.1" or    |
| leave it blank; if it is a BSD remote printer,   |
| put the IPv4 address; if it is a SMB (Windows)   |
| remote printer, enter the resource path, like:   |
| "//hostname/printer" (do not use backslash).     |
| .----------------------------------------------. |
| |127.0.0.1                                     | |
| `----------------------------------------------' |
|--------------------------------------------------|
|             <  OK  >       <Cancel>              |
`--------------------------------------------------'

Se si fa riferimento a una stampante locale (come appare nell'esempio), viene richiesto di indicare il file di dispositivo a cui corrisponde la stampante:

.---Setup default printer device-----.
| Please, select one of the          |
| following printer devices:         |
| .--------------------------------. |
| |   /dev/lp0      /dev/lp0       | |
| |   /dev/usb/lp0  /dev/usb/lp0   | |
| `--------------------------------' |
|------------------------------------|
|       <  OK  >     <Cancel>        |
`------------------------------------'

Quando si installa NLNX nel disco fisso, se questo non viene aggiornato automaticamente, tramite il protocollo DHCP, è necessario predisporre il file /etc/printcap con l'aiuto del comando nlnxrc printer config, ritoccandolo eventualmente a mano in un momento successivo. Segue un esempio riferito alla stampa compatibile con un modello HP Laserjet generico, collegata alla prima porta parallela:

lp:\
        :lp=/dev/lp0:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/log/lp-acct:\
        :lf=/var/log/lp-errs:\
        :if=/etc/magicfilter/laserjet-filter:\
        :pl#66:\
        :pw#80:\
        :pc#150:\
        :mx#0:\
        :sh:

Con il comando nlnxrc printer config è possibile configurare una sola stampante; se si vogliono gestire più stampanti, o semplicemente più code differenti, occorre modificare il file /etc/printcap a mano. L'esempio seguente riporta il caso di due code di stampa: quella predefinita riguarda una stampante locale HP Laserjet, mentre la coda successiva (lp2) è rivolta a una stampante remota (192.168.1.254), senza specificare il tipo di filtro:

lp:\
        :lp=/dev/lp0:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/log/lp-acct:\
        :lf=/var/log/lp-errs:\
        :if=/etc/magicfilter/laserjet-filter:\
        :pl#66:\
        :pw#80:\
        :pc#150:\
        :mx#0:\
        :sh:

lp2:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/log/lp-acct:\
        :lf=/var/log/lp-errs:\
        :pl#66:\
        :pw#80:\
        :pc#150:\
        :mx#0:\
        :mc#999:\
        :rp=lp:\
        :rm=192.168.1.254:\
        :sh:

Per approfondire l'argomento si può consultare il capitolo 27 dedicato alla stampa.

Va osservato che se si richiede di utilizzare una stampante condivisa, specificando un percorso del tipo //pc01/stampante, tale percorso va usato utilizzando solo barre oblique normali, e non le barre inclinate nel modo opposto, come fa MS-Windows; inoltre, se il nome della stampante contiene spazi, al loro posto va usata la sequenza %20. Infine, va tenuto presente che la configurazione non si riflette sostanzialmente nel file /etc/printcap, perché sono gli script /etc/script/lpr e /etc/script/lp che si occupano, in tal caso, di inviare il file da stampare (filtrato opportunamente) alla condivisione. Ciò significa anche che per raggiungere una stampante condivisa, non è possibile usare direttamente il comando /usr/bin/lpr, ma bisogna avvalersi necessariamente degli script di NLNX.

.----------------Printer location------------------.
| Please insert the printer location address; if   |
| the printer is local, just use "127.0.0.1" or    |
| leave it blank; if it is a BSD remote printer,   |
| put the IPv4 address; if it is a SMB (Windows)   |
| remote printer, enter the resource path, like:   |
| "//hostname/printer" (do not use backslash).     |
| .----------------------------------------------. |
| |//docenti/stampante                           | |
| `----------------------------------------------' |
|--------------------------------------------------|
|             <  OK  >       <Cancel>              |
`--------------------------------------------------'

Quando si specifica un percorso di stampa riferito a una condivisione MS-Windows, viene richiesto di specificare eventualmente il nominativo dell'utente e la parola d'ordine per accedere al servizio. Naturalmente, se questo servizio non lo richiede, tali dati aggiuntivi non vanno inseriti.

.----------Printer user------------.
| Please insert the user to access |
| the remote printer               |
| "//docenti/stampante". If there  |
| is no user, just leave it blank. |
|                                  |
| .------------------------------. |
| |                              | |
| `------------------------------' |
|----------------------------------|
|       <  OK  >    <Cancel>       |
`----------------------------------'
.--------Printer password----------.
| Please insert the password to    |
| access the remote printer        |
| "//docenti/stampante" as user    |
| "daniele". If there is no        |
| password, just leave it blank.   |
| .------------------------------. |
| |                              | |
| `------------------------------' |
|----------------------------------|
|       <  OK  >    <Cancel>       |
`----------------------------------'

Opzioni di avvio per la stampa

Tra le opzioni di avvio di NLNX, ne sono previste alcune per la configurazione al volo della stampante. In particolare, n_lpr_filter si può usare sia per la stampa «normale» (BSD), sia per quella con le stampanti condivise di MS-Windows allo scopo di consentire l'indicazione del filtro da applicare ai file che vengono inviati alla stampante. Il nome del filtro deriva dal nome del file contenuto nella directory /etc/magicfilter/, togliendo la terminazione -filter, oppure dal nome del file PPD, togliendo l'estensione .ppd o .ppd.gz. Per esempio, volendo utilizzare il file ljet4-filter va scritto semplicemente il nome ljet4, mentre volendo utilizzare il file HP-LaserJet_4-ljet4.ppd.gz va scritto solo il nome HP-LaserJet_4-ljet4. Segue la descrizione di alcuni esempi un po' più completi.

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net