Última Actualización: 20 de febrero, 2025

Título - PostScript: Una Explicación Clara

¿Qué es PostScript?

PostScript (PS) es un lenguaje de descripción de página (PDL) desarrollado por Adobe Systems en 1982. Se utiliza principalmente en publicación de escritorio, impresión y diseño gráfico para describir cómo deben representarse el texto y las imágenes en una página.

PostScript: Características y Aplicaciones

Explicación de PostScript (PS)

PostScript (PS) es tanto un lenguaje de descripción de página (PDL) como un lenguaje de programación que es dinámicamente tipado y basado en pila. Esto es lo que significa:

1. ¿Qué es un Lenguaje de Descripción de Página (PDL)?

Un lenguaje de descripción de página define cómo aparecen los gráficos y el texto en una página impresa o en una pantalla. PostScript se utiliza en impresoras, software de publicación y composición digital para renderizar con precisión fuentes, imágenes y diseños.

2. ¿Qué es un Lenguaje de Programación Basado en Pila?

PostScript utiliza una pila para procesar comandos, lo que significa que sigue un enfoque de Último en Entrar, Primero en Salir (LIFO). Por ejemplo, para sumar dos números en PostScript, los colocas en la pila y luego llamas a un operador para procesarlos:

10 20 add

Esto coloca 10 y 20 en la pila, luego el comando add los saca y coloca el resultado (30) de nuevo en la pila.

3. Dinámicamente Tipado

PostScript no requiere definiciones de tipo explícitas. Las variables pueden contener diferentes tipos (números, cadenas, arreglos, etc.) sin tipos predefinidos.

4. Usos de PostScript

PostScript se utiliza principalmente para publicación de escritorio y publicación electrónica, lo que significa que ayuda a crear e imprimir documentos de alta calidad con control preciso sobre las fuentes, el diseño y los gráficos.

5. Lenguaje Completo de Turing

Al ser completo de Turing, PostScript puede, en teoría, realizar cualquier cálculo dado suficiente memoria y tiempo. Esto significa que puede utilizarse para tareas de programación general, no solo para impresión.

6. Historia y Desarrollo

  • Desarrollado por Adobe Systems entre 1982 y 1984.
  • Creado por John Warnock, Charles Geschke, Doug Brotz, Ed Taft, y Bill Paxton.
  • La última versión, PostScript 3, fue lanzada en 1997 y añadió mejor rendimiento, gestión de color y compresión de imágenes.

Historia de PostScript

Los orígenes de PostScript se remontan a 1976, cuando John Gaffney en Evans & Sutherland desarrolló conceptos para un lenguaje de descripción de página mientras trabajaba en una base de datos gráfica. Al mismo tiempo, Xerox PARC estaba desarrollando impresoras láser y necesitaba un estándar para definir imágenes de página. Primero crearon el formato Press, que luego evolucionó a Interpress en 1978, desarrollado por John Gaffney y Martin Newell.

La Evolución e Impacto de PostScript

En 1982, John Warnock y Chuck Geschke dejaron Xerox PARC y co-fundaron Adobe Systems, donde ellos, junto con Doug Brotz, Ed Taft, y Bill Paxton, desarrollaron PostScript como una alternativa más sencilla a Interpress. Se lanzó comercialmente en 1984.

El Papel de Apple en el Éxito de PostScript

En 1983, Steve Jobs vio el potencial de PostScript para el Macintosh y lo licenció de Adobe por $1.5 millones, más $2.5 millones por el 20% de las acciones de Adobe. También intentó, sin éxito, comprar Adobe. Apple y Adobe trabajaron juntos para optimizar PostScript para la impresora LaserWriter de Apple—lanzada en 1985—que jugó un papel crucial en la revolución de la publicación de escritorio.

El avance de Adobe en renderización y ajuste de fuentes hizo que PostScript fuera viable incluso en las impresoras láser Canon de baja resolución (300 dpi). Adobe no patentó esta tecnología para mantenerla como un secreto comercial.

Decline y Legado de PostScript

