8.2 Postscript e Ghostscript

Nei sistemi Unix-like il PDL di riferimento è PostScript. Quindi, quando ad un’applicazione viene impartito il comando di stampa, essa crea una rappresentazione del documento da stampare in Postscript. Ovviamente la rappresentazione PostScript di un documento non è il documento stesso, ma contiene le indicazioni necessarie per riprodurre una stampa del documento desiderato.

Un esempio di rappresentazione PostScript di un documento è quello riportato di seguito (%!PS indica l’inizio della rappresentazione PostScript di un documento)

%!PS
100 100 moveto 0 50 rlineto 50 0 rlineto  0 -50 rlineto  closepath
.8 setgray fill 160 100 moveto 0 60 rlineto 45 10 rlineto  0 -40 rlineto
closepath .3 setgray fill
showpage
Esso indica come ricorstruire un disegno seguendo le opportune istruzioni:

100 100 moveto   sposta la penna alle coordinate (100, 100)
0 50 rlineto     disegna un segmento dalla posizione attuale (coordinate relative (0,0)) fino alle coordinate relative (0, 50)
50 0 rlineto     disegna un segmento dalla posizione attuale (coordinate relative (0,0)) fino alle coordinate relative (50, 0)
0 -50 rlineto    disegna un segmento dalla posizione attuale (coordinate relative (0,0)) fino alle coordinate relative (0, -50)
closepath        chiude la figura
.8 setgray       imposta il colore grigio all’80%
fill             riempie la figura precedentemente disegnata
...

Quando la stampante (in grado di comprendere il PDL PostScript) riceve le indicazioni precedenti, attua al suo interno le operazioni corrispondenti alle indicazioni ricevute, riproducendo sulla carta il disegno originale. Nella fig. 8.1 è riportato l’output della stampante.


pict
Figura 8.1: Esempio di riproduzione PostScript.

Ovviamente il PostScript è un linguaggio di programmazione vero e proprio, molto più complesso di quanto illustrato in questo semplice esempio.

Il documento cartaceo è quello che viene definita immagine raster. Quello che appare sono linee, curve, caratteri, ..., ma in relatà, il documento è formato da punti, di varie dimensioni e colori.

Per passare dalla rappresentazione PostScript all’immagine raster è necessario conoscere i dettagli della stampante. Tale attività, denominata RIP (Raster Imaging Process), è molto pesante in termini di tempo di elaborazione. Le stampanti in grado di comprendere il PostScript, effettuano questa attività automaticamente: quando viene passato loro il file contenente la rappresentazione PostScript di un documento, esse attivano il processo di RIPping ed effettuano la riproduzione cartacea del documento elettronico inviato. Per le stampanti che non sono in grado di comprendere il PostScript è necessario che il RIPping venga effettuato dalla CPU. Soltanto successivamente il risultato può essere inviato alla stampante, che quindi è in grado di stamparlo stampa. Il software più diffuso sui sistemi Unix-like per effettuare la fase di RIPping delle rappresentazioni PostScript dei documenti è Ghostscript, che è in grado di effettuare il RIPping per un gran numero di stampanti (che non comprendono il PostScript). Ovviamente il risultato di RIPping di Ghostscript per una determinata stampante può non essere ottimale e questo dipende dalla definizione dei filtri di RIPping per Ghostscript.


  8.2.1 PPD