Ir al contenido

PGD | Conjunto básico de operadores PostScript

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úmero1nú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