Ultimo aggiornamento: 20 Feb, 2025

Titolo - PostScript: Una Spiegazione Chiara

Che cos’è PostScript?

PostScript (PS) è un linguaggio di descrizione pagina (PDL) sviluppato da Adobe Systems nel 1982. È utilizzato principalmente nell’editoria desktop, stampa e design grafico per descrivere come testo e immagini devono essere resi su una pagina.

PostScript: Caratteristiche e Applicazioni

Spiegazione di PostScript (PS)

PostScript (PS) è sia un linguaggio di descrizione pagina (PDL) sia un linguaggio di programmazione che è dinamicamente tipizzato e basato su stack. Ecco cosa significa:

1. Che cos’è un Linguaggio di Descrizione Pagina (PDL)?

Un linguaggio di descrizione pagina definisce come grafica e testo appaiono su una pagina stampata o su uno schermo. PostScript è usato in stampanti, software di pubblicazione e impaginazione digitale per rendere accuratamente font, immagini e layout.

2. Che cos’è un Linguaggio di Programmazione Basato su Stack?

PostScript utilizza uno stack per eseguire i comandi, il che significa che segue un approccio Last-In, First-Out (LIFO). Ad esempio, per sommare due numeri in PostScript, li inserisci nello stack e poi chiami un operatore per elaborarli:

10 20 add

Questo inserisce 10 e 20 nello stack, poi il comando add li estrae e inserisce il risultato (30) di nuovo nello stack.

3. Tipizzazione Dinamica

PostScript non richiede definizioni esplicite di tipo. Le variabili possono contenere diversi tipi (numeri, stringhe, array, ecc.) senza tipi predefiniti.

4. Usi di PostScript

PostScript è utilizzato principalmente per desktop publishing ed editoria elettronica, il che significa che aiuta a creare e stampare documenti di alta qualità con un controllo preciso su font, layout e grafica.

5. Linguaggio Completo di Turing

Essere completo di Turing significa che PostScript può, teoricamente, eseguire qualsiasi computazione data sufficiente memoria e tempo. Ciò significa che può essere usato per compiti di programmazione generale, non solo stampa.

6. Storia e Sviluppo

  • Sviluppato da Adobe Systems tra il 1982 e il 1984.
  • Creato da John Warnock, Charles Geschke, Doug Brotz, Ed Taft e Bill Paxton.
  • L’ultima versione, PostScript 3, è stata rilasciata nel 1997 e ha migliorato le prestazioni, la gestione del colore e la compressione delle immagini.

Storia di PostScript

Le origini di PostScript risalgono al 1976, quando John Gaffney presso Evans & Sutherland sviluppò concetti per un linguaggio di descrizione pagina lavorando su un database grafico. Allo stesso tempo, Xerox PARC stava sviluppando stampanti laser e aveva bisogno di uno standard per definire le immagini della pagina. Crearono prima il formato Press, che poi evolse in Interpress nel 1978, sviluppato da John Gaffney e Martin Newell.

L'Evoluzione e l'Impatto di PostScript

Nel 1982, John Warnock e Chuck Geschke lasciarono Xerox PARC e co-fondarono Adobe Systems, dove, insieme a Doug Brotz, Ed Taft e Bill Paxton, svilupparono PostScript come alternativa più semplice a Interpress. Fu rilasciato a livello commerciale nel 1984.

Il Ruolo di Apple nel Successo di PostScript

Nel 1983, Steve Jobs vide il potenziale di PostScript per il Macintosh e lo licenziò da Adobe per $1.5 milioni, più $2.5 milioni per il 20% delle azioni di Adobe. Tentò anche, senza successo, di acquistare Adobe. Apple e Adobe lavorarono insieme per ottimizzare PostScript per la stampante LaserWriter di Apple—lanciata nel 1985—che svolse un ruolo cruciale nella rivoluzione del desktop publishing.

Il successo di Adobe nel rendering e hinting dei font rese PostScript praticabile anche su stampanti laser Canon a bassa risoluzione a 300-dpi. Adobe non brevettò questa tecnologia per mantenerla un segreto commerciale.

Declino e Eredità di PostScript

