Inserisci Infobox

Stampa e condivisione stampanti

La stampa su Linux e la condivisione delle stampanti in rete.

Introduzione a LPR (Line Printer Protocol)
Autore: ask - Ultimo Aggiornamento: 2003-03-26 23:07:01 - Data di creazione: 2003-03-26 23:07:01
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

LPR (Line Printer Protocol) è il protocollo utilizzato per la comunicazione di stampa tra client e server, basato sul TCP. La porta sui cui va in ascolto è di default la 515, risponde a richieste provenienti dalle porte sorgenti da 721 a 731.  

[pippo@SATURNO root]$ cat /etc/services | grep printer
printer         515/tcp         spooler         # line printer spooler
printer         515/udp         spooler         # line printer spooler


Nei sistemi Unix standard vi sono una serie di programmi che interagiscono con il processo di stampa:
- lpr ha il compito di gestire la coda di stampa
- lpq visualizza la coda di stampa
- lprm rimuove file dalla coda di stampa
- lpc programma di controllo della stampa e stampanti

LPRng di Patrick Powell è un altro software di stampa che migliora alcune funzionalità di sicurezza e portabilità rispetto a lpr.
LPRng può essere integrato con Samba, permette autenticazioni di stampa sicure supportando i principali software di crittografia.

lpstat
Autore: lorenz - Ultimo Aggiornamento: 2003-06-23 22:20:46 - Data di creazione: 2003-06-23 22:20:46
Tipo Infobox: COMMANDS - Skill: 3- INTERMEDIATE

Questo comando della suite Cups permette di monitorare i processi di stampa e visualizzare informazioni sulle stampanti e le code presenti nel server.

Nonostante la presenza della comoda interfaccia web per controllare i processi e lo stato delle stampanti cups include lpstat una  comoda utility da riga di comando.
La sua sintassi:
lpstat -opzioni

Se usato senza alcuna opzione lpstat stampa a monitor tutti i jobs accodati per l'utente che lo ha lanciato. Le sue opzioni sono uguali per alcuni casi a quelle usate in lpadmin e lpoptions.

-E: Forza l'uso di connessioni cifrate con il server.
-h nome_server: Specifica il server con cui si vuole interagire.
-a stampante/i: Mostra lo stato di una o più stampanti restituendo informazioni sull'accettazione dei processi. Se usato senza specificare la stampante mostra tutte le stampanti e le istanze/code configurate e che accettano i jobs.
-c classe/i: Mostra le classi e le stampanti comprese nella loro dichiarazione. Se usato senza argomenti mostra tutte le classi presenti nel sistema e se non fosse presente neanche una classe non restituisce nessun output.
-d: Mostra la destinazione di default.
-l: Mostra una lista delle stampanti, delle classi e dei jobs attivi.
-o destinazione/i: Mostra le code di stampa per la o le destinazioni specificate. Se si omette la destinazione mostra tutti i jobs in coda.
-p stampante/i: Mostra le stampanti e se accettano o meno i processi di stampa. Se usato senza specificare una o più stampanti mostra queste informazioni per tutte le stampanti.
-r: Permette di verificare se il server CUPS sia attivo o no.
-R: Mostra l'ordine dei jobs nella coda di stampa.
-s: Mostra un sommario dello stato delle stampanti includendo la destinazione di default, le classi e le stampanti membro per ciascuna classe e tutte le stampanti associandole alla loro device-URI. E' equivalente ad usare insieme le opzioni -d, -c e -v.
-t: Mostra un elenco completo di informazioni di stato per tutte le stampanti e le classi definite, è equivalente ad usare insieme le opzioni -r, -d, -c, -a, -p, -v e -o.
-u utente/i: Permette di verificare i processi di stampa attivi per l'utente specificato. Se usato omettendo l'utente si ottiene una lista dei jobs associati all'utente corrente.
-W numero_job: Permette la verifica  dello stato dei jobs in esecuzione e di quelli eseguiti.

lpoptions
Autore: lorenz - Ultimo Aggiornamento: 2003-06-23 22:16:41 - Data di creazione: 2003-06-23 22:16:41
Tipo Infobox: COMMANDS - Skill: 3- INTERMEDIATE

Questo comando permette di visualizzare e modificare i settaggi per le opzioni e i valori di default da riga di comando.

La sua sintassi è complessa può variare a seconda del lavoro che si sta compiendo e può essere riassunta così
lpoptions [opzioni]

