- PostScript
-
PostScript
PostScript es un lenguaje de descripción de páginas (en inglés PDL, page description language), utilizado en muchas impresoras y, de manera usual, como formato de transporte de archivos gráficos en talleres de impresión profesional.
Está basado en el trabajo realizado por John Gaffney en Evans y Sutherland en el año 1976. Posteriormente, continuaron el desarrollo 'JaM' ('John and Martin', Martin Newell) en Xerox PARC y, finalmente, fue implementado en su forma actual por John Warnock y otros. Fue precisamente John Warnock, junto con Chuck Geschke, los que fundaron Adobe Systems Incorporated (también conocido como Adobe) en el año 1982.
El concepto PostScript se diferenció, fundamentalmente, por utilizar un lenguaje de programación completo, para describir una imagen de impresión. Imagen que más tarde sería impresa en una impresora láser o algún otro dispositivo de salida de gran calidad, en lugar de una serie de secuencias de escapes de bajo nivel (en esto se parece a Emacs, que explotó un concepto interno parecido con respecto a las tareas de edición).
También implementó, notablemente, la composición de imágenes. Estas imágenes se describían como un conjunto de:
- Líneas horizontales
- Píxeles al vuelo
- descripciones por curvas de Bezier
- tipografía (fuentes) de alta calidad a baja resolución[1] (e.g. 300 puntos por pulgada).
Una de las peculiaridades de PostScript es que usa Reverse Polish Notation (RPN o notación polaca inversa- como las calculadoras de bolsillo de HP). En otras palabras, los parámetros de un comando se dan antes que el comando. Los comandos se separan con espacios en blanco. Usa operaciones de pila para procesar datos y ejecutar comandos.
Hay cuatro pilas disponibles en PostScript:
- La pila de operandos
- La de diccionario
- La de ejecución
- La de estado gráfico.
La pila de operandos contiene objetos PostScript arbitrarios que son los operandos y resultados de los operadores PostScript que se están ejecutando. Podemos dar algunos ejemplos de operaciones aritméticas. Por ejemplo,
20 30 add 10 sub
PDF es otro lenguaje de descripción de páginas y es derivado de PostScript, pero más simple y liviano.
PostScript también ha encontrado aplicaciones distintas de la impresión en papel, como es el caso de Display PostScript. DPS es una extensión de PostScript y fue utilizado como sistema gráfico 2D en el sistema operativo NEXTSTEP. Quartz, de Mac OS X, es un sistema similar que utiliza PDF.
Ghostscript es una implementación abierta de un intérprete compatible con PostScript.
Otro tipo lenguaje de descripción de página para impresoras es PCL. Es más ligero pero con menos posibilidades que PostScript.
Contenido
Desarrollo histórico
PostScript Nivel 1
Ofrece soporte para trabajar con objetos vectoriales, con "fuentes de contorno" (un conjunto limitado de descripciones de letras a base de trazados matemáticos), con lineaturas de semitonos profesionales, capacidad de generar puntos de semitonos de distintas formas (línea, cuadrado, círculo, elipse, etc.), capacidad de gestionar hasta 256 tonos de gris distintos en una impresión. Independencia total del dispositivo (lo que permite imprimir aprovechando al máximo la resolución de éste). Portabilidad entre aparatos. Disponibilidad pública del código y de su sintaxis (lo que permite a cualquiera escribir un programa capaz de generar ficheros PostScript) y algunas cosas más.
PostScript Nivel 2
PostScript Nivel 2 fue introducido en el año 1991 incluyendo varias mejoras como:
- gestión de memoria extremadamente mejorada
- mayor velocidad y fiabilidad
- capacidad para realizar la separación del color dentro del RIP (in-RIP separation)
- descompresión de imágenes[2]
- soporte para fuentes asiáticas[3]
- soporte para fuentes compuestas
- mejora de los controladores de impresora
- mejora muy notable (aunque algo tardía) de los algoritmos de tramado de semitonos.
El nivel 2 de PostScript todavía no ha sido adoptado del todo por muchos fabricantes de software y hardware.
PostScript 3
A partir de esta versión Adobe abandonó la terminología de niveles, pasando a usar la de versiones. Esta versión fue liberada a finales de 1997. Las principales mejoras que introdujo esta nueva versión son:
- uso de 12 bits para describir las lineaturas de semitono[4]
- control extremadamente mejorado de las separaciones de color[5]
- soporte del formato PDF desarrollado para el programa Acrobat
- gestión del color mucho más avanzada.
- nuevas características de impresión relacionadas con las posibilidades que ofrece Internet que aún no han sido muy desarrolladas.
Dibujo de figuras en PostScript
En el lenguaje PostScript se usa un sistema de coordenadas cartesianas con origen en la esquina inferior izquierda de la página. La unidad de medida es el punto tipográfico, cuyo valor se define en este caso como la septuagésima segunda parte de una pulgada (1 / 72). En el caso de una hoja de tipo letter (hay otros tamaños disponibles) las dimensiones son de 612 puntos de ancho por 792 de largo.
Un ejemplo de una pila de instrucciones para realizar un dibujo simple con PostScript se detalla a continuación:
newpath
% Inicialización del cursor
100 100 moveto
% Dibujo del rectángulo
300 100 lineto
300 250 lineto
100 250 lineto
100 100 lineto
stroke
- Newpath indica que vamos a dibujar una nueva figura.
- Moveto sitúa el cursor para comenzar a dibujar la figura. En este caso dichas coordenadas son 100, 100.
- Los distintos lineto dibujan las líneas de la figura (en este caso todas son líneas rectas).
- Finalmente, el comando stroke indica la realización del dibujo al interprete.
Obviamente, también existen comandos para dibujar líneas curvas. Por ejemplo,
x y r a b arc
donde:
- x, y, son las coordenadas horizontal y vertical del centro del arco circular.
- r, el radio del arco.
- a y b, el ángulo entre la parte positiva del eje horizontal y los rayos centrales que pasan a través del punto inicial y final del arco.
Herramientas de escritura en PostScript
PostScript tiene varias fuentes que se usan como fuentes estándares para autoedición. Tiene también herramientas de creación de fuentes a las que se puede acceder definiendo pilas de diccionario donde las fuentes están disponibles. El siguiente programa en PostScript puede ser un ejemplo.
/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
Índice de operadores
A continuación se detalla un listado que recoge el uso de los operadores más frecuentes en las descripciones 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
Referencias
- ↑ Antes de que se desarrollara Postscript se creía que las tipografías de mapa de bits mejoradas manualmente eran más adecuadas para esta tarea.
- ↑ Por ejemplo, las imágenes en formato JPEG pueden ser renderizadas por un programa PostScript.
- ↑ Las fuentes asiáticas necesitan, para su correcta descripción, de una mayor cantidad de bytes que las europeas
- ↑ Esta característica permite superar la barrera de 256 tonos y llegar hasta un degradado que contempla 4.096 tonos de un mismo color.
- ↑ El control mejorado permite realizar sin problemas separaciones de color que superen la cuatricromía convencional (hexacromía, duotonos, imágenes multicanal, etc…).
Véase también
- Portable Document Format
- Máquina de pila
- Lenguaje de programación orientado a pila
Enlaces externos
- Descripción de referencia del lenguaje Postscript (en inglés)
- Lenguaje PostScript en LinuxFocus I, II y III
Categorías: Lenguajes de descripción | Lenguajes interpretados | Lenguajes de programación orientados a pila | Gráficos vectoriales | Formatos de archivos informáticos | Impresión
Wikimedia foundation. 2010.