Durante gli anni ‘80 e ‘90, PostScript fu ampiamente usato nelle stampanti laser, ma i suoi alti requisiti di potenza di elaborazione e memoria lo resero costoso. Con l’evoluzione verso stampanti più economiche e computer più potenti, soluzioni basate su software sostituirono l’elaborazione hardware di PostScript. Entro il 2001, la maggior parte delle stampanti economiche abbandonò il supporto a PostScript a favore della tecnologia inkjet e del rendering software.

Tuttavia, PostScript rimane dominante nelle stampanti professionali di alta gamma, dove trasferisce il rendering dal computer alla stampante, migliorando le prestazioni. Inoltre, il PDF (Portable Document Format)—un diretto discendente di PostScript—è diventato lo standard per la distribuzione di documenti elettronici.

Livelli di PostScript

PostScript si è evoluto attraverso diversi livelli, ognuno dei quali ha migliorato funzionalità, prestazioni ed efficienza. Ci sono tre livelli principali:

Evoluzione dei Livelli di PostScript

1. PostScript Livello 1 (1984)

Il PostScript originale (Livello 1, rilasciato nel 1984) ha permesso agli utenti di controllare con precisione il layout della pagina con testo, grafica e immagini, ed è stato utilizzato nelle prime stampanti laser. Tuttavia, era limitato al grigio, elaborava lentamente le grafiche complesse e produceva file di grandi dimensioni a causa della mancanza di compressione delle immagini.

  • La versione originale, rilasciata da Adobe nel 1984.
  • Forniva descrizioni pagina indipendenti dal dispositivo per testo, grafica e immagini.
  • Consentiva un controllo preciso sulla tipografia e il layout.
  • Utilizzato nelle prime stampanti PostScript, inclusa la Apple LaserWriter.
  • Limitazioni:
    • Mancava di supporto per il colore (solo in bianco e nero).
    • Lenta elaborazione delle grafiche complesse.
    • Nessuna compressione dell’immagine integrata, portando a dimensioni di file grandi.

2. PostScript Livello 2 (1991)

PostScript Livello 2 (1991) ha migliorato le prestazioni, aggiunto la stampa a colori, compresso i file, migliorato i font e accelerato l’elaborazione delle grafiche complesse.

  • Migliorata prestazione e efficienza della memoria.
  • Aggiunto supporto per la stampa a colori (CMYK e colori spot).
  • Introdotta compressione dati per ridurre le dimensioni dei file.
  • Abilitato migliore gestione dei font (font Tipo 1 e Tipo 3).
  • Introdotto Pattern, Moduli e Font Compositi per un migliore rendering del testo.
  • Elaborazione più rapida delle grafiche complesse rispetto a Livello 1.

3. PostScript 3 (1997)

PostScript 3 (1997) è stato un aggiornamento importante con un rendering più veloce, migliore colore, supporto per la stampa a risoluzione molto alta, font migliorati e effetti grafici avanzati. Anche se ora meno comune, è ancora usato in alcune stampe di alta fascia.

  • Aggiornamento importante con rendering più efficiente.
  • Gestione del colore migliorata con profili ICC.
  • Supporto migliorato per la stampa ad alta risoluzione (oltre 2400 dpi).
  • Gestione dei font migliorata, incluso il supporto per font Multiple Master.
  • Più trasparenza ed effetti di sfumatura (miglior rendering grafico).
  • Sostituito da flussi di lavoro basati su PDF nella pubblicazione moderna, ma ancora usato in stampanti di alta gamma.

PostScript nella Stampa

Prima di PostScript:

  • Le prime stampanti stampavano solo caratteri di testo, di solito in ASCII, con glifi fissi (es. tasti da macchina da scrivere, nastri di metallo o piastre ottiche).
  • Le stampanti matrice di punti hanno introdotto font selezionabili e upload di glifi personalizzati, insieme a grafiche raster di base tramite sequenze di escape, ma richiedevano driver specifici per ciascun modello di stampante.
  • Le grafiche vettoriali venivano gestite da plotter (es. basati su HPGL), ma questi erano lenti, costosi e limitati alla grafica.

