[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Come già accennato in precedenza, a suo tempo il sistema PostScript ha segnato una rivoluzione nel modo di stampare definendo uno standard generale. Tuttavia, a causa del prezzo, le stampanti PostScript si sono introdotte particolarmente nel settore tipografico e raramente nei piccoli uffici o in casa.
PostScript è una sorta di linguaggio di programmazione per la stampa, o in altri termini, si può definire anche come linguaggio di stampa. I dati inviati a una stampante PostScript sono in forma di file di testo contenente un programma di stampa.
Il formato PostScript è proprietario. Nonostante questo fatto, sulla base di tale formato sono stati sviluppati diversi applicativi nell'ambito del software libero. |
Un file PostScript è ciò che viene inviato a una stampante PostScript per ottenere un documento finale. Questo file contiene tutte le informazioni per definire l'aspetto finale del documento, senza conoscere le caratteristiche particolari della stampante, la quale da sola deve arrangiarsi a interpretarlo. Il file PostScript è un file di testo normale, come se fosse un sorgente di un linguaggio di programmazione, con la differenza che le istruzioni non sono così intelligibili.
|
La prima parte di questo file inizia generalmente con la dichiarazione del tipo di file (%!PS-Adobe-versione), quindi il testo prosegue con la definizione di una serie di caratteristiche che riguardano l'intero documento.
Successivamente inizia la definizione dettagliata di altre caratteristiche, principalmente i tipi di carattere tipografico. La descrizione di questi si rende necessaria quando il documento utilizza dei tipi che non appartengono allo standard minimo PostScript. In pratica, il linguaggio PostScript prevede che alcuni tipi di carattere siano predefiniti all'interno della stampante, per cui, quando vengono utilizzati questi tipi, non occorre specificarne le caratteristiche; in tutti gli altri casi, occorre fornire alla stampante tutte le informazioni necessarie a disegnarli nel modo corretto.
Questo particolare deve essere tenuto da conto quando si vogliono ottenere file PostScript di dimensioni ridotte, per esempio quando si tratta di documenti brevi.
|
A un certo punto, finalmente, inizia il contenuto delle varie pagine. L'estratto di esempio si riferisce alla prima e all'inizio della seconda pagina di questo documento (in una sua edizione molto vecchia). Con qualche difficoltà si riesce anche a intravedere il testo che si ottiene con la stampa. Al termine dell'ultima pagina c'è una conclusione, come nell'estratto seguente:
|
Questa struttura ordinata di un file PostScript, lascia intuire la possibilità di scomporre un file di questo tipo e di ricomporlo come si desidera. Quello che conta è che ciò che si ottiene contenga il preambolo iniziale, quanto precede le descrizioni delle pagine e la conclusione finale. Per esempio, potrebbe essere conveniente estrarre da un file PostScript alcune pagine e ricomporle in un file indipendente.
Questo tipo di scomposizione può essere fatta manualmente, con l'aiuto di un programma per la modifica di file di testo, oppure per mezzo di strumenti appositi.
In mancanza di una stampante PostScript si può utilizzare un emulatore in grado di trasformare un file PostScript in uno adatto alla stampante che si possiede. In passato sono apparsi diversi programmi proprietari di emulazione, ma attualmente si è imposto il programma Ghostscript del quale esistono versioni sia per i sistemi Unix che per altri sistemi operativi (Dos incluso).(1)
Ghostscript (2) è un programma che si occupa di trasformare un file PostScript, EPS o PDF, in un altro adatto alla stampante che si utilizza. Permette di utilizzare una serie di opzioni fornite come argomenti della riga di comando, ma al termine costringe a uscire dal programma inserendo la parola quit, oppure il codice di EOF (che di solito si ottiene con la combinazione di tasti [Ctrl d]), nello standard input (attraverso la tastiera o una ridirezione dell'input). Anche con la combinazione di tasti [Ctrl c] si ottiene la conclusione del funzionamento del programma.
gs [opzioni] [file...] |
Ghostscript utilizza un elenco molto lungo di argomenti nella riga di comando. Questi sono molto importanti per automatizzare l'utilizzo del programma attraverso degli script.
|
|
|
Segue la descrizione di alcuni esempi.
$
gs -dNOPAUSE -q -sDEVICE=cdjmono -sOutputFile=-
\
\esempio.ps < /dev/null | lpr
[Invio]
Invia al sistema di stampa (tramite lpr) il documento esempio.ps
dopo la trasformazione nel formato compatibile con le stampanti HP Deskjet.
$
gs -dNOPAUSE -q -sDEVICE=cdjmono -sOutputFile=pagina%0004d
\
\esempio.ps < /dev/null
[Invio]
Genera una serie di file, a partire dal documento esempio.ps
, uno per ogni pagina, con un nome che inizia per pagina
seguito da quattro cifre numeriche.
$
gs -dNOPAUSE -q -sDEVICE=cdjmono -sOutputFile=esempio.prn
\
\esempio.ps < /dev/null
[Invio]
Genera, a partire dal documento esempio.ps
, il file esempio.prn
pronto per essere inviato a una stampante HP Deskjet.
$
gs -dSAFER -dNOPAUSE -q -sDEVICE=cdjmono
\
\-sOutputFile=esempio.prn esempio.ps < /dev/null
[Invio]
Come nell'esempio precedente, ma impedendo che il codice contenuto nel file esempio.ps
possa compiere azioni dannose.
Il formato EPS è una variante di PostScript, in cui, invece di fare riferimento a una pagina, si indica in modo preciso un lo spazio di un rettangolo. In pratica, il formato EPS si presta alla realizzazione di immagini.
Quando il contenuto di un'immagine EPS è fatta di linee e di testo, è ragionevole aspettarsi che un ingrandimento e una riduzione avvengano senza perdita di qualità (per quanto possibile tecnicamente), ma quando si converte un'immagine EPS in un formato non vettoriale, spesso ciò non avviene.
A titolo di esempio, si osservi il comando seguente, che fa riferimento all'uso di convert che appartiene al pacchetto ImageMagick (è descritto nella sezione 167.2). Lo scopo del comando è quello di leggere il file prova.eps
e generare il file prova.png
(PNG), ottenendo un ingrandimento di quattro volte:
$
convert -geometry 400% prova.eps prova.png
[Invio]
Se si confrontano i file, il file PNG che si ottiene non risulta nitido come invece dovrebbe.
Per ovviare a questo inconveniente, occorre utilizzare Ghostscript direttamente, con l'ausilio di opzioni particolari.
|
Per poter ingrandire un'immagine durante una conversione, conviene realizzare uno script, perché occorre conoscere preventivamente l'ampiezza orizzontale e dell'altezza del file originale. Per ottenere le coordinate del rettangolo della pagina o dell'immagine che si vuole elaborare si può usare il comando seguente:
$
gs -q -dSAFER -dBATCH -dNOPAUSE -sDEVICE=bbox prova.eps 2>&1
[Invio]
Ovviamente, l'esempio si riferisce al file prova.eps
. Ecco cosa si potrebbe ottenere (si tratta di una sola riga):
%%BoundingBox: 0 0 12 49 %%HiResBoundingBox: 0.954000 0.936000 \ |
Dovendo lavorare con numeri interi, è sufficiente sapere che l'ampiezza è di 12 punti e l'altezza è di 49 punti. Supponendo di voler ingrandire di 10 volte l'immagine, per generare il file prova.png
, si dovrebbe usare il comando seguente:
$
gs -q -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -g120x490
\
\-r720x720 -sOutputFile=prova.png prova.eps
[Invio]
Come si vede, oltre che intervenire con l'opzione -g, occorre moltiplicare il valore di 72 usato nell'opzione -r.
Uno script con il quale si vuole ingrandire di 10 volte un file (PostScript, EPS o PDF), convertendolo in PNG, potrebbe essere fatto come nell'esempio seguente:
|
Nello stesso modo in cui Ghostscript viene utilizzato per convertire file PostScript in formati adatti alle stampanti normali, così è possibile ottenere una conversione in un formato che possa essere mostrato attraverso lo schermo, solitamente all'interno del sistema grafico X.
Alcuni strumenti grafici specifici, si occupano di guidare l'utente all'utilizzo di Ghostscript in modo da ottenere un'anteprima di stampa su schermo. In mancanza di questi si può usare manualmente Ghostscript stesso:
$
gs -dSAFER -q -sDEVICE=x11 prova.ps
[Invio]
Il comando di questo esempio consente di visualizzare il file prova.ps
, attraverso il sistema grafico X (ovviamente va usato il comando da una finestra di terminale). Si osservi che al posto della parola chiave x11 se ne possono provare altre (dovrebbero essere disponibili: x11alpha, x11cmyk, x11cmyk2, x11cmyk4, x11cmyk8, x11gray2, x11gray4, x11mono). Una volta dato il comando di visualizzazione, appare una finestra con il contenuto della prima pagina e, dove è stato dato il comando, si può interagire con Ghostscript:
>>showpage, press <return> to continue<< |
È sufficiente premere [Invio] per passare alla pagina successiva, fino alla fine del documento:
[Invio]
>>showpage, press <return> to continue<< |
[Invio]
>>showpage, press <return> to continue<< |
Al termine si presenta un invito:
GS>
Per concludere il funzionamento di Ghostscript si usa il comando quit:
GS>
quit
[Invio]
BMV (3) è un programma che permette la visualizzazione di file PostScript utilizzando direttamente una console di tipo VGA, attraverso la libreria SVGAlib (capitolo 147). Per visualizzare i file PostScript si avvale naturalmente di Ghostscript che deve essere stato installato. Il file eseguibile, bmv, deve appartenere all'utente root e avere il bit SUID attivo (SUID-root), altrimenti può essere utilizzato solo dall'utente root a causa del fatto che accede direttamente all'adattatore VGA.
bmv [opzioni] file_da_visualizzare |
Una volta avviato l'eseguibile bmv, se Ghostscript è installato (e BMV lo trova), viene visualizzato il file utilizzando la console virtuale dalla quale è stato avviato. Per cambiare console virtuale non funzionano più le combinazioni consuete, [Ctrl Fn] o [Ctrl Alt Fn]; per cambiare console virtuale occorre un comando di BMV: [s][n] che permette di raggiungere l'n-esima console virtuale.
|
|
Segue la descrizione di alcuni esempi.
$
bmv -g/usr/bin/gs prova.ps
[Invio]
Utilizza l'eseguibile gs che si trova nella directory /usr/bin/
per visualizzare il file prova.ps
, con la modalità VGA predefinita.
$
bmv -v30 -g/usr/bin/gs prova.ps
[Invio]
Come nell'esempio precedente ma utilizzando la modalità VGA numero 30.
$
bmv -pA4 -g/usr/bin/gs prova.ps
[Invio]
Visualizza il solito file specificando a Ghostscript che il formato della carta deve essere A4.
Ghostview (4) è un programma che facilita la visualizzazione di file PostScript all'interno dell'ambiente grafico X attraverso una gestione automatizzata e semplificata di Ghostscript.
|
Ghostview è piuttosto spartano nella sua impostazione, per cui tende a essere sostituito dai suoi discendenti, GV e GGV, più curati esteticamente e più semplici da usare. Tuttavia, Ghostview è ancora insostituibile per la facilità con cui si possono selezionare gruppi di pagine molto grandi.
ghostview [opzioni] [file] |
L'eseguibile ghostview viene utilizzato generalmente senza alcun argomento, eventualmente può essere fornito il nome del file PostScript che si vuole visualizzare.
La libreria grafica con cui è stato realizzato questo programma, non è molto comoda da utilizzare con il solo mouse. Per questo, è conveniente conoscere alcuni comandi che si possono dare attraverso la tastiera.
Scorrimento delle pagine:
l'uso dei tasti [pagina su] e [pagina giù] permette di scorrere il documento da una pagina all'altra.
Orientamento:
premendo il tasto [freccia su], si orienta il documento a zero gradi (cioè nella sua posizione normale);
premendo il tasto [freccia giù], si orienta il documento a 180 gradi;
premendo il tasto [freccia sinistra], si orienta il documento in senso antiorario di 90 gradi;
premendo il tasto [freccia destra], si orienta il documento in senso orario di 90 gradi.
Spostamento della zona visualizzata:
premendo il tasto [u] o [k], si visualizza la parte superiore della pagina (se questa non appare completamente nella finestra a disposizione);
premendo il tasto [d] o [j], si visualizza la parte inferiore della pagina (se questa non appare completamente nella finestra a disposizione);
premendo il tasto [h], si visualizza la parte sinistra della pagina (se questa non appare completamente nella finestra a disposizione);
premendo il tasto [l], si visualizza la parte destra della pagina (se questa non appare completamente nella finestra a disposizione).
A parte l'uso ovvio del mouse con le barre di scorrimento, sono interessanti le possibilità seguenti.
Lente di ingrandimento:
facendo un clic con uno dei tasti del mouse quando il cursore si trova nella zona in cui si visualizza il documento, si ottiene un ingrandimento locale. Con il primo tasto si ha un ingrandimento piccolo, con il secondo tasto si ottiene un ingrandimento medio, con il terzo si ottiene l'ingrandimento massimo.
Selezione delle pagine:
con un clic del primo tasto su un numero di pagina si seleziona tale numero. Premendo successivamente il terzo tasto si seleziona un gruppo di pagine a partire da quella selezionata in precedenza. Utilizzando il tasto centrale si visualizza la pagina con quel numero.
Il menù di Ghostview può essere utilizzato con il mouse, ma le stesse funzionalità sono accessibili anche attraverso delle combinazioni di tasti. Segue la struttura del menù con l'indicazione della combinazione di tasti equivalente a ogni voce.
{File
}
{Open...
}
[o]
Permette di aprire un file PostScript per la sua visualizzazione.
{Reopen
}
[r]
Permette di riaprire il documento in corso di visualizzazione, nel caso che questo sia stato modificato nel frattempo.
{Print...
}
[P]
Permette di stampare l'intero documento. Viene richiesto il nome della stampante; se non viene fornito si intende quella predefinita.
{Print marked pages...
}
[p]
Permette di stampare solo le pagine marcate.
{Save marked pages...
}
[s]
Permette di salvare le pagine marcate.
{Copyright...
}
Visualizza il copyright.
{Quit
}
[q]
Termina l'esecuzione del programma.
{Page
}
{Next
}
[barra spaziatrice] [Invio] [f]
Passa a visualizzare la pagina successiva.
{Redisplay
}
[.] [Ctrl l]
Visualizza nuovamente la pagina corrente.
{Previous
}
[backspace] [canc] [b]
Passa a visualizzare la pagina precedente.
{Center
}
Centra la pagina all'interno della zona di visualizzazione.
{Mark
}
[m]
Marca le pagine selezionate. Le pagine marcate hanno un asterisco alla sinistra del numero.
{Unmark
}
[n]
Toglie la marcatura alle pagine selezionate.
{Magstep
}
[0] [1] [2] [3] [4] [5] [+] [-]
Permette di definire il livello di ingrandimento della pagina visualizzata. Zero è il valore centrale; un valore maggiore aumenta l'ingrandimento, un valore minore lo diminuisce.
{Orientation
}
Permette di cambiare l'orientamento della visualizzazione del documento.
{Media
}
Permette di selezionare un formato di carta diverso rispetto a quello naturale del documento. Il primo ad apparire nell'elenco di quelli a disposizione è proprio quello originale.
GV (5) è un programma derivato da Ghostview con lo stesso scopo, ma con un'interfaccia grafica più comoda e intuitiva.
gv [file] [opzioni] |
L'eseguibile gv permette l'utilizzo di un gran numero di opzioni ed è altamente configurabile. Generalmente però non si utilizzano tutte queste risorse dal momento che la sua interfaccia grafica è abbastanza semplice e intuitiva.
|
Esiste solo uno svantaggio rispetto al programma Ghostview originale: è un po' scomoda la selezione delle pagine. Per approfondirne l'uso, si può leggere la pagina di manuale gv(1).
GGV (6) è un programma derivato da Ghostview con lo stesso scopo, ma con un'interfaccia grafica più comoda e intuitiva.
gnome-gv [opzioni] [file] |
L'eseguibile gnome-gv (o eventualmente ggv) permette l'utilizzo di un gran numero di opzioni che però generalmente non si utilizzano, dal momento che la sua interfaccia grafica è abbastanza semplice e intuitiva.
|
KGhostView (7) è un programma derivato da Ghostview con lo stesso scopo, ma con un'interfaccia grafica conforme allo stile di KDE.
kghostview [opzioni] [file] |
Si veda eventualmente la pagina di manuale kghostview(1).
|
Le versioni recenti di Ghostscript forniscono degli script utili per «distillare» un file PostScript, EPS o PDF, in modo da semplificarlo o adattarlo in qualche modo.
ps2ps [opzioni] file_originale file_da_generare_ps |
eps2eps [opzioni] file_originale file_da_generare_eps |
ps2epsi [opzioni] file_originale file_da_generare_epsi |
ps2ascii [opzioni] file_originale file_da_generare_ascii |
pdf2ps [opzioni] file_originale file_da_generare_ps |
ps2pdf [opzioni] file_originale file_da_generare_pdf |
I primi due script (ps2ps e eps2eps) si riferiscono precisamente a file PostScript, oppure a file EPS, con lo scopo di adattarli semplificandoli. Si traducono sinteticamente nel codice seguente:
gs -q -sDEVICE=pswrite -sOutputFile=file_da_generare \ |
gs -q -sDEVICE=epswrite -sOutputFile=file_da_generare \ |
Da questo si comprende che le opzioni sono semplicemente quelle che in questo contesto potrebbero essere date all'interprete Ghostscript. Di solito, può essere conveniente l'uso dell'opzione -dLanguageLevel=1, con cui si ottiene un file contenente soltanto istruzioni relative al livello uno del linguaggio PostScript.
Il terzo script (ps2epsi) serve a trasformare un file PostScript in un formato EPSI (ovvero un formato EPS che incorpora anche un'anteprima dell'immagine, in un formato a mappa di bit).
Il quarto script (ps2ascii) serve a trasformare un file PostScript, EPS o PDF, in un file di testo puro e semplice.
Il quinto e il sesto script (pdf2ps ps2pdf) servono a trasformare un file PDF in PostScript, o viceversa. Si osservi però che il file PDF che si ottiene dalla distillazione è privo di alcune caratteristiche comuni nei file PDF.
Il formato PostScript consente la rappresentazione di disegni in forma vettoriale. In certe situazioni, può essere necessario estrarre le informazioni di un disegno vettoriale da una pagina PostScript per consentirne la rielaborazione con un programma adatto.
Pstoedit (8) è un programma molto semplice, in grado di estrarre le informazioni vettoriali da un file PostScript o da un file PDF.(9) Il programma eseguibile che svolge questo compito è pstoedit, che si utilizza secondo lo schema sintattico seguente:
pstoedit [opzioni_varie] -f formato_finale[:opzioni_del_formato] \ |
In condizioni normali, è sufficiente indicare l'opzione -f, a cui segue una parola chiave che identifica il formato finale in cui si vuole convertire il file PostScript (o PDF). Se il formato di conversione prevede delle opzioni, queste vanno indicate dopo il nome della conversione, separate da due punti verticali (come si vede dal modello sintattico). Alla fine della riga di comando si indicano i file da utilizzare, ma in loro mancanza si trae il file in ingresso dallo standard input e si emette il risultato della conversione attraverso lo standard output.
I formati per la conversione sono numerosi e si può ottenere l'elenco completo di quelli incorporati nel programma con l'opzione -help. Per approfondire i dettagli sulle opzioni di alcuni formati conviene leggere la pagina di manuale pstoedit(1). Qui viene proposto un elenco ridotto di opzioni:
|
Viene proposto un esempio molto semplice, in cui si vuole convertire il file figura.ps
(PostScript contenente una sola pagina) nel file figura.fig
(adatto a XFig):
$
pstoedit -f fig figura.ps figura.fig
[Invio]
Peter J. Weingartern, A First Guide to PostScript
<http://www.cs.indiana.edu/docproject/programming/postscript/postscript.html>
Internet PostScript Resources
Thomas Merz, Ghostscript Manual, 1997
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
1) Esistono due filoni nello sviluppo di Ghostscript; solo quello contrassegnato dalla sigla «GNU» è rilasciato con la licenza GNU GPL, mentre l'altro non è propriamente software libero.
2) Ghostscript GNU GPL
7) KGhostView GNU GPL
9) Ci possono essere difficoltà nella conversione a partire dal formato PDF, ma in tal caso è sufficiente convertirlo prima in PostScript.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome postscript.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]