Un esempio:
lpoptions -h nome_server -d destinazione/istanza -o opzione=valore .... -o opzione=valore

Se lanciato senza argomenti mostra le opzioni settate per la coda di stampa di default. Le opzioni sono:
-E: Abilita l'uso di connessioni criptate per comunicare con il server. Occorre aver abilitato il supporto OpenSSL per il server.
-d destinazione/istanza: Specifica la stampante predefinita per la destinazione dichiarata. Se si utilizza un'istanza che, per chiarire, può essere paragonabile alla definizione di una coda si setta l'istanza come predefinita. Questa opzione sovrascrive la definizione della stampante di default per l'utente corrente.
-h nome_server: Definisce il server cups con cui interagire.
-l: Lista tutte le opzioni specifiche di stampa e indica con un simbolo asterisco * quelle correntemente usate.
-o opzione=valore: Permette la specifica delle varie opzioni. Con il chiave -l si possono ricavare le opzioni e i loro valori possibili.
-p destinazione/istanza: Definisce la stampante o un'istanza a cui applicare le opzioni che si specificheranno. Se l'istanza non esiste ne viene creata una con il nome usato.
-r opzione: Rimuove l'opzione specificata.
-x destinazione/istanza: Rimuove tutte le opzioni per la destinazione o la coda definita.

Questo comando si appoggia su due distinti file di sistema. Uno, il principale, viene modificato quando l'utente root utilizza il comando e per installazioni di default si trova in /etc/cups/ e si chiama lpoptions. Le definizioni in questo file coinvolgono tutte le destinazioni/istanze per tutti gli utenti. Per i settaggi del singolo utente queste informazioni sono salvate in un file all'interno della home dell'utente e si chiama .lpoptions    

lpadmin
Autore: lorenz - Ultimo Aggiornamento: 2003-06-23 22:14:56 - Data di creazione: 2003-06-23 22:14:56
Tipo Infobox: COMMANDS - Skill: 2- JUNIOR

Oltre alla utile e pratica interfaccia web la suite Cups integra al suo interno vari comandi per la sua gestione e configurazione. Il comando lpadmin permette di configurare le stampanti e le classi con le rispettive code ed è utile conoscerlo in casi in cui si sia impossibilitati ad usare un browser.  

Questo comando è molto utile se si deve abilitare la stampante predefinita, se si deve modificare code o stampanti, per aggiungere o eliminare classi e stampanti. La sua sintassi è

lpadmin [ opzioni ] destinazione/opzioni_stampante
Dove per destinazione si intende una stampante o una classe e le opzioni_stampante vengono specificate  come vedremo dopo la chiave -o.
Le opzioni e le variabili settabili non sono moltissime:
-E: Questa opzione può avere due significati diversi a seconda se utilizzata come opzione prima di ogni altra o di norma in fondo alla riga di comando. Nel primo caso implica l'uso di una connessione criptata con il server. Occorre aver configurato il server per l'uso di OpenSSL. Di norma se usata così necessita dell'opzione -h nome_server. Nel secondo caso abilita o disabilita la stampante, ha un significato equivalente ai comandi enable e disable.
-h nome_server: Permette di specificare il server a cui inviare i comandi.
-c classe: Aggiunge la stampante dichiarata alla classe.
-i interfaccia: Si usa per specificare un file di interfaccia in sile System V, generalmente uno script, non può essere utilizzato con l'opzione -P file_PPD
-m modello: Specifica un file System V o PPD situato nella directory dei modelli generalmente /usr/share/cups/model.
-o opzione: Questa chiave è molto importante e raggruppa sotto di se numerose sotto-opzioni per definire particolari specifiche per la coda.
-o nome=valore: Permette di settare una opzione per un file PPD o una stampante.
-o job-k-limit=valore: Specifica il limite di grandezza in Kilobyte su una base per singolo utente.
-o job-page-limit=valore: Specifica il limite massimo di pagine stampabili in un singolo processo di stampa su una base per singolo utente. Le stampe su fronte-retro sono contate come due pagine.
-o job-quota-period=valore: Specifica il periodo di accesso su una base per singolo utente. Il valore va specificato in secondi.
-r classe: Rimuove la stampante dichiarata dalla classe. Se si sta eliminando l'ultima stampante di una classe quest'ultima verrà eliminata.
-u allow/deny:utente,utente: [ -u deny:all; -u allow:none ] Specifica i permessi degli utenti su una specifica stampante.
-v device-URI: Specifica il percorso per la device usata da una determinata stampante.
-D info: Permette di specificare una descrizione della stampante.
-L locazione: Setta una locazione per la stampante specificata.
-P file_PPD: Specifica un file Postscript Printer Description da usare con la stampante.
-d destinazione: Setta come default la destinazione per la stampante o la classe dichiarata.
-x destinazione: Elimina la destinazione per la stampante o la classe dichiarata.