Stampa PostScript:

  • Le stampanti laser combinavano i punti di forza delle stampanti matrice di punti e dei plotter, permettendo testi e grafiche di alta qualità sulla stessa pagina.
  • PostScript unificò il controllo della stampa con un linguaggio unico e indipendente dal dispositivo funzionante su diverse stampanti e software.
  • A differenza dei tradizionali linguaggi di controllo della stampante, PostScript è un linguaggio di programmazione completo, permettendo documenti resi con precisione.
  • Rasterizzazione veloce: PostScript definisce tutto (incluso il testo) utilizzando linee rette e curve di Bézier, consentendo scalature, rotazioni e trasformazioni fluide.
  • Interpreti PostScript, chiamati Raster Image Processors (RIP), convertono le istruzioni nei punti necessari per l’output finale.

Gestione dei Font in PostScript

Il sistema di font PostScript utilizza forme grafiche di base per creare glifi scalabili, consentendo ai font di essere ridimensionati senza perdita di qualità. L’hinting dei font è utilizzato per garantire che i font rimangano nitidi e leggibili anche a piccole dimensioni o basse risoluzioni. I font PostScript sono memorizzati in vari formati “Tipo” specializzati, ciascuno dei quali offre diverse capacità.

Evoluzione dei Font PostScript

Sistema di Font PostScript

  • Utilizza primitive grafiche per definire glifi scalabili.
  • Hinting dei font garantisce alta qualità del rendering, anche a bassa risoluzione.
  • I font erano memorizzati in formati Tipo specializzati con diverse capacità.

Tipi di Font PostScript

PostScript offriva vari formati di font. I font Tipo 1 di alta qualità di Adobe erano inizialmente concessi in licenza, mentre i font Tipo 3, privi di hinting standard, erano utilizzati da altri. I formati Tipo 2 e CFF riducevano le dimensioni dei file e aprivano la strada all’OpenType. I font CID-Keyed supportavano grandi set di caratteri asiatici e potevano utilizzare strutture Tipo 1 o Tipo 2.

  • Tipo di Font 1 (T1):

    • Formato di font proprietario compresso e cifrato di Adobe.
    • Utilizzato per font di alta qualità, con hinting.
    • Adobe inizialmente concesse in licenza la tecnologia Tipo 1 a pagamento.
  • Tipo di Font 3 (T3):

    • Permise l’uso di tutte le funzionalità PostScript, ma mancava di hinting standardizzato.
    • Utilizzato da chi non poteva concedere in licenza la tecnologia Tipo 1.
  • Tipo di Font 2 (T2) e Formato di Font Compatto (CFF):

    • Ridurre le dimensioni del file dei font per l’efficienza.
    • Diventato la base per i font OpenType.
  • Font CID-Keyed:

    • Progettato per set di caratteri asiatici (CJK) con ampi spazi di codifica.
    • Poteva usare Tipo 1 o Tipo 2 per diverse strutture di font.

Evoluzione del Formato di Font

Apple ha creato font TrueType per competere con i font di Adobe. Questo ha costretto Adobe a condividere come funzionano i loro font. Più tardi, Adobe e Microsoft si sono unite per creare i font OpenType, che combinavano il meglio di entrambi e sono diventati lo standard a livello industriale che usiamo oggi.

  • TrueType (1991):

    • Sviluppato da Apple come concorrente del sistema di Adobe.
    • Forzato Adobe a pubblicare la specifica del Tipo 1 per uso pubblico.
  • OpenType (Fine Anni ‘90):

    • Sviluppato in collaborazione tra Adobe & Microsoft.
    • Unificata funzionalità di Tipo 1 e TrueType.
    • Diventata lo standard industriale per i font moderni.

Fine del Supporto al Tipo 1

  • Adobe ha ufficialmente terminato il supporto per i font Tipo 1 a gennaio 2023 a favore di OpenType.

Formato di Documento Portatile (PDF) e PostScript

PDF vs. PostScript

PDF e PostScript sono due formati di documenti che producono lo stesso output stampato perché utilizzano lo stesso sistema grafico di base. La principale differenza risiede nella loro struttura: PostScript è un linguaggio di programmazione a tutti gli effetti, che permette operazioni dinamiche, mentre PDF è un formato più snello e statico, progettato per una visualizzazione e navigazione efficienti. Nonostante queste differenze, è possibile convertire i file tra i due formati.

