Come stampare sotto Solaris9 con una stampante non Postscript


  Nel seguito compaiono i comandi da scrivere sulla riga di comando in caratteri normali a spaziatura costante, mentre in corsivo, ma sempre con caratteri a spaziatura costante, sono riportati i messaggi restituiti a video dal sistema in risposta ai comandi mandati in esecuzione.

Si è proceduto secondo le spiegazioni per la "procedura alternativa" date su:
http://cfauvcs5.cfa.harvard.edu/SetGSprinter4Solaris.html

Procedura utilizzata per una stampatrice HP DeskJet 500

Si è creato il file /etc/lp/fd/hpdj500.fd (il nome è arbitrario), contenente:

Input types: postscript
Output types: PCL
Printer types: any
Printers: any
Filter type: slow
Command: /opt/csw/bin/gsc -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=djet500 -r300 -sOutputFile=- -

  In questo caso si è usato il Ghostscript della Easy Software Products, ma si può usare quello Gnu al suo posto, o un altro ancora, basta che renda disponibile il dispositivo "djet500", che si può verificare con il comando gsc -h:

$ gsc -h
GPL Ghostscript 8.15 (2004-09-22)
Copyright (C) 2004 artofcode LLC, Benicia, CA.  All rights reserved.
Usage: gs [switches] [file1.ps file2.ps ...]
Most frequently used switches: (you can use # in place of =)
 -dNOPAUSE           no pause after page   | -q       `quiet', fewer messages
 -g<width>x<height>  page size in pixels   | -r<res>  pixels/inch resolution
 -sDEVICE=<devname>  select device         | -dBATCH  exit after last file
 -sOutputFile=<file> select output file: - for stdout, |command for pipe,
                                         embed %d or %ld for page #
Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PostScriptLevel3 PDF
Default output device: display
Available devices:
   bbox bit bitcmyk bitrgb bj10e bj200 bjc600 bjc800 bmp16 bmp16m bmp256
   bmp32b bmpgray bmpmono bmpsep1 bmpsep8 cdeskjet cdj550 cdjcolor cdjmono
   cljet5 cljet5c deskjet devicen display djet500 epswrite faxg3 faxg32d
   faxg4 ijs jpeg jpeggray laserjet lj5gray lj5mono ljet2p ljet3 ljet3d
   ljet4 ljet4d ljetplus nullpage pbm pbmraw pcx16 pcx24b pcx256 pcxcmyk
   pcxgray pcxmono pdfwrite pgm pgmraw pgnm pgnmraw pj pjxl pjxl300 pkm
   pkmraw pksm pksmraw png16 png16m png256 pngalpha pnggray pngmono pnm
   pnmraw ppm ppmraw psdcmyk psdrgb psgray psmono psrgb pswrite pxlcolor
   pxlmono sparc spotcmyk tiff12nc tiff24nc tiffcrle tiffg3 tiffg32d tiffg4
   tifflzw tiffpack uniprint x11 x11alpha x11cmyk x11gray2 x11gray4 x11mono
   xcf
Search path:
   . : /opt/csw/share/ghostscript/lib :
   /opt/csw/share/ghostscript/Resource : /opt/csw/share/ghostscript/fonts
For more information, see /opt/csw/share/ghostscript/doc/Use.htm.
Report bugs to bug-gs@ghostscript.com, using the form in Bug-form.htm.
.

  Al file /etc/lp/fd/hpdj500.fd si sono dati questi valori per quanto riguarda il proprietario, il gruppo di appartenenza e i diritti di accesso (sono stati dati gli stessi diritti e valori degli altri file già presenti nella stessa directory):

# chown root:lp /etc/lp/fd/hpdj500.fd
# chmod 644 /etc/lp/fd/hpdj500.fd

  Fatto questo, si danno i comandi seguenti per configurare il gestore della coda di stampa e per abilitare e attivare la coda di stampa appena definita:

# /usr/sbin/lpfilter -f hpdj500 -F /etc/lp/fd/hpdj500.fd
# /usr/sbin/lpadmin -p hpdj500 -v /dev/ecpp0 -I PCL
# /usr/bin/enable hpdj500
# /usr/sbin/accept hpdj500

  Il parametro "PCL" che segue l'opzione "-I" è lo stesso che nel file /etc/lp/fd/hpdj500.fd compare alla voce "Output types:", mentre il parametro "/dev/ecpp0" corrisponde sotto Solaris9, in una Ultra10, alla porta parallela integrata.
  Il parametro "hpdj500" che segue l'opzione "-f" è un nome arbitrario ma univoco che viene dato alla coda di stampa che si sta definendo e deve essere lo stesso che compare all'opzione "-p".
  Se tutto è andato bene e non si sono verificati errori (come per l'impossibilità al processo "gsc" di accedere al dispositivo "/dev/ecpp0", della qual cosa si riceverà comunque un avvertimento esplicito), si può ora stampare alla stampatrice con il comando:

$ lp -d hpdj500 nome.file

e si può interrogare lo stato della coda di stampa con il comando:

$ lpq -P hpdj500

  Per disfare i comandi elencati in alto, ossia per disattivare, disabilitare e deconfigurare la stampatrice hpdj500 dal gestore della coda di stampa, si danno i comandi che seguono:

# /usr/sbin/reject hpdj500
# /usr/bin/disable hpdj500
# /usr/sbin/lpadmin -x hpdj500
# /usr/sbin/lpfilter -x -f hpdj500


  Una nota utile:

Di suo, il gestore della stampa di Solaris stampa sempre una pagina informativa prima del documento di cui si è richiesta una copia: è il cosiddetto "banner", o manifesto.  Un esempio è il testo che segue:

   £££££
   £££££
   £££££
   £££££
   £££££
   £££££       User: tecnico@sole
   £££££
   £££££      Title: sosinel.ps
   £££££
   £££££    Printed: Wed 10:51 Apr 13, 2005
   £££££
   £££££ Job number: hpdj500-1
   £££££
   £££££
   £££££
   £££££
   £££££


  Per impedirne la stampa, si possono fare due cose:

1) si esegue il comando:
    # lpadmin -p nome_stampatrice -o nobanner

(nell'esempio riportato in alto, nome_stampatrice è  hpdj500)
    Questo permetterà agli utenti di impedire la stampa automatica del "banner" aggiungendo l'opzione "-o nobanner" al comando "lp" sulla linea di comando;

2) si modifica il file "/etc/lp/interfaces/nome_stampatrice" (creato dal comando "lpadmin" in fase della configurazione della coda di stampa).  C'è una linea che figura cosí:

nobanner="no"

la si cambia in...

nobanner="yes"

  Si riavvia il demone di stampa ed è fatto:

# /etc/init.d/lp stop
# /etc/init.d/lp start


Prima redazione: 02 febbraio 2005.
Ultimo ritocco: 16 dicembre 2005.