[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 207.   PostScript

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.

207.1   File PostScript

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.

%!PS-Adobe-2.0
...

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.

...
%%Page: 1 1
1 0 bop 300 1350 3600 42 v 300 1984 a FP(Appunti)138
b(Linux)p 300 2184 V 2142 2403 a FO(Daniele)21 b(Giacomini)114
b(daniele)21 b(@)i(pluto.linux.it)2865 2973 y FN(1999.09.21)p
eop
%%Page: 2 2
2 1 bop -72 -90 a FM(D)o(aniele)17 b(G)o(iacomini)h FL(\350)i(un)g
(autodidatta)e(che)j(ha)f(tro)n(vato)e(in)i(GNU/Linux)h(la)f
(possibilit\340)e(di)h(studiar)o(e)g(e)h(approfondir)o(e)-72
2 y(un)c(sistema)f(oper)o(ativo)h(completo)m(.)h(P)o(r)q(ima)e(di)g
...

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:

...
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF

207.1.1   Scomposizione e ricomposizione

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.

Se la struttura è relativamente semplice, 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.

207.2   Emulazione

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)

207.2.1   Ghostscript

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.

Tabella 207.4. Alcune opzioni.

Opzione Descrizione
-sDEVICE=stampante
Permette di definire per quale tipo si stampante o altra unità deve essere generato il risultato della trasformazione del file PostScript. Possono essere utilizzati i nomi indicati nelle tabelle 207.5, 207.6 e 207.7.
-q
-dQUIET
Permette di sopprimere il messaggio di avvio del programma. È utile quando si ridirige l'output e di conseguenza non si vogliono avere dati estranei nel file che si ottiene.
-dNOPAUSE
Disabilita l'invito e la pausa alla fine di ogni pagina.
-dSAFER
Esclude la possibilità di usare comandi distruttivi del linguaggio PostScript. Ciò consente di evitare che possa essere eseguito del codice distruttivo, inserito dolosamente in un documento, durante la conversione (per la stampa o la visualizzazione).
-dWRITESYSTEMDICT
Consente la modifica dei file che compongono la gestione del cosiddetto systemdict. In alcune circostanze, l'uso di questa opzione è necessaria per consentire l'elaborazione dei file.
-sPAPERSIZE=formato
Permette di definire il formato della pagina. Possono essere utilizzati i formati elencati nella tabella 207.8.
-sOutputFile=file
Permette di definire il nome del file che si vuole generare con questa trasformazione. Se al posto del nome si mette un trattino (-), questo file viene emesso attraverso lo standard output.
-
Se al posto del nome del file PostScript da convertire si indica un trattino (-) isolato, viene utilizzato quanto proveniente dallo standard input.

Tabella 207.5. Alcuni dei formati per stampanti utilizzabili con Ghostscript.

