[successivo] [precedente] [inizio] [fine] [indice generale] [violazione licenza] [translators] [docinfo] [indice analitico] [volume] [parte]
Un problema abbastanza frequente negli uffici è la creazione di un'immagine da sovrapporre a tutte le stampate, come un marchio, o come una fincatura. Per esempio, al posto di far stampare della carta intestata, si vuole fare in modo che la stampante stampi automaticamente l'intestazione, senza fare la cosa in due passaggi. Questo capitolo cerca di mostrare un metodo pratico per risolvere il problema.
Per aggiungere qualcosa a una stampa si deve intervenire nel file PostScript prima che questo raggiunga la coda di stampa. Inizialmente si può fare qualche esperimento per scoprire in che punto conviene inserire le proprie modifiche.
Osservando un file PostScript generato da un programma comune per la stampa, si dovrebbe individuare facilmente la fine di una pagina cercando l'istruzione showpage:
|
Normalmente, subito prima di questa istruzione appare anche l'istruzione restore che serve a ripristinare le condizioni normali. Se effettivamente si recuperano tutte le impostazioni predefinite del linguaggio PostScript si può inserire subito prima dell'istruzione showpage qualcosa che si vuole sovrascrivere sulla pagina; per esempio un codice simile a quello seguente:
|
In questo caso si immagina di avere a disposizione una pagina A4, sulla quale si sovrascrive una «X» con due linee tra gli angoli opposti. Nel prossimo esempio, si intende sovrapporre la scritta «riservato» che appare in modo obliquo sulla pagina:
|
La figura successiva mostra una pagina con un contenuto senza significato, sulla quale appare la scritta sovrapposta:
|
Figura 261.1. Esempio di una pagina con la sovrapposizione della scritta «riservato» in primo piano.
|
Se invece quello che si vuole è semplicemente di intervenire sullo sfondo della pagina, al posto di inserire il codice immediatamente prima dell'istruzione showpage occorre farlo all'inizio della pagina, precisamente subito dopo l'istruzione speciale %%Page:, per esempio così:
|
Nella figura successiva si mostra nuovamente l'esempio di una scritta obliqua che questa volta viene posta sullo sfondo, senza disturbare così la lettura del documento.
|
Figura 261.2. Esempio di una pagina con la scritta «riservato» sullo sfondo.
|
|
Eventualmente, per evitare sorprese, prima di modificare un file PostScript lo si può rielaborare attraverso ps2ps. |
Per risolvere il problema della modifica di file PostScript si può realizzare un piccolo programma Perl che legge un file contenente le aggiunte, filtrando un file PostScript:
|
|
|
|
Per esempio, se il file aggiunte contiene il codice PostScript da aggiungere, i due comandi seguenti servirebbero per generare il file prova-modificato.ps dal file prova.ps; il primo per aggiungere il codice in primo piano, il secondo per aggiungerlo sullo sfondo:
$ cat prova.ps | ps-overwrite aggiunte > prova-modificato.ps[Invio]
$ cat prova.ps | ps-background aggiunte > prova-modificato.ps[Invio]
Ecco il primo programma:
|
Ecco il secondo programma:
|
Si può osservare che il codice aggiunto viene contornato automaticamente dalle istruzioni save e restore per maggior sicurezza.
Per fare in modo che tutte le stampe vengano alterate con qualche tipo di informazione, si deve intervenire nella gestione delle code di stampa. Se si dispone di un sistema di stampa BSD o compatibile, si può agire nel file /etc/printcap, aggiungendo delle code differenti per ogni tipo di modifica che si vuole apportare; a ognuna di queste si deve abbinare un filtro differente.
|
L'esempio che si vede sopra fa riferimento a una direttiva della coda di stampa predefinita, a cui si associa il filtro /etc/magicfilter/ljet4-filter. Si tratta precisamente di un programma scritto per Magicfilter (capitolo 105), che contiene in particolare le direttive seguenti:
|
A questo punto si potrebbero scrivere una serie di file contenenti codice PostScript da aggiungere alle stampe, a seconda delle esigenze. Si suppone di collocare questi file nella directory /etc/ps-modifica/. Si osservi il listato successivo che si riferisce ad altre due code di stampa speciali:
|
A questo punto si prende il file /etc/magicfilter/ljet4-filter e se ne fanno due copie: rispettivamente /etc/magicfilter/ljet4-logo-filter e /etc/magicfilter/ljet4-fattura-filter. All'interno di questi file si devono modificare le direttive riferite al filtro PostScript; in questo caso si mostra l'uso dello script ps-overwrite, per la sovrapposizione in primo piano, ma l'uso dell'altro script è identico:
|
|
Se si vuole aggiungere anche un passaggio con ps2ps:
|
|
Naturalmente rimangono da preparare i file /etc/ps-modifica/logo e /etc/ps-modifica/fattura con il codice PostScript che si preferisce.
Alla fine, è sufficiente selezionare una coda o l'altra per aggiungere il logo o la fincatura di una fattura:
$ lpr -Plogo ...[Invio]
$ lpr -Pfatt ...[Invio]
Appunti di informatica libera 2004.10.10 --- Copyright © 2000-2004 Daniele Giacomini -- <daniele (ad) swlibero·org>, <daniele·giacomini (ad) poste·it>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome modifica_sistematica_di_un_file_postscript.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione licenza] [translators] [docinfo] [indice analitico]