colore digitale blog

Il blog di Mauro Boscarol sulla gestione digitale del colore dal 1997

Nella serie PostScript e i suoi derivati

PostScript: linguaggio, interprete, Rip

Adobe PostScript è un linguaggio di programmazione (come Java, Basic, Pascal, C, non un linguaggio di descrizione come HTML, RTF, XML). È un linguaggio di programmazione orientato alla stampa, per qualunque tipo di periferica di stampa: stampanti da scrivania (laser, getto d’inchiostro), stampanti fotografiche, imagesetter (impressione di pellicole), platesetter (incisione di lastre).

La sintassi del linguaggio PostScript è stata pubblicata in tre versioni successive:

  • 1985: esce il PostScript originale;
  • 1991: esce la seconda versione che Adobe chiama PostScript Level 2;
  • 1997: esce la terza versione che Adobe chiama PostScript 3.

Questi sono i manuali di riferimento delle tre versioni di PostScript, chiamati confidenzialmente “Red Book”:

Dal punto di vista della sintassi, PostScript utilizza la cosiddetta notazione “polacca inversa” (reverse polish notation) che consiste nello scrivere l’operatore dopo gli operandi. Per indicare la somma dei numeri 5 e 3, si possono infatti usare tre notazioni:

5 + 3 è l’usuale notazione cosiddetta infissa o algebrica

+ 5 3 è la notazione prefissa o “polacca”

5 3 + è la notazione postfissa o “polacca inversa”, PostScript usa questa notazione

PostScript prende il proprio nome proprio dall’uso della notazione postfissa. L’aggettivo “polacca” deriva dal fatto che le proprietà di queste notazioni sono state studiate per la prima volta dal matematico e logico polacco Jan Lukasiewicz (1878-1956).

Per esempio, questo è un frammento di programma PostScript che traccia 30 linee lunghe 400 punti tipografici una sotto l’altra:

35 300 moveto
1 1 30 {400 0 rlineto -400 10 rmoveto} for
stroke


Da notare l’istruzione for, tipica di un linguaggio di programmazione. L’interpretazione di questo programma PostScript dà luogo alla display list dei 30 segmenti da tracciare, e al loro tracciamento, all’interno del foglio (l’origine è in alto a sinistra e l’unità di misura è il punto tipografico):

Risultato in stampa del programma PostScript

Si noti che un file PostScript non ha conoscenza della struttura del proprio documento fino al momento della costruzione della display list.

Essendo PostScript un linguaggio, un file PostScript (suffisso .ps) è un file di testo che contiene un programma (dati e istruzioni) che viene eseguito su un processore collegato con (o incorporato in) una stampante.

Una stampante PostScript è una stampante che accetta istruzioni in linguaggio PostScript. Le stampanti PostScript sono composte di due parti principali: il Rip (Raster Image Processor) e la stampante vera e propria (la parte meccanica/elettronica).

Il Rip PostScript è un programma che risiede nell’hardware della stampante (cioè in ROM) oppure in un software separato. Se è hardware è un vero e proprio computer con processore e memoria (separato o congiunto con la stampante vera e propria). Se è software è installato su un proprio computer con processore e memoria.

Il Rip PostScript ha il compito di

  • eseguire le istruzioni PostScript mediante un interprete;
  • calcolarne il risultato, che è una lista di oggetti grafici detta display list;
  • rasterizzare questi oggetti grafici (rendering);
  • retinare il raster (screening);
  • passare il tutto alla parte meccanica per la stampa vera e propria (imaging, con inchiostro su carta).

Tutte le operazioni del Rip (interpretazione, rasterizzazione, retinatura) avvengono in memoria, fino alla costruzione di ogni singolo pixel da spedire alla stampante.

Il primo componente del RIP, l’interprete, interpreta appunto il linguaggio PostScript, esegue una ad una le istruzioni e memorizza i risultati nella cosiddetta display list nella quale sono dunque contenuti tutti gli oggetti grafici di ogni pagina in un formato uniforme. La display list non è un programma, ma l’elenco degli oggetti grafici in attesa di essere sottoposti alla rendering e alla retinatura.

Il secondo componente, la parte di rendering, converte (o rasterizza) gli oggetti della display list in singoli pixel (mappa di byte) alla risoluzione richiesta, che vengono memorizzati.

Il terzo componente, la parte di screening, retina le immagini a colori e a grigi e memorizza il risultato (mappa di bit) nella memoria del RIP.

Riassumendo: le istruzioni PostScript vengono presentate al RIP. L’interprete PostScript interpreta questa istruzioni e ne ricava una display list, cioè una descrizione dettagliata e ordinata delle pagine con i singoli oggetti grafici. Gli elementi della display list vengono resi (rasterizzati) in memoria e quindi retinati. Infine il risultato, la mappa di bit, viene trasferito alla stampante che fa la cosiddetta imaging, cioè stampa l’immagine.

Per quanto riguarda l’interpretazione, Adobe ha un proprio interprete “originale”  chiamato CPSI (Configurable PostScript Software Interpreter) anch’esso in tre versioni, corrispondenti alle versioni del linguaggio. Questo è il logo dell’interprete PostScript nelle tre versioni:

Sono stati prodotti anche numerosi interpreti cosiddetti “compatibili” tra i quali Jaws,  Ghostscript, TrueImage, PhoenixPage.

Torna all'indice di PostScript e i suoi derivati

Mauro Boscarol

3/10/2008 alle 13:11

Parole chiave , , ,

Visitato 2,117 volte, negli ultimi 7 giorni 1 visite

Vuoi fare un commento a questo post?

Devi essere collegato per scrivere un commento.