postscript Tutorial
Iniziare con postscript
Ricerca…
Osservazioni
PostScript è un linguaggio di scripting dinamico, basato su stack, dinamicamente inverso e basato su stack con primitive incorporate per la generazione di immagini renderizzate da descrizioni vettoriali. PostScript utilizza lo stesso "Adobe Image Model" come formato di file PDF.
PostScript viene utilizzato come formato di output da molti programmi poiché è progettato per essere facilmente generato dalla macchina.
Come LISP, PostScript è omoiconico e il codice e i dati condividono la stessa rappresentazione. Le procedure possono prendere le procedure come dati e generare procedure come risultati, prestandosi anche alle tecniche derivanti dalla programmazione concatenativa .
Installazione o configurazione
Gli interpreti Adobe PostScript autentici sono disponibili nelle stampanti di fascia alta, nel prodotto Display PostScript (DPS) e nel prodotto Acrobat Distiller. Come autori dello standard, questi prodotti sono considerati "l'implementazione standard" allo scopo di descrivere le differenze tra le implementazioni PostScript.
L'interfaccia standard all'interprete definita nel PLRM è il flusso del programma che può essere sia testo che binario in base ai dettagli del canale o del SO / controller sottostante. Acrobat Distiller ha un front-end GUI per selezionare il programma postscript di input e renderne l'output in formato pdf. Distiller ha anche un supporto limitato per l'utilizzo del flusso di testo di output per segnalare errori e altri output del programma. GSView offre un'interfaccia grafica simile per un flusso di lavoro simile che utilizza Ghostscript come interprete.
Ghostscript e Xpost funzionano entrambi in modalità riga di comando. Il file di programma postscript da eseguire può essere menzionato sulla riga di comando ( gs program.ps
o xpost program.ps
) che aprirà una finestra grafica per visualizzare l'output grafico. Le opzioni possono essere utilizzate per rendere la grafica da qualche altra parte come un file su disco o sopprimere completamente la grafica e utilizzare postscript proprio come un linguaggio di scripting di testo.
I vari interpreti hanno ciascuno le proprie istruzioni di installazione e configurazione e sarebbe inutile (e incline a non essere aggiornato) riprodurle qui.
Interpreti PostScript liberamente disponibili
Ghostscript è disponibile per tutte le principali piattaforme e distribuzioni Linux, in formato sorgente o binario, sotto la licenza GNU o sotto altri accordi di licenza con gli autori, il software Artifex . Ghostscript implementa lo standard PostScript 3 completo.
Xpost è disponibile in formato sorgente per tutte le principali piattaforme, sotto la licenza BSD-3-clause. Implementa lo standard Level 1 con alcune estensioni di Livello 2 e alcune estensioni DPS.
Descrizione generale di PostScript
PostScript è un linguaggio di programmazione generale completo di Turing, progettato e sviluppato da Adobe Systems. Molte delle idee sbocciate in PostScript erano state coltivate in progetti per Xerox ed Evans & Sutherland.
La sua principale applicazione nel mondo reale è storicamente come un linguaggio di descrizione della pagina , o nella sua singola pagina EPS forma un linguaggio di descrizione-immagine vettoriale. È tipizzato dinamicamente, con ambito dinamico e basato sullo stack, il che porta ad una sintassi prevalentemente polacca inversa.
Esistono tre versioni principali di PostScript.
- PostScript Livello 1 : è stato rilasciato sul mercato nel 1984 come sistema operativo residente della stampante laser Apple LaserWriter, inaugurando l'era del desktop publishing.
- PostScript livello 2 - rilasciato nel 1991, questo conteneva alcuni importanti miglioramenti al Livello 1, incluso il supporto per la decompressione dell'immagine, separazione in-RIP, dizionari auto-crescita, raccolta dati inutili, risorse denominate, codifiche binarie del flusso del programma PostScript stesso.
- PostScript 3 - la versione più recente e forse più diffusa è stata rilasciata nel 1997. Anch'essa contiene diversi miglioramenti all'importazione rispetto al Livello 2 come Smooth Shading. Il termine "livello" è stato abbandonato.
Sebbene PostScript sia tipicamente usato come linguaggio di descrizione della pagina - e quindi è implementato in molte stampanti per generare immagini raster - può anche essere usato per altri scopi. Come una calcolatrice rapida per la lucidatura inversa con nomi di operatori più memorizzabili rispetto a bc
. Come formato di output generato da un altro programma (di solito in qualche altra lingua).
Sebbene i file PostScript siano tipicamente ASCII a 7 bit, esistono diversi tipi di codifica binaria descritti nello standard di livello 2. Ed essendo programmabile, un programma può implementare il proprio schema di codifica arbitrariamente complesso per se stesso. Esiste una competizione internazionale postfissa offuscata, un po 'meno attiva di quella C.
Riferimenti online
Pagine di indice della documentazione di Adobe:
https://www.adobe.com/products/postscript/resources.html
http://www.adobe.com/devnet/postscript.html
http://www.adobe.com/devnet/font.htmlManuale di riferimento al linguaggio PostScript, 3ed - Lo standard PostScript 3. (7,41 MB di pdf)
( Supplemento , Errata )Manuale di riferimento al linguaggio PostScript, 2ed - Lo standard PostScript livello 2. (include Mostra documentazione PostScript.) (3.29MB pdf)
Tutorial Postscript e ricettario - Il libro blu. (847 KB pdf)
Postscript Language Program Design - Il libro verde. (Pdf 911 KB)
Thinking in Postscript - Dagli autori del libro verde e del tutorial del blue-book. (826 KB pdf)
Convenzioni di strutturazione dei documenti del linguaggio PostScript Speci fi cazione 3.0 (521 KB pdf)
Formato font Adobe Type 1 (444 KB pdf)
Specificazione di file in formato PostScript incapsulato 3.0 (185 KB pdf)
Descrizione della stampante PostScript Specifica formato file 4.3 (186 KB pdf) ( aggiornamento )
Risolvi errori PostScript - Suggerimenti per il debug. (158 KB di codice HTML)
Acumen Journal - Archivio di articoli di programmazione Postscript e PDF. (directory html di PDF compressi)
Illustrazioni matematiche: A Manual of Geometry and Postscript - di Bill Casselman. (directory html di capitoli pdf e download di codice)
Thread con molte implementazioni di algoritmi di ordinamento (archivio usenet)
Uso diretto di Anastigmatix del linguaggio Postscript
Debugger passo-passo open-source per codice Postscript
FAQs
Libri
Postscript Language Reference Manual, 1ed, 1985. Consigliato per le sue ridotte dimensioni e facile indice di operatore dalle pagine di riepilogo (mancante nelle edizioni successive).
Postscript del mondo reale. Capitoli di vari autori su vari argomenti, tra cui un'eccellente copertura dei mezzitoni.
Spazi dei nomi locali per le funzioni
Postscript è un linguaggio di nomi dinamici o LISP 1 . Ma fornisce gli strumenti per implementare le variabili locali nelle procedure e altri effetti necessari per implementare gli algoritmi.
Per i nomi locali in una procedura, creare un nuovo dizionario all'inizio e farlo scoppiare alla fine.
/myproc {
10 dict begin
%... useful code ...
end
} def
Puoi anche combinarlo bene con una scorciatoia per definire gli argomenti della funzione come variabili.
% a b c myproc result
/myproc {
10 dict begin
{/c /b /a} {exch def} forall
%... useful code yielding result ...
end
} def
Se è necessario aggiornare una variabile * "global" * mentre il dizionario locale è in cima, utilizzare store
invece di def
.
Ciao esempio del mondo
Seleziona un font e fontsize, seleziona location, show
string.
%!PS
/Palatino-Roman 20 selectfont
300 400 moveto
(Hello, World!) show
showpage
Note e insidie comuni:
Impossibile impostare un font (che non genera alcun testo o un font predefinito (brutto))
Usando
findfont
esetfont
ma dimenticando discalefont
in mezzo. Utilizzando il livello 2selectfont
evita questo problema ed è più conciso.moveto
impostare un punto conmoveto
o impostare il punto all'esterno della pagina. Per la carta da lettera americana 8.5x11 è 792x612 punti ps. Quindi è facile ricordare circa 800x600 (ma uno smidge più corto e più largo). Quindi300 400
è approssimativamente il centro della pagina (poco alto, poco a sinistra).Dimenticando di chiamare
showpage
. Se visualizzi in anteprima un programma ps congs
e non finisce inshowpage
,gs
potrebbe visualizzare un'immagine per te. Eppure, il file non produrrà misteriosamente alcun output quando si tenta di convertire in pdf o qualcos'altro.
programma scolastico
Leggi la documentazione in questo ordine per imparare facilmente PostScript:
L'eccellente tutorial di Paul Bourke: http://paulbourke.net/dataformats/postscript/
Blue Book, prima metà, il tutorial ufficiale originale:
http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDFLibro verde, come usare efficacemente postscript:
http://www-cdf.fnal.gov/offline/PostScript/GREENBK.PDFPensando in Postscript, 'nuff said: http://wwwcdf.pd.infn.it/localdoc/tips.pdf
Illustrazioni matematiche . Inizia in piccolo, costruisci alla grande. La matematica dietro Bezier Curves. L'algoritmo di ritaglio poligono Hodgman-Sutherland. Trasformazioni affini e trasformazioni non lineari del percorso. Disegno 3D e ombreggiatura Gouraud. Dalla prefazione:
Quale [dei tanti strumenti per aiutare a produrre una grafica matematica] da scegliere apparentemente comporta un compromesso tra semplicità e qualità, in cui la maggior parte va per ciò che percepiscono essere la semplicità. La verità è che il trade-off non è necessario - una volta che si è fatto un piccolo investimento iniziale di sforzi, la cosa migliore da fare nella maggior parte delle situazioni è scrivere un programma nel linguaggio di programmazione della grafica PostScript. Non c'è praticamente alcun limite alla qualità dell'output di un programma PostScript e, man mano che si acquisisce esperienza, le difficoltà di usare il linguaggio diminuiscono rapidamente. L'apparente complessità implicata nella produzione di figure semplici programmando in PostScript, come spero che questo libro dimostrerà, è in gran parte un'illusione. E la quantità di lavoro necessaria per produrre figure più complicate di solito non sarà né più né meno di quanto è necessario.