Comprendere PostScript e PDF
  • Modello di Immagine Simile – Sia PDF che PostScript utilizzano lo stesso sistema grafico, garantendo output stampato identico.
  • Qual è la Differenza?
    • PostScript è un linguaggio di programmazione completo di Turing capace di operazioni dinamiche.
    • PDF è una struttura dati statica, ottimizzata per accesso e navigazione efficienti, rendendolo migliore per visualizzazione interattiva.
  • Convertibilità Reciproca – I PDF possono essere convertiti in PostScript, e viceversa.

Il Linguaggio PostScript

PostScript è un linguaggio di programmazione basato su stack a tipizzazione dinamica, simile a Forth ma con strutture dati simili a Lisp. Utilizza la Notazione Polacca Inversa, richiedendo una gestione attenta della memoria. PostScript utilizza array e dizionari, gestisce la tipizzazione a runtime ed include la garbage collection. I commenti iniziano con “%”, e i programmi iniziano tipicamente con “%!PS”.

  • Completo di Turing & Basato su Stack – Simile a Forth, ma con tipizzazione dinamica e strutture dati simili a Lisp.
  • Notazione Polacca Inversa (RPN) – Gli operatori agiscono su uno stack, richiedendo una gestione attenta.
  • Gestione della Memoria
    • Usa memoria a scopo.
    • Introdotta la garbage collection nel PostScript Livello 2.
  • Strutture Dati
    • Usa array & dizionari.
    • Niente dichiarazioni di tipo formali; la tipizzazione è gestita a runtime.
  • Commenti & Struttura del Programma
    • % introduce i commenti.
    • I programmi tipicamente iniziano con "%!PS" per indicare il formato PostScript.

Come viene usato PostScript

  • Principalmente generato da software, non scritto manualmente.
  • Può essere usato come un linguaggio di programmazione completo per automazione.
  • Interpretato da stampanti (RIPs) o visualizzatori a schermo.

Esempio di un Semplice File PostScript

Ecco un semplice esempio di un file PostScript (.ps) che stampa “Hello, World!” su una pagina:

%!PS
/Times-Roman findfont 24 scalefont setfont
100 700 moveto
(Hello, World!) show
showpage

Spiegazione:

  1. %!PS → Identifica il file come documento PostScript.
  2. /Times-Roman findfont 24 scalefont setfont → Seleziona il font Times-Roman in dimensione 24.
  3. 100 700 moveto → Sposta il cursore alle coordinate (100, 700) sulla pagina.
  4. (Hello, World!) show → Stampa “Hello, World!” nella posizione specificata.
  5. showpage → Indica alla stampante di stampare la pagina.

Puoi salvarlo come hello.ps e aprirlo con un visualizzatore PostScript (es. GSview, Ghostscript) o inviarlo a una stampante PostScript.

Hello.ps Dopo il Rendering

Titolo - Hello.ps Dopo il Rendering

Elenco di Software per Renderizzare PostScript

Visualizzatori & Interpreti PostScript

  1. Ghostscript (Open-source) – Interprete popolare per PostScript e PDF.
  2. GSview – Interfaccia grafica per Ghostscript.
  3. MuPDF – Visualizzatore leggero che supporta PostScript e PDF.
  4. Xpdf – Visualizzatore PDF open-source con un certo supporto PostScript.
  5. Evince – Visualizzatore di documenti GNOME in grado di gestire file PostScript.
  6. Okular – Visualizzatore di documenti KDE con supporto PostScript.
  7. Apple Preview – Visualizzatore integrato in macOS che supporta PostScript & PDF.

Stampanti & Rasterizzatori PostScript

  1. Adobe Acrobat Distiller – Converte PostScript in PDF di alta qualità.
  2. CUPS (Common Unix Printing System) – Gestisce la stampa PostScript su Unix/Linux.
  3. PPR (Printer Production Release) – Spooler & renderer PostScript.

Software di Grafica Vettoriale & DTP

  1. Adobe Illustrator – Può aprire & modificare file PostScript.
  2. CorelDRAW – Supporta PostScript per grafica vettoriale.
  3. Scribus – Software di impaginazione open-source con supporto PostScript.
  4. Inkscape – Può importare/esportare PostScript (tramite Ghostscript).

Strumenti da Linea di Comando & Conversione

  1. ps2pdf (parte di Ghostscript) – Converte PostScript in PDF.
  2. pstopdf (strumento da linea di comando macOS) – Converte PostScript in PDF.
  3. ImageMagick – Può renderizzare file PostScript in immagini.