PostScript

De Viquipèdia
Dreceres ràpides: navegació, cerca
PostScript
Paradigma de programació: multiparadigma: basat en pila, procedural
Aparegut l'any: 1982
Dissenyat per: John Warnock i Chuck Geschke
Desenvolupador: Adobe Systems
Darrera versió estable: PostScript 3
Tipus de dades: dinàmic, fort
Majors implementacions Adobe PostScript, TrueImage, Ghostscript, InterPress
Influenciat per: Lisp
Ha influenciat: PDF
PostScript
Icona
Exemple de codi Postscript
Exemple de codi Postscript
Extensió del fitxer .ps
MIME application/postscript
Uniform Type Identifier com.adobe.postscript
Magic number %!
Desenvolupador: Adobe Systems
Tipus de format: Llenguatge de descripció de pàgines
Extensió a Encapsulated PostScript

PostScript és un llenguatge de descripció de pàgines (en anglès PDL, page description language ), utilitzat en moltes impressores i, de manera usual, com a format de transport de fitxers gràfics en tallers d'impressió professional.

Està basat en la feina realitzada per John Gaffney a "Evans&Sutherland" l'any 1976. Posteriorment, van continuar-ne el desenvolupament 'JaM' ('John and Martin', Martin Newell) a Xerox PARC i, finalment, va ser implementat en la seva forma actual per John Warnock i altres. Va ser precisament John Warnock, juntament amb Chuck Geschke, qui van fundar Adobe Systems Incorporated (també conegut com a Adobe ) l'any 1982.

El concepte de PostScript es va diferenciar, fonamentalment, per utilitzar un llenguatge de programació complet, per descriure una imatge d'impressió. Imatge que més tard seria impresa en una impressora làser o algun altre dispositiu de sortida de gran qualitat, en lloc d'una sèrie de seqüències de fugues de baix nivell (en això s'assembla a Emacs, que va explotar un concepte intern semblant, pel que fa a les tasques d'edició).

També va implementar, notablement, la composició d'imatges. Aquestes imatges es descrivien com un conjunt de:

Una de les peculiaritats de PostScript és que utilitza Reverse Polish Notation (RPN o notació polonesa inversa-com les calculadores de butxaca d'HP). En altres paraules, els paràmetres d'una comanda són donats abans que la comanda mateixa. Les comandes es separen amb espais en blanc. Utilitza operacions de pila per a processar dades i executar comandes.

Hi ha quatre piles disponibles a PostScript:

  • La pila d'operands
  • La de diccionari
  • La d'execució
  • La d'estat gràfic.

La pila d'operands conté objectes PostScript arbitraris que són els operands i resultats dels operadors PostScript que s'estan executant. Podem donar alguns exemples d'operacions aritmètiques. Per exemple,

20 30 add 10 sub

PDF és un altre llenguatge de descripció de pàgines i és derivat de PostScript, però més simple i lleuger.

PostScript també ha trobat aplicacions diferents de la impressió en paper, com és el cas de Display PostScript. DPS és una extensió de PostScript i va ser utilitzat com a sistema gràfic 2D en el sistema operatiu NEXTSTEP. Quartz, de Mac OS X, és un sistema similar que utilitza PDF.

Ghostscript és una implementació oberta d'un intèrpret compatible amb PostScript.

Un altre tipus llenguatge de descripció de pàgina per a impressores és PCL (dissenyat per HP). És més lleuger però amb menys possibilitats que PostScript.

Desenvolupament històric[modifica | modifica el codi]

PostScript Nivell 1[modifica | modifica el codi]

Ofereix suport per treballar amb objectes vectorials, amb "tipus de contorn" (un conjunt limitat de descripcions de lletres a base de traçats matemàtics), amb lineatures de semitons professionals, capacitat de generar punts de semitons de diferents formes (línia, quadrat, cercle , lipse, etc.), capacitat de gestionar fins a 256 tons de gris diferents en una impressió. Independència total del dispositiu (el que permet imprimir aprofitant al màxim la resolució d'aquest). Portabilitat entre aparells. Disponibilitat pública del codi i de la seva sintaxi (el que permet a qualsevol escriure un programa capaç de generar fitxers PostScript) i algunes coses més.

PostScript Nivell 2[modifica | modifica el codi]

PostScript Nivell 2 va ser introduït l'any 1991 incloent diverses millores com:

  • Gestió de memòria extremadament millorada
  • Major velocitat i fiabilitat
  • Capacitat per a realitzar la separació del color en el RIP (in-RIP separation)
  • Descompressió d'imatges [2]
  • Suport per tipus asiàtiques [3]
  • Suport per tipus compostes
  • Millora dels controladors d'impressora
  • Millora molt notable (encara que una mica tardana) dels algoritmes de tramat de semitons.

El nivell 2 d'PostScript encara no ha estat adoptat del tot per molts fabricants de programari i maquinari.

PostScript 3[modifica | modifica el codi]

A partir d'aquesta versió Adobe va abandonar la terminologia de nivells, passant a utilitzar la de versions. Aquesta versió va ser alliberada a finals de 1997. Les principals millores que va introduir aquesta nova versió són:

  • Ús de 12 bits per descriure les lineatures de semitò [4]
  • Control extremadament millorat de les separacions de color [5]
  • Suport del format PDF desenvolupat pel programa Acrobat
  • Gestió del color molt més avançada.
  • Noves característiques d'impressió relacionades amb les possibilitats que ofereix Internet que encara no han estat molt desenvolupades.
  • Introducció de nous filtres de compressió d'imatges com són el FlateDecode i FlateEncode i per definició de dades com ReusableStreamDecode

Dibuix de figures en PostScript[modifica | modifica el codi]

En el llenguatge PostScript es fa servir un sistema de coordenades cartesianes amb origen a la cantonada inferior esquerra de la pàgina. La unitat de mesura és el punt tipogràfic, el valor es defineix en aquest cas com la setantena segona part d'una polzada ( 1/72 ). En el cas d'un full de tipus letter (hi ha altres mides disponibles) les dimensions són de 612 punts d'ample per 792 de llarg.

Un exemple d'una pila d'instruccions per realitzar un dibuix simple amb PostScript es detalla a continuació:

newpath

% Inicialització del cursor

100.100 moveto

% Dibuix del rectangle

300.100 lineto

300.250 lineto

100.250 lineto

100.100 lineto

stroke

  • Newpath indica que anem a dibuixar una nova figura.
  • Moveto situa el cursor per començar a dibuixar la figura. En aquest cas les coordenades són 100, 100.
  • Els diferents lineto dibuixen les línies de la figura (en aquest cas totes són línies rectes).
  • Finalment, la comanda stroke indica la realització del dibuix al intèrpret.

Òbviament, també hi ha ordre s per dibuixar línies corbes. Per exemple,

x y r a b arc

on:

  • "x" i "y", són les coordenades horitzontal i vertical del centre de l'arc circular.
  • "r", el radi de l'arc.
  • "a" i "b", l'angle entre la part positiva de l'eix horitzontal i els raigs centrals que passen a través del punt inicial i final de l'arc.

Eines d'escriptura en PostScript[modifica | modifica el codi]

PostScript té diverses tipus que s'usen com tipus estàndards per autoedició. Té també eines de creació de tipus a les quals es pot accedir definint piles de diccionari on les tipus estan disponibles. El següent programa en PostScript pot ser un exemple.

/Times-Roman findfont

15 scalefont

setfont

100.500 moveto

(I love PostScript !) show

/Times-Italic findfont

20 scalefont

setfont

100.450 moveto

(I love PostScript !) show

/Times-Bold findfont

25 scalefont

setfont

100.400 moveto

(I love PostScript !) show

showpage

Índex d'operadors[modifica | modifica el codi]

A continuació es detalla una llista que recull l'ús dels operadors més freqüents en les descripcions de Postscript.

  • Add
  • Arc
  • Begin
  • Bind
  • Clip
  • Charpath
  • Closepath
  • Curveto
  • Def
  • Div
  • Dup
  • End
  • Exch
  • Fill
  • For
  • Findfont
  • Grestore
  • Gsave
  • If
  • Ifelse
  • Index
  • Lineto
  • Moveto
  • Mul
  • Newpath
  • Pop
  • Restore
  • Rlineto
  • Rmoveto
  • Rotate
  • Save
  • Scale
  • Scalefont
  • Setfont
  • Setgray
  • Setlinewidth
  • Show
  • Showpage
  • Stroke
  • Sub
  • Translate

Referències[modifica | modifica el codi]

  1. Abans que es desenvolupés Postscript es creia que les tipografies de mapa de bits millorades manualment eren més adequades per a aquesta tasca.
  2. Per exemple, les imatges en format JPEG poden ser renderitzades per un programa PostScript.
  3. Les tipus asiàtiques necessiten, per a la correcta descripció, d'una major quantitat de bytes que les europees
  4. Aquesta característica permet superar la barrera de 256 tons i arribar fins a un degradat que contempla 4.096 tons d'un mateix color.
  5. El control millorat permet realitzar sense problemes separacions de color que superin la quadricromia convencional (hexacromia, duotono, imatges multicanal, etc ...).

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]