Durante las décadas de 1980 y 1990, PostScript se utilizó ampliamente en impresoras láser, pero sus altos requisitos de procesamiento y memoria lo hicieron caro. A medida que las impresoras se abarataron y las computadoras se volvieron más potentes, las soluciones basadas en software reemplazaron el procesamiento de hardware PostScript. Para 2001, la mayoría de las impresoras de gama baja dejaron de soportar PostScript en favor de la tecnología de inyección de tinta y renderización de software.

Sin embargo, PostScript sigue siendo dominante en impresoras profesionales de alta gama, donde descarga el renderizado de la computadora a la impresora, mejorando el rendimiento. Además, PDF (Formato de Documento Portátil)—un descendiente directo de PostScript—se ha convertido en el estándar para la distribución de documentos electrónicos.

Niveles de PostScript

PostScript ha evolucionado a través de diferentes niveles, cada uno mejorando la funcionalidad, el rendimiento y la eficiencia. Hay tres niveles principales:

Evolución de los Niveles de PostScript

1. Nivel 1 de PostScript (1984)

El PostScript original (Nivel 1, lanzado en 1984) permitió a los usuarios controlar con precisión el diseño de la página con texto, gráficos e imágenes, y se utilizó en las primeras impresoras láser. Sin embargo, estaba limitado a escala de grises, procesaba gráficos complejos lentamente y producía archivos grandes debido a la falta de compresión de imagen.

  • La versión original, lanzada por Adobe en 1984.
  • Proporcionaba descripciones de página independientes del dispositivo para texto, gráficos e imágenes.
  • Permitía un control preciso sobre la tipografía y el diseño.
  • Utilizado en las primeras impresoras PostScript, incluidas la Apple LaserWriter.
  • Limitaciones:
    • No tenía soporte para color (solo escala de grises).
    • Procesamiento lento de gráficos complejos.
    • Sin compresión de imágenes integrada, lo que genera tamaños de archivo grandes.

2. PostScript Nivel 2 (1991)

PostScript Nivel 2 (1991) mejoró el rendimiento, agregó impresión en color, comprimió archivos, mejoró las fuentes y aceleró el procesamiento de gráficos complejos.

  • Mejoró el rendimiento y la eficiencia de la memoria.
  • Añadió soporte para impresión en color (CMYK y colores directos).
  • Introdujo la compresión de datos para reducir los tamaños de archivo.
  • Permite un manejo mejorado de fuentes (tipografías Tipo 1 y Tipo 3).
  • Introdujo patrones, formularios y fuentes compuestas para mejorar el renderizado de texto.
  • Procesamiento más rápido de gráficos complejos en comparación con el Nivel 1.

3. PostScript 3 (1997)

PostScript 3 (1997) fue una actualización importante con renderización más rápida, mejor color, soporte para impresión de muy alta resolución, mejor manejo de fuentes y efectos de gráficos mejorados. Aunque ahora es menos común, todavía se utiliza en algunas impresoras de alta gama.

  • Mejora importante con renderizado más eficiente.
  • Mejora de la gestión del color con perfiles ICC.
  • Mejor soporte para impresión de alta resolución (más de 2400 dpi).
  • Mejor manejo de fuentes, incluyendo soporte para fuentes Multiple Master.
  • Mejores efectos de transparencia y sombreado (mejor renderización de gráficos).
  • Sustituido por flujos de trabajo basados en PDF en la publicación moderna, pero todavía se utiliza en impresoras de alta gama.

PostScript en la Impresión

Antes de PostScript:

  • Las primeras impresoras imprimían solo caracteres de texto, generalmente en ASCII, con glifos fijos (p. ej., teclas de máquina de escribir, bandas de metal o placas ópticas).
  • Las impresoras de matriz de puntos introdujeron fuentes seleccionables y cargas de glifos personalizados, junto con gráficos rasterizados básicos mediante secuencias de escape, pero requerían controladores específicos para cada modelo de impresora.
  • Los gráficos vectoriales eran manejados por trazadores (por ejemplo, basados en HPGL), pero estos eran lentos, costosos y limitados a gráficos.