Nome Descrizione
appledmp
Apple Dot Matrix Printer
iwhi
Apple Imagewriter, alta risoluzione
iwlo
Apple Imagewriter, bassa risoluzione
iwlq
Apple Imagewriter LQ, 320×216 dpi
hl7x0
Brother HL 720 e HL 730
bj10e
Canon BubbleJet BJ10e
bj200
Canon BubbleJet BJ200
bjc600
Canon BubbleJet BJC-600 e BJC-400 colore
bjc800
Canon BubbleJet BJC-800 colore
lbp8
Canon LBP-8II (laser)
lips3
Canon LIPS III (laser)
coslw2p
CoStar LabelWriter II e II/Plus
coslwxl
CoStar LabelWriter XL
declj250
DEC LJ250
la50
DEC LA50
la70
DEC LA70
la75
DEC LA75
la75plus
DEC LA75plus
lj250
DEC LJ250 (colore)
ap3250
Epson AP3250
epson
Epson-compatibile (9 o 24 aghi)
eps9mid
Epson-compatibile (9 aghi a media risoluzione)
eps9high
Epson-compatibile (9 aghi ad alta risoluzione)
epsonc
Epson LQ-2550 e Fujitsu 3400/2400/1200 a colori
lq850
Epson LQ-850
lp8000
Epson LP-8000 (laser)
stcolor
Epson Stylus colore
photex
Epson Stylus Color Photo, Photo EX, Photo 700
st800
Epson Stylus 800
uniprint
Epson ESC/P-, ESC/P2-, HP-RTL/PCL
dnj650c
HP Designjet 650C
deskjet
HP Deskjet e HP Deskjet Plus
djet500
HP Deskjet 500
djet500c
HP Deskjet 500C
cdeskjet
HP Deskjet 500C (1 bit/pixel colore)
cdjcolor
HP Deskjet 500C (24 bit/pixel colore)
cdjmono
HP Deskjet 500C (solo nero)
cdjcolor
HP Deskjet 500C
cdj500
HP Deskjet 500C
djet500c
HP Deskjet 500C
cdj550
HP Deskjet 550C/560C
cljet5
HP Laserjet 5/5M a colori
cljet5c
HP Laserjet 5/5M a colori
laserjet
HP Laserjet
ljetplus
HP Laserjet Plus
ljet2p
HP Laserjet IId/IIp/III* (con compressione TIFF)
ljet3
HP Laserjet III* (con compressione Delta Row)
ljet3d
HP Laserjet IIID (duplex)
ljet4
HP Laserjet 4 (600 dpi)
lj4dith
HP Laserjet 4 (Floyd-Steinberg dithering)
pj
HP Paintjet XL
pjetxl
HP Paintjet XL
pjxl
HP Paintjet XL (colore)
paintjet
HP Paintjet XL (colore)
pjxl300
HP Paintjet XL300 (colore) e HP Deskjet 1200C
lp2563
HP 2563B
ibmpro
IBM Proprinter (9 aghi)
jetp3852
IBM Jetprinter (a getto, colore, modello #3852)
imagen
Imagen ImPress
lxm5700m
Lexmark 5700
m8510
C.Itoh M8510
cp50
Mitsubishi CP50 (colori)
necp6
NEC P6/P6+/P60 (360×360 dpi)
oki182
Okidata Microline 182
okiibm
Okidata Microline stampanti compatibili IBM
r4081
Ricoh 4081 (laser)
nwp533
Sony NWP533 (laser)
spark
Spark SPARKprinter
sj48
StarJet 48 inkjet
t4693d2
Tektronix 4693d (colore, 2 bit)
t4693d4
Tektronix 4693d (colore, 4 bit)
t4693d8
Tektronix 4693d (colore, 8 bit)
tek4696
Tektronix 4695/4696 (plotter a getto d'inchiostro)
xes
Xerox XES 2700, 3700, 4045 e altri modelli

Tabella 207.6. Alcuni dei formati grafici utilizzabili con Ghostscript.

Nome Descrizione
dfaxhigh
DigiBoard DigiFAX (alta risoluzione)
dfaxlow
DigiBoard DigiFAX (bassa risoluzione)
faxg3
Fax gruppo 3, con EOL, senza intestazione e EOD
faxg32d
Fax gruppo 3 2-D, con EOL, senza intestazione e EOD
faxg4
Fax gruppo 4, con EOL, senza intestazione e EOD
pcxmono
PCX monocromatico
pcxgray
PCX 8 bit in scala di grigi
pcx16
PCX 4 bit a colori
pcx256
PCX 8 bit a colori
pcx24b
PCX 24 bit a colori
bit
Binario semplice (raw), monocromatico
bitrgb
Binario semplice (raw), RGB
bitcmyk
Binario semplice (raw), CMYK
pbm
PBM (Portable bitmap), formato ASCII
pbmraw
PBM (Portable bitmap), formato raw
pgm
PGM (Portable graymap), formato ASCII
pgmraw
PGM (Portable graymap), formato raw
pngmono
PNG (Portable network graphics), monocromatico
pnggray
PNG (Portable network graphics), 8 bit grigi
png16
PNG (Portable network graphics), 4 bit colori
png256
PNG (Portable network graphics), 8 bit colori
png16m
PNG (Portable network graphics), 24 bit colori
ppm
PBM (Portable pixmap), formato ASCII
ppmraw
PBM (Portable pixmap), formato raw
tiffcrle
TIFF b/n, CCITT RLE 1-dim (fax gruppo 3 senza EOL)
tiffg3
TIFF b/n, fax gruppo 3 (con EOL)
tiffg32d
TIFF b/n, fax gruppo 3 2-D
tiffg4
TIFF b/n, fax gruppo 4
tifflzw
TIFF b/n, LZW
tiffpack
TIFF b/n, PackBits
tiff12nc
TIFF 12 bit RGB colori (senza compressione)
tiff24nc
TIFF 24 bit RGB colori (senza compressione)

Tabella 207.7. Alcuni dei formati alternativi di conversione utilizzabili con Ghostscript.

Nome Descrizione
psmono
PostScript 1, monocromatico, bitmap
pswrite
PostScript
epswrite
EPS (PostScript incapsulato)
pdfwrite
PDF (Portable document format)

Tabella 207.8. Formati di stampa di Ghostscript. I dati di questa tabella sono tratti dalla pagina di manuale gs(1).

formato larghezza altezza larghezza altezza larghezza altezza
1/72 pollici 1/72 pollici pollici pollici cm cm
note 540 720 7,50 10,00 19,05 25,4
letter 612 792 8,50 11,00 21,59 27,94
legal 612 1 008 8,50 14,00 21,59 35,56
a0 2 380 3 368 33,055 6 46,777 8 83,961 1 118,816
a1 1 684 2 380 23,388 9 33,055 6 59,407 8 83,961 1
a2 1 190 1 684 16,527 8 23,388 9 41,980 6 59,407 8
a3 842 1 190 11,694 4 16,527 8 29,703 9 41,980 6
a4 595 842 8,263 89 11,694 4 20,990 3 29,703 9
a5 421 595 5,847 22 8,263 89 14,851 9 20,990 3
a6 297 421 4,125 5,847 22 10,477 5 14,851 9
a7 210 297 2,916 67 4,125 7,408 33 10,477 5
a8 148 210 2,055 56 2,916 67 5,221 11 7,408 33
a9 105 148 1,458 33 2,055 56 3,704 17 5,221 11
a10 74 105 1,027 78 1,458 33 2,610 56 3,704 17
b0 2 836 4 008 39,388 9 55,666 7 100,048 141,393
b1 2 004 2 836 27,833 3 39,388 9 70,696 7 100,048
b2 1 418 2 004 19,694 4 27,833 3 50,023 9 70,696 7
b3 1 002 1 418 13,916 7 19,694 4 35,348 3 50,023 9
b4 709 1 002 9,847 22 13,916 7 25,011 9 35,348 3
b5 501 709 6,958 33 9,847 22 17,674 2 25,011 9
archE 2 592 3 456 36,00 48,00 91,44 121,92
archD 1 728 2 592 24,00 36,00 60,96 91,44
archC 1 296 1 728 18,00 24,00 45,72 60,96
archB 864 1 296 12,00 18,00 30,48 45,72
archA 648 864 9,00 12,00 22,86 30,48
flsa 612 936 8,50 13,00 21,59 33,02
flse 612 936 8,50 13,00 21,59 33,02
halfletter 396 612 5,50 8,50 13,97 21,59
11x17 792 1 224 11,00 17,00 27,94 43,18
ledger 1 224 792 17,00 11,00 43,18 27,94

Segue la descrizione di alcuni esempi.

207.3   Ghostscript per ingrandire le immagini EPS

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 638.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.

Tabella 207.9. Alcune opzioni particolari di Ghostscript.

Opzione Descrizione
-dBATCH
Fa in modo che vengano eseguite le elaborazioni richieste terminando il funzionamento di Ghostscript al termine.
-sDEVICE=bbox
Invece di trasformare il file emette le informazioni sulle coordinate del rettangolo che contiene l'immagine o la pagina. La sigla sta per Bounding box.
-gmxn
-dDEVICEWIDTH=m \
  \-dDEVICEEIGHT=n
Individua l'ampiezza (m) e l'altezza (n) della figura o della pagina da convertire. I valori sono espressi attraverso un numero intero che rappresenta punti, pari a 1/72 di pollice.
-rn
-rmxn
-dDEVICEXRESOLUTION=m \
  \-dDEVICEYRESOLUTION=n
Dichiara la risoluzione del formato di destinazione. Con l'opzione -r, se si indica un solo valore, la risoluzione è uguale, sia in orizzontale, sia in verticale; se si indicano due valori, il primo è la risoluzione orizzontale, il secondo è la risoluzione verticale. la risoluzione viene indicata con un numero intero, che rappresenta punti per pollice; pertanto, una risoluzione normale è pari a 72.

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 \
  \11.952000 48.527999

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:

#!/bin/sh
#
INPUT_FILE=$1
OUTPUT_FILE=$2
#
BOUNDING_BOX=`gs -dSAFER -q -dBATCH -dNOPAUSE -sDEVICE=bbox $INPUT_FILE 2>&1`
#
NORMAL_BOUNDING_BOX=`echo $BOUNDING_BOX | sed "s/^%%BoundingBox:\
  \ *\([0-9.]*\) *\([0-9.]*\) *\([0-9.]*\) *\([0-9.]*\) *.*$/\1 \2 \3 \4/"` # BOXX=`echo $NORMAL_BOUNDING_BOX | sed "s/^[0-9.]* *[0-9.]* \
  \ *\([0-9.]*\) *.*$/\1/"` BOXY=`echo $NORMAL_BOUNDING_BOX | sed "s/^[0-9.]* *[0-9.]* \
  \ *[0-9.]* *\([0-9.]*\) *.*$/\1/"` # gs -dSAFER -q -dBATCH -dNOPAUSE -sDEVICE=png16m -g${BOXX}0x${BOXY}0 \
  \-r720x720 -sOutputFile=$OUTPUT_FILE $INPUT_FILE

207.4   Anteprima di stampa

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]

207.4.1   BMV

BMV (3) è un programma che permette la visualizzazione di file PostScript utilizzando direttamente una console di tipo VGA, attraverso la libreria SVGAlib (capitolo 215). 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.

Tabella 207.15. Alcune opzioni.

Opzione Descrizione
-vn
Permette di stabilire il tipo di modalità VGA attraverso un numero che fa riferimento a quanto stabilito normalmente attraverso il file /usr/include/vga.h (utilizzato nella compilazione della libreria SVGAlib). Alcuni valori interessanti potrebbero essere il numero 4 (640×480 16 colori), il numero 29 (800×600 16 colori), il 30 (1 024×768 16 colori) e il 31 (1 280×1 024 256 colori).
-pdimensione_carta
Permette di passare a Ghostscript l'indicazione sulla dimensione della carta in modo esplicito.
-gpercorso_gs
Permette di indicare il percorso assoluto per l'avvio dell'eseguibile gs. Potrebbe essere necessario utilizzare questa opzione se BMV è stato compilato con un'indicazione che non corrisponde a quella della propria situazione.

Tabella 207.16. Alcuni comandi da tastiera.

Comando Descrizione
[q] Conclude il funzionamento del programma.
[h], [j], [k], [l] Questi tasti rappresentano uno spostamento dell'immagine rispettivamente: verso sinistra, verso il basso, verso l'alto e verso destra. In pratica ripetono la tradizione di VI.
[+], [-] Ingrandisce e riduce l'immagine.
[g][n][n][n] Salta alla pagina definita dal numero nnn (sono obbligatorie tre cifre).
[s][n] Salta alla console virtuale n.

Segue la descrizione di alcuni esempi.

207.4.2   Ghostview

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.

Figura 207.17. Ghostview.

ghostview

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.

A parte l'uso ovvio del mouse con le barre di scorrimento, sono interessanti le possibilità seguenti.

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.

207.4.3   GV

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.

Figura 207.18. GV.

gv

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).