La stampa remota in stile BSD usando SMB/CIFS
Autore: lorenz - Ultimo Aggiornamento: 2003-06-23 21:56:29 - Data di creazione: 2003-06-23 21:56:29
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Aggiungere una stampante in stile BSD in una rete Samba necessita di poche semplici configurazioni. Una volta configurato il sistema di stampa e accertato che tutto funzioni correttamente occorre per lo più lavorare sul file smb.conf.

In questo caso innanzi tutto si dovrà aggiungere alle opzioni [global] del server samba le seguenti direttive:

printing = bsd
printcap name = /etc/printcap


Con queste righe si specifica che si tratta di un sistema di stampa stile BSD e che il percorso del file di definizione delle stampanti è /etc/printcap.
In seguito si dovranno definire lo share [printers] per le stampanti:

[printers]
        comment = All Printers
    security = server
        path = /var/spool/lpd/lp
        printable = Yes
        create mask = 0600
        browseable = No


e quello per la stampante specifica:

[deskjet]
      security = server
      path = /var/spool/lpd/lp
      printer name = lp
      writable = yes
      guest ok = yes
      printable = yes
      print command = lpr -r -h -P %p %s


In questo modo si definisce il comportamento del samba server e con l'opzione print command si dichiara il programma di stampa e i parametri che ne regolano il risultato. In questo esempio si stabilisce inoltre che le autenticazioni sono gestite sulla rete SMB/CIFS da un server preposto ma questo non è obbligatorio.

Assicurandosi che il percorso specificato per la stampante corrisponda a quello inserito nel file printcap con una configurazione di questo tipo si può cominciare a stampare.
Essendo comunque un sistema complesso e ricco di variabili, tra cui ad esempio l'enorme numero di diversi modelli di stampanti in circolazione, è consigliabile fare riferimento alla documentazione ufficiale per configurazioni particolari.

Configurare Cups per stampare con il protocollo SMB/CIFS
Autore: lorenz - Ultimo Aggiornamento: 2003-06-23 21:54:11 - Data di creazione: 2003-06-23 21:54:11
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Per poter usare Cups in una rete windows, permettendo la stampa remota ai client Microsoft oppure usando una stampante condivisa da uno di essi, occorre utilizzare Samba che dalla versione 2.0.6 supporta l'interazione con questo potente sistema di stampa. Dalla versione 2.2 di Samba in poi si ha anche la possibilità di esportare i driver necessari per la stampa con Windows.

Gli accorgimenti da prendere per poter far stampare della macchine windows sulla rete usando una stampante linux configurata con cups non sono molti e riguardando in special modo la configurazione del server Samba.
Innanziutto occorrerà aggiungere alla opzioni globali i seguenti parametri
[Global]
printing = cups
printcap name = cups