Impresión con PostScript:

  • Las impresoras láser combinaron las fortalezas de las impresoras de matriz de puntos y los trazadores, permitiendo texto y gráficos de alta calidad en la misma página.
  • PostScript unificó el control de impresión con un lenguaje único, independiente del dispositivo que funcionaba en diferentes impresoras y software.
  • A diferencia de los lenguajes tradicionales de control de impresoras, PostScript es un lenguaje de programación completo, que permite una renderización precisa de documentos.
  • Rasterización en el acto: PostScript define todo (incluyendo texto) usando líneas rectas y curvas de Bézier, permitiendo un escalado, rotación y transformaciones suaves.
  • Los intérpretes de PostScript, llamados Procesadores de Imágenes Rasterizadas (RIPs), convierten instrucciones en puntos necesarios para la salida final.

Manejo de Fuentes en PostScript

El sistema de fuentes de PostScript usa formas gráficas básicas para crear glifos escalables, permitiendo que las fuentes se redimensionen sin perder calidad. Se utiliza el ajuste de fuentes para asegurar que las fuentes se mantengan claras y legibles incluso a tamaños pequeños o bajas resoluciones. Las fuentes PostScript se almacenan en varios formatos “Tipo” especializados, cada uno ofreciendo distintas capacidades.

Evolución de la Fuente PostScript

Sistema de Fuentes PostScript

  • Utiliza primitivas gráficas para definir glifos escalables.
  • El ajuste de fuentes asegura una renderización de alta calidad, incluso a bajas resoluciones.
  • Las fuentes se almacenan en formatos Tipo especializados con diferentes capacidades.

Tipos de Fuentes PostScript

PostScript ofrecía varios tipos de fuentes, cada uno con diferentes capacidades. Los formatos Tipo 1 y Tipo 3 eran ampliamente utilizados para proyectos de diseño gráfico y publicación. Los formatos Tipo 2 y el Formato Compacto de Fuentes (CFF) redujeron los tamaños de archivo y prepararon el camino para OpenType. Las fuentes CID-Keyed admiten grandes conjuntos de caracteres asiáticos y pueden usar estructuras de Tipo 1 o Tipo 2.

  • Fuente de Tipo 1 (T1):

    • Formato de fuente comprimido y cifrado propietario de Adobe.
    • Utilizado para fuentes de alta calidad y con ajuste.
    • Adobe inicialmente licenció la tecnología de Tipo 1 por una tarifa.
  • Fuente de Tipo 3 (T3):

    • Menos compleja y sin ajuste.
    • Para diseños de fuentes especiales y titulaciones.
  • Fuente de Tipo 2 (T2) y Formato Compacto de Fuentes (CFF):

    • Redujeron el tamaño de los archivos de fuentes para ser más eficientes.
    • Se convirtieron en la base para las fuentes OpenType.
  • Fuentes CID-Keyed:

    • Diseñadas para conjuntos de caracteres grandes asiáticos (CJK) con espacios de codificación grandes.
    • Pueden usar estructuras Tipo 1 o Tipo 2.

Fin del Soporte para Tipo 1

  • Adobe oficialmente terminó el soporte para las fuentes de Tipo 1 en enero de 2023 en favor de OpenType.

Formato de Documento Portátil (PDF) y PostScript

PDF vs. PostScript

PDF y PostScript son dos formatos de documento que producen una salida impresa idéntica porque utilizan el mismo sistema gráfico subyacente. La diferencia clave radica en su estructura: PostScript es un lenguaje de programación completo, mientras que PDF es un formato de archivo. Sin embargo, ambos formatos se pueden convertir entre sí.

Entendiendo PostScript y PDF
  • Modelo de Imagen Similar – Tanto PDF como PostScript usan el mismo sistema gráfico, asegurando una salida impresa idéntica.
  • ¿Cuál es la Diferencia?
    • PostScript es un lenguaje de programación completo de Turing capaz de realizar operaciones dinámicas.
    • PDF es un formato de documento con descripciones estáticas de páginas.