207.4.4   GGV

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.

Figura 207.19. GGV.

ggv

207.4.5   KGhostView

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).

Figura 207.20. KGhostView

KGhostView

207.5   Distillazione

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.

  1. ps2ps [opzioni] file_originale file_da_generare_ps
    
  2. eps2eps [opzioni] file_originale file_da_generare_eps
    
  3. ps2epsi [opzioni] file_originale file_da_generare_epsi
    
  4. ps2ascii [opzioni] file_originale file_da_generare_ascii
    
  5. pdf2ps [opzioni] file_originale file_da_generare_ps
    
  6. 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 \
  \-dNOPAUSE -dBATCH [opzioni] file_originale
gs -q -sDEVICE=epswrite -sOutputFile=file_da_generare \
  \-dNOPAUSE -dBATCH [opzioni] file_originale

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.

207.6   Estrazione di disegni

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.

207.6.1   Pstoedit

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] \
  \[file_originale [file_da_ottenere]]

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:

Opzione Descrizione
-help
Emette attraverso lo standard error una guida rapida sul suo utilizzo, completa di un elenco di formati disponibili.
-page n
Converte la pagina n-esima.
-merge
Consente la ricostruzione di poligoni riempiti.
-v
Mostra qualche informazione in più durante la conversione.
-f gnuplot
Converte in formato Gnuplot.
-f fig
-f xfig
Converte in formato FIG (per XFig).
-f pic
Converte in formato PIC (per Groff).
-f latex2e
Converte in un formato adatto a LaTeX.
-f java1
-f java2
Converte in formato sorgente Java, 1 o 2.

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]

207.7   Riferimenti

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 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

3) BMV   GNU GPL

4) Ghostview   GNU GPL

5) GV   GNU GPL

6) GGV   GNU GPL

7) KGhostView   GNU GPL

8) Pstoedit   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] [indice analitico]

Valid ISO-HTML!

CSS validator!