A questo punto non dovrebbe essere necessaria alcuna altra configurazione per poter stampare attraverso cups anche se di norma sarà necessario definire anche la sezione [printers] che permette a Samba di caricare come risorse condivise tutte le stampanti definite nel sistema di stampa e di configurarne alcuni parametri specifici.
[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No


Volendo si può inoltre esportare i driver necessari ai client Windows e a tale scopo viene in aiuto un comodo comando cupsaddsmb che permette di esportare i drivers cups.
Una volta scaricati i driver e copiati nella directory drivers all'interno della directory radice che di norma si trova in /usr/share/cups e facendo attenzione perchè i nomi siano in maiuscolo si configura smb.conf aggiungendo lo share [print$] nel modo che segue
[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = root
        create mask = 0664
        directory mask = 0775


A questo punto configurate le share [printers] e [print$] si può usare il comando cupsaddsmb per esportare i drivers.
Un comando di questo tipo aggiunge i driver a tutte le code di stampa per l'utente root
#cupsaddsmb -U root -a

L'opzione -a serve a specificare tutte le code configurate nel sistema cups.
Questo comando permette anche di aggiungere coda per coda in modo di permettere una configurazione fine della stampa remota per i client windows.

Se invece si desidera raggiungere una stampante condivisa da una macchina Windows usando cups si possono usare due metodi:
Il primo usa l'implementazione del protocollo lpd e il TCP/IP Printing Service di Windows mentre il secondo usa il protocollo SMB/CIFS.
All'interno di /usr/lib/cups/backend/ la directory in cui si trovano quei programmi che permettono a Cups di interagire con le device, dovrebbe trovarsi un link simbolico chiamato smb che punta al comando smbspool, se non è così è necessario crearlo.
Infine con il comando lpadmin o con l'interfaccia web di amministrazione si creeranno le definizioni delle diverse code e stampanti che usano come device URI delle stringhe nella forma
smb://server/nome_risorsa
smb://workgroup/server/nome_risorsa
smb://user:pass@server/nome_risorsa

/etc/cups/cupsd.conf
Autore: lorenz - Ultimo Aggiornamento: 2004-01-21 12:35:14 - Data di creazione: 2004-01-21 12:35:14
Tipo Infobox: PATH - Skill: 3- INTERMEDIATE

Il file di configurazione principale del sistema di stampa cups. Gestisce principalmente il comportamento del demone che fornisce i servizi di stampa e di amministrazione attraverso la sua interfaccia web. Permette di definire se occorre l'uso di cifratura delle comunicazioni, definire gli accessi alle risorse del server e se il server debba o meno notificare con messaggi broadcast la sua presenza e le code disponibili sulla rete.

Generalmente a installazione compiuta si ha un esempio di questo file con tutte le opzioni e i loro valori di default all'interno della directory di cups in /etc o dove specificato in fase di compilazione. Le direttive all'interno del cupsd.conf sono davvero molte e se i commenti del file non bastassero la sua documentazione è ampia. In se la sua struttura è uguale a quella di Apache così come la sua sintassi.
I valori di default a parte qualche configurazione fine possono andare benissimo specie in network non troppo grossi e con un traffico di rete medio.

Un file strutturato in questo modo potrebbe andare benissimo per un server in una piccola rete locale:
#cat /etc/cups/cupsd.conf
LogLevel info
Port 631
Browsing Off
BrowseAddress 192.168.0.255

< Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 127.0.0.2
Allow From 192.168.0.*
</Location>
In questo caso definisco l'accesso alla radice del sistema cups. Permetto così ai client remoti di stampare attraverso questo server, la location /printers che non è definita perchè "eredita" i settaggi della location radice /. Per questa direttiva non è specificata alcuna autenticazione degli accessi

< Location /admin >
AuthType Basic
AuthClass System
Queste direttive permettono di specificare l'autenticazione per la location /admin basata su una verifica degli utenti nel sistema, appartenenti al gruppo di sistema modificabile con la direttiva Systemgroup. Si specificano sempre racchise in un'istanza < Location>
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>

Il sistema di stampa CUPS
Autore: lorenz - Ultimo Aggiornamento: 2003-06-14 15:24:06 - Data di creazione: 2003-06-14 15:24:06
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

Cups è a tutti gli effetti il sistema di stampa proposto come autorevole sostituto dei metodo di stampa BSD.
Rivoluziona l'intero concetto di stampa, gestendo i filtri in proprio e infatti incorpora molti di questi programmi al suo interno ad esempio una versione specifica di ghostscript.    

Il sistema cups utilizza un protocollo derivato da http chiamato IPP (Internet Printing Protocoll, rfc 2568) e incorpora un server http che gli permette di mantenere un'interfaccia amministrativa via web in ascolto sulla porta 631. Per determinare il comportamento di questa interfaccia e in generale del sistema di stampa si lavora sul file di configurazione  cupsd.conf che solitamente si trova dentro /etc/cups. Questo file ha una sintassi ispirata al file di configurazione di Apache. In questo file si specificano il nome della macchina, il linguaggio di default, i parametri di accesso e la directory radice del sistema, tutti i parametri specifici della applicazione, file di log e comportamenti particolari in caso di eventi differenti.
Cups inoltre gestisce le informazioni necessarie all'elaborazione dati per la specifica stampante usata tramite dei file contenenti istruzioni di tipo MIME, chiamati file PPD e generalmente posti in /usr/share/cups/model/.
Con cups si è in grado di configurare stampanti locali e inoltre permette di aggiungere stampanti remote sia che utilizzino il protocollo IPP che LPD. Supporta inoltre la stampa via SMB in un network Samba.

Con il comando lpadmin si possono aggiungere od eliminare stampanti logiche, inoltre una volta definite si possono abilitare o disabilitare e si possono definire le policy per i processi di stampa. In questo modo si ha la possibilità di amministrare i comportamenti di una determinata stampante. Se si disabilita una stampante questa continuerà ad accettare comunque i processi di stampa inserendoli nella sua coda e senza stamparli mentre se si è definito che deve rifiutare i processi di stampa non verrà accodata nessuna stampa.
Si possono stabilire inoltre delle classi che riuniscono sotto di se diverse stampanti, permettendo così una gestione anche di gruppo. Se un utente invierà un processo alla classe sarà cups a stabilire a quale stampante va inviato. Le classi accettano gli stessi parametri enable e disable, accept e refuse in modo da permettere una gestione complessiva per gruppi di stampanti logiche. Va tenuto conto tuttavia che le stampanti logiche non subiscono le direttive riferite ad una classe sicchè si può disabilitare una classe ma far elaborare processi di stampa ad una stampante del gruppo.
Le informazioni sulle stampanti e sulle classi vengono memorizzate rispettivamente su i file /etc/cups/printers.conf e su /etc/cups/classes.conf, due file che volendo sono editabili a mano ma che generalmente si gestiscono sempre attraverso i comandi di amministrazione tra cui lpadmin.

Per lavorare con cups si utilizzano i comandi standard del sistema BSD, lp o lpr. Per definire code di stampa remote si utilizza una sintassi del genere nome-coda@host-remoto.
Per compatibilità con programmi che potrebbero richiederne la presenza, cups permette di aggiornare il file printcap e nel caso si desiderasse mantenere intatto questo file per il suo uso con sistemi BSD esiste una direttiva di configurazione che permette di specificarne uno alternativo, anche perchè comunque al suo interno si troveranno le specifiche per le stampanti ma i record classici di specifica delle stesse non sono necessari.

Questo versatile e potente sistema di stampa permette di gestire anche delle direttive per i client.
Il file principale per questo è /etc/cups/client.conf ma si possono definire direttive per singolo utente in un file chiamato .cupsrc posizionato all'interno della home directory delllo stesso. Un uso classico di questi file che generalmente sono vuoti può essere quello di specificare un percorso di una stampante predefinita per un utente diversa dalla stampante predefinita sulla workstation.

/etc/printcap
Autore: lorenz - Ultimo Aggiornamento: 2003-06-14 15:36:17 - Data di creazione: 2003-06-14 15:36:17
Tipo Infobox: PATH - Skill: 3- INTERMEDIATE

Il file centrale di un sistema di stampa LDP, BSD da cui si definiscono le stampanti, le diverse code a loro assegnate e i filtri da utilizzare. Come tanti file di configurazione si tratta di un file di testo soggetto a particolari regole di sintassi.

In questo esempio si definisce una stampante predefinita chiamata lp o HP Deskjet950 connessa al computer via usb che ha assegnata una coda di stampa nella directory /var/spool/lpd/lp. I backslash servono a dichiarare una continuazione di riga e non sono obbligatori se si usa un sistema di stampa LPRng ma alcuni wizard di configurazione li usano probabilmente per maggiore portabilità.

# Stampante predefinita
lp | HP Deskjet950:\
    :lp=/dev/usb/lp0:\
    :sd=/var/spool/lpd/lp:\
    :sh:\
    :mx#0:\
        :if=/percorso/del/filtro:
    :lf=/var/spool/lpd/lp/log:\
    :af=/var/spool/lpd/lp/acct:\


I record sono specifiche per una stampante e defiscono il comportamento della coda.
In questo esempio
lp la device configurata e connessa alla stampante
sh specifica se stampare un foglio separatore tra i differenti processi di stampa e in questo caso è impostato in modo da non stampare nessun foglio.
mx limita la grandezza massima dei file da stampare. Nell'esempio è impostato a zero, nessun limite.
sd specifica il percorso alla cartella utilizzata per la coda di stampa.
if input filter, definisce il filtro usato per la conversione dati.
Per gli ultimi due, il file di log della direttiva lf e il file di registrazione informazioni sui processi di stampa della direttiva af devono prima essere creati perchè il sistema di stampa possa scriverli.

Per aggiungere una  coda di stampa remota si utilizzano i record rm e rp.

# Stampante condivisa in rete da un printserver
printserver:\
        :sd=/var/spool/lpd/printserver:\
    :sh:\
        :mx#0:\
    :if=/percorso/del/filtro:
        :rm=printserver.esempio.com:\
        :rp=lp:\

        
I quali rispettivamente indicano il server remoto su cui è disponibile la coda di stampa e il nome della coda remota da utilizzare. In questo caso si usa una coda remota in stile BSD.
Da notare inoltre che usando lp come nome della stampante si definisce il nome standard della stampante predefinita modificabile attraverso la variabile di ambiente $PRINTER.

I diversi sistemi di spooling
Autore: lorenz - Ultimo Aggiornamento: 2003-06-14 15:31:15 - Data di creazione: 2003-06-14 15:31:15
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Esistono diversi sistemi di stampa per Linux, oltre al  classico lpd o anche detto BSD system, si trovano parecchi progetti diversi che offrono sistemi di stampa. La scelta può essere dettata dalla distribuzione che si sta utilizzando ma nessuno impedisce di installare il proprio. Ovviamente occorre sceglierne uno visto che non si possono utilizzare due sistemi diversi contemporaneamente.

LPD
L'originale e ormai classico BSD Unix Line Printer Daemon, è stato lo standard Unix per anni.
E' praticamente disponibile su ogni versione di Unix e nonostante sia ormai superato è un valido sistema di stampa di base. Con stampanti moderne occorre un ulteriore lavoro di configurazione con l'ausilio di script per i filtri e programmi front-end.
LPD è anche il nome dato al protocollo di stampa descritto nella rfc 1179. Questo protocollo è di fatto lo standard per la comunicazione con networks di stampa.
Se si medita di utilizzare LPD è comunque consigliabile l'uso di LPRng che offre una più evoluta forma di configurazione e supporta la cifratura delle connessioni, praticamente ogni versione di Unix abbastanza recente dovrebbe utilizzarlo ma ognuno aggiunge e modifica per cui è veramente difficile stabilire quale versione di lpd si stia utilizzando.
Riferirsi alla documentazione del sistema operativo Unix installato per approfondimenti.
Esistono diversi sistemi front-end per usare lpd e vista la complessità dell'argomento è più semplice usarne uno per configurare le stampanti. Tra questi xpdq per la sua semplicità  è consigliato da Grent Taylor il curatore del Printig-HOWTO ma le principali distribuzioni generalmente forniscono una propria interfaccia per la configurazione.

PDQ
L'autore di questo software ironizza con il significato di questo nome e lo definisce "Print don't Queue". In effetti questo sistema di stampa rivoluziona il concetto di stampa  in stile BSD facendo effettuare il lavoro di elaborazione dati alla workstation. In un contesto di rete con un print server a cui si collegano le workstation evita di sovraccaricare di lavoro il server portandolo ad un miglioramento delle prestazioni ed evitando la perdita di processi di stampa. Infatti questo sistema fa effettuare tutto il lavoro di filtraggio all'utente che genera il lavoro. Questo può avere dei difetti in caso di elaborazioni complesse rallentando la macchina su cui si sta lavorando, inoltre con l'uso di particolari driver per stampanti ad alta risoluzione ghostscript deve effettuare tutto il lavoro di traduzione prima che il processo possa essere inviato e si rischia di attendere diversi minuti prima che la stampa inizi.
Nel pacchetto è compreso xpdq un comodo front-end che permette di configurare e aggiungere le stampanti. Maggiori informazioni sul sito del progetto http://pdq.sourceforge.net/.

LPRng
In molti unix recenti si userà questo software che in se migliora e perfeziona il classico lpd aggiungendo features come l'assenza di eseguibili SUID e il supporto di autenticazioni con PGP e Kerberos infatti potrebbe essere considerato un lpd con un occhio in più alla sicurezza.
Inoltre rende la configurazione di network anche molto grossi ( tante workstation, diverse stampanti) più semplice e mantenibile.
Sul sito ufficiale http://www.lprng.com/ si può trovare tutta la documentazione relativa al pacchetto.

PPR
Questo sistema di spooling è dedicato a sistemi di stampa Postscript ma ha la capacità di utilizzare anche ghostscript per l'uso con stampanti.
Maggiori informazioni si possono trovare sul sito http://ppr.sourceforge.net/

CUPS
E' un sistema di stampa che si pone come standard sostitutivo di LPD anche dal punto di vista del protocollo utilizzato, per il quale Cups utilizza una implementazione di IPP (Internet Printing Protocoll) un protocollo simile ad http.
Fornito di interfacce di amministrazione sia web che gui e anche di un'interfaccia a riga di comando è considerato un potente sistema di stampa. Supporta la stampa remota attraverso Samba. Puntando il browser all'indirizzo locale localhost:631 si accede all'interfaccia che permette di aggiungere stampanti, configurarle, controllare i processi in corso e quelli compiuti. Inoltre si può visitare il sito ufficiale all'indirizzo http://www.cups.org/, una sorgente riccha di documentazione e informazioni sui driver.

Le stampanti supportate e eventuali problemi
Autore: lorenz - Ultimo Aggiornamento: 2003-06-14 15:27:41 - Data di creazione: 2003-06-14 15:27:41
Tipo Infobox: DESCRIPTION - Skill: 3- INTERMEDIATE

Non tutte le stampanti possono essere utilizzate con Linux. Come capire se la propria stampante va bene e dove trovare la relativa documentazione.

Se la propria stampante è una stampante Postscript non si necessita di driver speciali. Nella maggioranza dei casi però si dovrà scoprire se per la propria stampante esiste il driver Postscript che sia in grado di generare dati in un linguaggio comprensibile dal modello che si possiede.

Per capire se la stampante che si possiede è supportata vi sono diverse risorse online dove andare a cercare e ovviamente all'interno della directory dedicata alla documentazione che varia e si può trovare generalmente a partire dalla directory /usr.
Esiste inoltre un how-to chiamato Printing-HOWTO che se non installato con la distribuzione in uso può essere recuperato a partire dall'indirizzo www.tldp.org, il quale raccoglie realmente quasi tutto quello che occorre sapere per affrontare l'argomento e i riferimenti ad ulteriore documentazione più specifica.

Sul sito www.linuxprinting.org si trova oltre a molta documentazione sull'argomento, il database delle stampanti supportate con i riferimenti ai relativi driver.
Una volta trovati i riferimenti per la stampante occorre capire se il pacchetto Ghostscript installato comprenda anche il driver che serve con il comando gs -h che ci restituirà una lista dei driver disponibili.
Le ultime versioni di ghostscript comprendono ormai il supporto per quasi tutte la ultime stampanti uscite e si possono trovare ulteriori riferimenti sul sito www.cs.wisc.edu/~ghost/ a meno che non si abbia acquistato un modello che lavora con driver proprietari dipendenti dalla piattaforma (generalmente Microsoft).
Queste stampanti si chiamano GDI; GDI è un'interfaccia di sviluppo concepita da Microsoft per la rappresentazione grafica. Il problema non è rappresentato dall'interfaccia di sviluppo ma dal fatto che queste stampanti sono indirizzabili solo attraverso un linguaggio di stampante proprietario.
Alcune di queste oltre alla modalità GDI supportano, previa configurazione, anche un linguaggio standard. Di solito la modalità viene stabilita al momento dell'installazione, sicchè se si è utilizzato un'altro sistema operativo e si è abilitata la modalità GDI occorre, utilizzando il primo sistema operativo usato, riportarla alla modalità standard. Per alcune di queste stampanti è possibile che esista anche un driver per Linux, fare riferimento alla documentazione acclusa alla stampante e visitare il sito del produttore.

La stampa con Linux
Autore: lorenz - Ultimo Aggiornamento: 2003-06-14 15:20:05 - Data di creazione: 2003-06-14 15:20:05
Tipo Infobox: DESCRIPTION - Skill: 2- JUNIOR

Prima di affrontare i diversi sistemi di stampa esistenti per Linux occorre comprendere il funzionamento dell'interazione tra il sistema operativo e la stampante.

Con Linux si comunica con le stampanti attraverso le code di stampa (print queue).
I dati da stampare vengono memorizzati temporaneamente nella coda da dove lo spooler si occuperà di inoltrarli alla stampante. Spesso i dati da stampare non si trovano nel formato giusto per poter essere inviati direttamente alla stampante e di solito devono prima essere convertiti in un formato comprensibile di modo che possano essere emessi correttamente.
I filtri della stampante si occupano proprio di questo lavoro di traduzione dei dati in un linguaggio comprensibile alla stampante e che permetta di stamparli mantenendo le loro forma originale.
Vediamo alcuni esempi di linguaggi di stampanti standard.
Testo in ASCII: La maggior parte di stampanti è in grado di emettere direttamente testi ASCII.
Postscript: E' il linguaggio standard di Unix/Linux e permette di stampare direttamente su stampanti Postscript. Queste stampanti sono molto costose a causa della complessità di questo linguaggio che costringe ad una laboriosa elaborazione dei dati per giungere al risultato finale. In più a causa di un mero problema di licenze i costi aumentano e vanno tenuti presente in caso si meditasse l'acquisto di una di queste potenti stampanti.
Ghostscript : In realtà non è un linguaggio bensì si tratta di un software che mantiene un database di driver per stampanti e si occupa di tradurre i dati in un linguaggio adatto alla stampante in uso.

Il processo di stampa avviene in questo modo:
1. L'utente o l'applicazione genera un incarico di stampa.
2. I dati vengono memorizzati temporaneamente nella coda di stampa da cui lo spooler li inoltra al filtro della stampante.
3. Il filtro della stampante determina il tipo di dati da stampare. Se i dati non sono Postscript vengono convertiti nel linguaggio standard, ad esempio se si tratta di dati ASCII con il programma a2ps vengono convertiti in dati Postscript. Se la stampante è Postscript i dati vengono elaborati e stampati. Nel caso in cui la stampante non sia Postscript, nella maggioranza dei casi quindi, il programma Ghostscript utilizzando il driver adatto al modello di stampante genera i dati specifici della stampante e li invia in stampa.
4. Una volta che l'incarico di stampa e stato correttamente inviato lo spooler si occupa di cancellare i dati dalla coda di stampa.    

Samba - stampante collegata a Windows XP -
Autore: rekstorm - Ultimo Aggiornamento: 2005-03-10 19:58:36 - Data di creazione: 2005-03-10 19:58:36
Tipo Infobox: DESCRIPTION - Skill:

Stampare in rete tramite Samba con una stampante collegata a un pc con Windows XP

Questa Guida tratta il problema di stampare in rete tramite Samba con una stampante collegata a un pc con Windows XP.
Il processo di configurazione è stato collaudato usando Fedora Core 3 con GNOME 2.8, ma in linea di massima dovrebbe funzionare con qualsiasi altra distribuzione.
Inoltre assicuratevi di aver configurato Samba correttamente e di riuscire a condividere directories e dati.

I passi da fare per stampare in rete sono:
- da XP condividere la stampante in rete.
- da Fedora: menu Gnome --> system settings (impostazioni di sistema) --> printing (stampa).
- bisogna essere superuser per modificare le impostazioni, quindi inserire la password.
- scegliere "Nuovo", dare un nome alla stampante ad esempio: nomeserver_modellostampante, la descrizione è opzionale.
- nella selezione del "tipo di coda" scegliere SMB, a questo punto non comparirà l'host di rete con win quindi clickare su "specificate";
- inserire:
    Gruppo di Lavoro: il gruppo della rete win-samba;
    Server: nome dell'host con xp;
    Condivisione: nome_di_condivisione_stampante_ su_ win;
    Nome Utente: quello usato con samba anche per le condivisione delle directories (si intende il nome win);
    Password: vedi sopra;
...ora comparirà tra le condivisioni anche l'host con XP;
- scegliere il modello della stampante --> Avanti --> Termina;
- Ora verrà chiesto di stampare una pagina di prova, rispondere negativamente
- Selezionare la stampante e clickare su "Modifica", controllare i seguenti parametri:
    nella sezione "Tipo di Coda" deve essere:
    Condivisione: //nome_host_win/nome_stampante_condivisa;
    Hostname del servizio o indirizzo IP: inserire l'ip del pc win (capita che non venga impostato correttamente;
- Controllare che gli altri campi corrispondano alle impostazione della vostra rete.
    Le altre sezioni riguardano caratteristiche della stampante...
- Uscire senza dimenticare di applicare le modifiche.
- Salvare le modifiche se il tool di configurazione lo richiede;

Assicurarsi che i moduli samba(SMB, NMB) e cups siano attivi, (si controlla da Impostazioni Sistema --> impostazioni Server --> Servizi).
Non dovrebbe essere necessario, ma è consigliabile riavviare la macchina.

Rekstorm

Privacy Policy