El Lenguaje PostScript

PostScript es un lenguaje de programación basado en pila con tipado dinámico, similar a Forth pero con estructuras de datos similares a Lisp. Utiliza Notación Polaca Inversa, lo que requiere una gestión cuidadosa de la memoria. PostScript utiliza arreglos y diccionarios, maneja el tipado en tiempo de ejecución e incluye recolección de basura. Los comentarios comienzan con “%”, y los programas típicamente comienzan con “%!PS”.

  • Notación Polaca Inversa (RPN) – Los operadores actúan sobre una pila, requiriendo una gestión cuidadosa.
  • Gestión de Memoria
    • Utiliza memoria con ámbito.
    • Introdujo recolección de basura en PostScript Nivel 2.
  • Estructuras de Datos
    • Usa arreglos y diccionarios.
    • No hay declaraciones de tipo formal: el tipado se gestiona en tiempo de ejecución.
  • Comentarios y Estructura del Programa
    • % introduce comentarios.
    • Los programas generalmente comienzan con "%!PS" para indicar el formato PostScript.

Cómo se Usa PostScript

  • Principalmente generado por software, no escrito manualmente.
  • Puede ser utilizado como un lenguaje de programación completo para automatización.
  • Interpretado por impresoras (RIPs) o visores en pantalla.

Ejemplo de un Archivo Simple de PostScript

Aquí tienes un ejemplo sencillo de un archivo PostScript (.ps) que imprime “Hola, Mundo” en una página:

%!PS
/Times-Roman findfont 24 scalefont setfont
100 700 moveto
(Hello, World!) show
showpage

Explicación:

  1. %!PS → Identifica el archivo como un documento PostScript.
  2. /Times-Roman findfont 24 scalefont setfont → Selecciona la fuente Times-Roman de tamaño 24.
  3. 100 700 moveto → Mueve el cursor a las coordenadas (100, 700) en la página.
  4. (Hello, World!) show → Imprime “Hello, World!” en la posición especificada.
  5. showpage → Indica a la impresora que imprima la página.

Puedes guardar esto como hello.ps y abrirlo con un visor de PostScript (por ejemplo, GSview, Ghostscript) o enviarlo a una impresora PostScript.

Hello.ps Después de Renderizado

Título - Hello.ps Después de Renderizar

Lista de Software para Renderizar PostScript

Visores de PostScript & Intérpretes

  1. Ghostscript (Código abierto) – Intérprete popular para PostScript y PDF.
  2. GSview – Interfaz gráfica para Ghostscript.
  3. MuPDF – Visor ligero que soporta PostScript y PDFs.
  4. Xpdf – Visor de PDF de código abierto con algo de soporte para PostScript.
  5. Evince – Visor de documentos GNOME que puede manejar archivos PostScript.
  6. Okular – Visor de documentos de KDE con soporte para PostScript.
  7. Apple Preview – Visor integrado en macOS que soporta PostScript y PDF.

Impresoras PostScript & Rasterizadores

  1. Adobe Acrobat Distiller – Convierte PostScript a PDFs de alta calidad.
  2. CUPS (Common Unix Printing System) – Maneja la impresión PostScript en Unix/Linux.
  3. PPR (Liberción de Producción de Impresora) – Administrador de colas y renderizador de PostScript.

Gráficos Vectoriales & Software DTP

  1. Adobe Illustrator – Puede abrir y editar archivos PostScript.
  2. CorelDRAW – Soporta PostScript para gráficos vectoriales.
  3. Scribus – Software de publicación de escritorio de código abierto con soporte PostScript.
  4. Inkscape – Puede importar/exportar PostScript (mediante Ghostscript).

Herramientas de Línea de Comandos & Conversión

  1. ps2pdf (parte de Ghostscript) – Convierte PostScript a PDF.
  2. pstopdf (herramienta de línea de comandos de macOS) – Convierte PostScript a PDF.
  3. ImageMagick – Puede renderizar archivos PostScript en imágenes.