PostScript y EPS: Los Lenguajes de la Producción de Impresión Profesional
PostScript y EPS (Encapsulated PostScript) son lenguajes de descripción de páginas que definieron la impresión profesional durante tres décadas. Antes de que PDF se volviera dominante, PostScript era el lenguaje universal de la autoedición y las impresoras láser. EPS sigue siendo relevante como el formato vectorial de elección para importar ilustraciones en flujos de trabajo de producción de impresión.
¿Qué Es PostScript?
PostScript fue desarrollado por John Warnock y Chuck Geschke en Adobe Systems (1982–1984) como un lenguaje de descripción de páginas independiente del dispositivo. A diferencia de los formatos de mapa de bits que especifican píxeles individuales, PostScript describe páginas como programas en un lenguaje interpretado basado en pila.
Innovaciones clave de PostScript:
- Independencia de resolución: Las curvas, el texto y los rellenos se describen matemáticamente; la impresora los renderiza a su resolución nativa
- Curvas Bézier: La adopción de curvas Bézier por Adobe en PostScript definió el modelo de gráficos vectoriales usado en todas las herramientas de diseño actuales
- Fuentes como programas: Las fuentes PostScript Type 1 son programas que describen formas de letras
- Completitud de Turing: PostScript es un lenguaje de programación completo
Niveles de PostScript
| Versión | Año | Características clave |
|---|---|---|
| Level 1 | 1984 | Modelo de imagen central, fuentes Type 1 |
| Level 2 | 1990 | Gestión de color (CIE), CMYK, comentarios DSC |
| Level 3 | 1997 | Sombreado suave, transparencia, mejor integración PDF |
Estructura de Fichero PostScript
%!PS-Adobe-3.0
%%Title: Mi Documento
%%Creator: Adobe Illustrator 28.0
%%BoundingBox: 0 0 612 792
%%Pages: 1
%%EndComments
%%Page: 1 1
% Contenido de la página
%%EndPage
%%Trailer
%%EOF
Comandos de Dibujo PostScript
%!PS-Adobe-3.0
%%BoundingBox: 0 0 400 400
% Establecer color (RGB)
1 0 0 setrgbcolor
% Dibujar un rectángulo relleno
50 50 300 200 rectfill
% Dibujar una trayectoria (curva Bézier)
0 0 1 setrgbcolor
2 setlinewidth
newpath
100 300 moveto
200 400 300 400 400 300 curveto
stroke
% Texto
/Helvetica findfont 24 scalefont setfont
50 20 moveto
(Hola, PostScript!) show
showpage
%%EOF
¿Qué Es EPS?
EPS (Encapsulated PostScript) es un subconjunto restringido de PostScript diseñado para incrustar gráficos como objetos dentro de documentos más grandes. Un fichero EPS:
- Debe contener exactamente una página de contenido
- Debe tener un comentario %%BoundingBox especificando la extensión exacta del arte
- No debe ejecutar
showpage - Puede colocarse dentro de otros documentos PostScript o aplicaciones de autoedición
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 10 10 500 400
%%EndComments
% Comandos de dibujo aquí
% SIN showpage
Conversión de EPS y PostScript
# EPS/PS a PDF usando Ghostscript
gs -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-sOutputFile=salida.pdf \
entrada.eps
# EPS a PNG de alta resolución (300 DPI)
gs -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pngalpha \
-r300 \
-dGraphicsAlphaBits=4 \
-sOutputFile=salida.png \
entrada.eps
# Convertir PS a PDF manteniendo colores CMYK
gs -dNOPAUSE -dBATCH -dSAFER \
-sDEVICE=pdfwrite \
-dProcessColorModel=/DeviceCMYK \
-dColorConversionStrategy=/LeaveColorUnchanged \
-sOutputFile=salida_cmyk.pdf \
entrada.ps
# Conversión por lotes de carpeta EPS a PDF
for f in *.eps; do
gs -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite \
-sOutputFile="${f%.eps}.pdf" "$f"
done
Python: Procesamiento de EPS
from PIL import Image
import subprocess
def eps_a_png(ruta_eps, ruta_salida, dpi=300, fondo='white'):
"""Convertir EPS a PNG vía Ghostscript."""
cmd = [
'gs', '-dNOPAUSE', '-dBATCH', '-dSAFER',
'-sDEVICE=pngalpha', f'-r{dpi}',
'-dGraphicsAlphaBits=4', '-dTextAlphaBits=4',
f'-sOutputFile={ruta_salida}', ruta_eps
]
subprocess.run(cmd, check=True, capture_output=True)
with Image.open(ruta_salida) as img:
if img.mode == 'RGBA' and fondo != 'transparent':
bg = Image.new('RGB', img.size, fondo)
bg.paste(img, mask=img.split()[3])
bg.save(ruta_salida.replace('.png', '_plano.png'), 'PNG')
def extraer_boundingbox_eps(ruta_eps):
"""Leer el %%BoundingBox de un fichero EPS."""
with open(ruta_eps, 'rb') as f:
for linea in f:
linea = linea.decode('latin-1', errors='ignore').strip()
if linea.startswith('%%BoundingBox:'):
partes = linea.split(':')[1].split()
return tuple(float(p) for p in partes)
return None
bb = extraer_boundingbox_eps('logo.eps')
if bb:
ancho = bb[2] - bb[0]
alto = bb[3] - bb[1]
print(f"Tamaño: {ancho:.1f} × {alto:.1f} puntos")
print(f"Tamaño: {ancho/72:.2f} × {alto/72:.2f} pulgadas a 72 pt/in")
Comparativa EPS vs AI vs SVG vs PDF
| Característica | EPS | AI (Illustrator) | SVG | |
|---|---|---|---|---|
| Editabilidad | Limitada | Completa (propietario) | Completa | Limitada |
| Transparencia | Solo Level 3 | Sí | Sí | Sí |
| Capas | No | Sí | Grupos CSS | Sí |
| Color CMYK | Sí | Sí | No (solo sRGB) | Sí |
| Producción de impresión | Sólida | Sólida (vía PDF) | Limitada | Sólida |
| Uso web | No | No | Nativo | Vía incrustación |
| Formato abierto | Sí | No | Sí | Sí |
| Mejor para | Impresión legacy, logos | Máster de edición | Iconos web | Entrega universal |
Cuándo EPS Sigue Siendo Relevante
A pesar de la dominancia de PDF, EPS sigue siendo necesario en contextos específicos:
- Flujos de trabajo de impresión legacy: Los RIP más antiguos esperan EPS para la colocación de logotipos con colores directos
- Corte de vinilo / plotters: Muchos programas de fabricación de letreros aceptan EPS pero no PDF
- Bordado digital: Arte vectorial EPS como entrada para software de digitalización
- Sitios de ilustración de stock: Muchos sitios de stock (Getty Images, Shutterstock) distribuyen activos vectoriales como EPS
Resumen
PostScript definió la revolución de la autoedición, y EPS transportó su modelo de gráficos vectoriales a la era de la impresión digital. Aunque PDF ha reemplazado a PostScript como formato de entrega principal, entender los operadores PostScript, la estructura DSC y el mecanismo de BoundingBox de EPS sigue siendo esencial para cualquiera que trabaje en producción de impresión o procese ficheros de arte legacy. Ghostscript sigue siendo la herramienta de código abierto indispensable para el procesamiento de PostScript/EPS.
Conversiones relacionadas
Conversiones frecuentes del catálogo: