Acerca de la nomenclatura
Se presentan aquí una lista de operadores PostScript básicos, agrupados en categorías, siguiendo la forma en que se presentan en el Capítulo 8 del PostScript Reference Manual (PDF: 7.5M). La notación empleada para entender la funcionalidad de cada operador es la siguiente:
d1 d2 . . . dN | operador | r1 r2 . . . rM | Descripción del operador |
indicando que este operador exige N datos previos d1, d2, …, dN presentes en la pila (N puede ser 0, es decir, no requerir datos) y deja, luego de la ejecución, M resultados r1, r2, …, rM en la pila (donde M puede también ser 0). En el caso de que N y/o M sean cero, se escribe un guión (—) en su lugar. Veamos unos ejemplos:
numero1 numero2 | add | suma | Suma de dos números |
x y | moveto | – | Establece el punto actual |
– | currentpoint | x y | Devuelve el punto actual |
Con estos lineamientos, se presentan un conjunto básico de operadores PostScript. Téngase en cuenta que la lista completa puede obtenerse del PostScript Reference Manual ya citado.
El libro azul
A fin de facilitar la implementación, Adobe tiene un documento denominado PostScript Language – Tutorial and Cookbook (PDF: 867k), más conocido como el Blue Book, que contiene una descripción más detallada y ejemplos de uso, sin la aridez del Reference. Altamente recomendable.
Operadores matemáticos
número1 número2 | add | suma | Suma número1 + número2 |
número1 número2 | sub | resta | Resta número1 – número2 |
número1 número2 | mul | multiplicación | Multiplica número1 x número2 |
número1 número2 | div | suma | Divide número1 / número2 |
número | neg | -número | Opuesto de número |
Operadores para creación de paths
Coordenadas y dimensiones expresadas en puntos (1 punto = 1/72 pulgadas)
– | newpath | – | Inicia un nuevo path |
x y | moveto | – | Establece el punto actual en (x, y) |
dx dy | rmoveto | – | Establece el punto actual con respecto al anterior |
x y | lineto | – | Agrega una línea desde el punto anterior hasta (x, y) |
dx dy | rlineto | – | Agrega una línea desde el punto anterior hasta el mismo punto desplazado en (dx, dy) |
x y r ang1 ang2 | arc | – | Agrega un arco centrado en (x, y), de radio r, desde el ángulo ang1 hasta el ángulo ang2 al path actual en sentido antihorario |
x y r ang1 ang2 | arcn | – | Agrega un arco centrado en (x, y), de radio r, desde el ángulo ang1 hasta el ángulo ang2 al path actual en sentido horario |
x1 y1 x2 y2 x3 y3 | curveto | – | Agrega una curva de Bezier al path actual |
texto bool | charpath | – | Agrega el contorno de texto al path actual |
– | closepath | – | Cierra el path abierto desde el último newpath |
Operadores para trazado o pintado
Coordenadas y dimensiones expresadas en puntos
– | fill | – | Pinta el path actual |
– | stroke | – | Traza el path actual |
x y ancho alto | rectfill | – | Pinta un rectángulo |
x y ancho alto | rectstroke | – | Traza un rectángulo |
Operadores para control gráfico
Coordenadas y dimensiones expresadas en puntos
Nivel de color expresado en una fracción de 0 a 1
número | setlinewidth | – | Ajusta el espesor de la línea |
gris | setgray | – | Establece el color como un nivel de gris |
rojo verde azul | setrgbcolor | – | Establece el color en RGB |
c m y k | setcmykcolor | – | Establece el color en CMYK |
Operadores para manejo de fuentes y texto
nombre | findfont | fuente | Busca y carga la fuente con el nombre especificado |
fuente escala | scalefont | fuente | Aplica a la fuente el tamaño escala |
fuente | setfont | – | Establece la fuente actual |
texto | show | – | Dibuja texto utilizando la fuente actual |
Operadores para control de la pila
dato | dup | dato dato | Duplica el último elemento de la pila |
dato | pop | – | Elimina el último elemento la pila |
dato1 dato2 | exch | dato2 dato1 | Intercambia los dos últimos elementos de la pila |
n p | roll | – | Rota los últimos n elementos de la pila, p posiciones hacia adelante |
Operadores para control del estado gráfico
– | gsave | – | Guarda una copia del estado gráfico |
– | grestore | – | Restablece el estado gráfico al último gsave |
Operadores para control de la ejecución
n {proc} | repeat | – | Repite el procedimiento proc indicado n veces |
inicio incremento limite {proc} | for | – | Coloca sucesivamente un número en la pila desde inicio, sumándole incremento en cada iteración, hasta que se supere límite, llamando en cada caso al procedimiento proc con ese número en la pila |
valorlogico {proc} | if | – | Ejecuta el procedimiento proc sólo si valorlogico es verdadero |
valorlogico {proc1} {proc2} | ifelse | – | Ejecuta el procedimiento proc1 si valorlogico es verdadero, de lo contrario ejecuta el procedimiento proc2 |
Operadores para control del dispositivo
opciones | setpagedevice | – | Establece opciones para el dispositivo de salida (tamaño de página, por ejemplo) |
– | showpage | – | Envía la página al dispositivo de salida |
– | copypage | – | Envía la página al dispositivo de salida sin borrar el estado gráfico |