¿Qué es PostScript?
PostScript es un lenguaje de descripción de páginas (PDL) desarrollado por Adobe Systems e introducido en 1984. Fue la tecnología que impulsó la revolución de la autoedición en los años 80, permitiendo la composición tipográfica de alta calidad y la salida gráfica en impresoras láser. A diferencia de los formatos raster (JPEG, PNG), PostScript describe las páginas como programas matemáticos: instrucciones que el intérprete de una impresora ejecuta para renderizar texto y gráficos vectoriales a la resolución que soporte el dispositivo de salida.
Los archivos PostScript usan la extensión .ps para documentos de múltiples páginas y .eps (PostScript encapsulado) para gráficos de una sola página destinados a incrustarse en otros documentos. Los flujos de trabajo digitales modernos han reemplazado en gran medida PostScript por PDF — que es en sí mismo un descendiente directo de PostScript — pero los archivos PS/EPS siguen siendo comunes en la impresión profesional, la publicación científica y los entornos heredados de preimpresión.
PostScript como Lenguaje de Programación
La característica más distintiva de PostScript es que es un lenguaje de programación completo Turing-completo, no solo un formato de marcado descriptivo. Usa un modelo de ejecución basado en pila con notación polaca inversa (RPN): los operandos se apilan en la pila, y los operadores los extraen y empujan los resultados.
Hola Mundo en PostScript
%!PS
% Un programa PostScript mínimo
/Helvetica findfont 24 scalefont setfont
72 720 moveto
(¡Hola, PostScript!) show
showpage
Línea por línea:
%!PS— El comentario mágico de PostScript que identifica el archivo% texto— Comentario (todo lo que sigue a%en una línea)/Helvetica findfont— Empuja el diccionario de la fuente Helvetica a la pila24 scalefont— Escala a 24 puntossetfont— Establece como fuente actual72 720 moveto— Mueve el punto actual a x=72, y=720 (en puntos; 72 puntos = 1 pulgada desde abajo a la izquierda)(¡Hola, PostScript!) show— Renderiza la cadena en el punto actualshowpage— Envía la página actual al dispositivo de salida
Dibujar Gráficos Vectoriales
%!PS
% Dibujar un rectángulo azul con una diagonal roja
newpath
100 100 moveto
300 100 lineto
300 300 lineto
100 300 lineto
closepath
0 0 1 setrgbcolor
fill
newpath
100 100 moveto
300 300 lineto
1 0 0 setrgbcolor
2 setlinewidth
stroke
showpage
EPS: PostScript Encapsulado
EPS es una variante restringida de PostScript diseñada para incrustar gráficos en otros documentos (similar a cómo se incrusta un SVG en HTML). Un archivo EPS:
- Debe contener un comentario
%%BoundingBoxque defina las dimensiones del gráfico - Debe producir exactamente una página de salida
- No debe llamar a
showpagedirectamente - No debe alterar el estado global (fuentes, grosor de línea, color) sin restaurarlo
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 200 200
%%Title: Logo
newpath
100 100 80 0 360 arc
0.2 0.4 0.8 setrgbcolor
fill
%%EOF
Comentarios DSC: Convenciones de Estructuración de Documentos
Los archivos PostScript profesionales incluyen comentarios DSC — líneas de comentarios estructuradas que comienzan con %% y proporcionan metadatos e indicaciones de estructura para los spoolers de impresión y los previsualizadores.
%!PS-Adobe-3.0
%%Title: Portada del Informe Anual
%%Creator: Adobe InDesign 2024
%%CreationDate: Mon Apr 15 09:30:00 2024
%%BoundingBox: 0 0 612 792
%%Pages: 1
%%EndComments
Convertir PostScript y EPS
Usando Ghostscript
Ghostscript es el intérprete de PostScript y PDF de código abierto y la herramienta principal para la conversión de PS/EPS. Está disponible en todas las plataformas.
# Instalar en Debian/Ubuntu
sudo apt install ghostscript
# PS a PDF
gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=salida.pdf entrada.ps
# PS a PNG (150 dpi)
gs -dBATCH -dNOPAUSE -sDEVICE=png16m -r150 -sOutputFile=pagina%03d.png entrada.ps
# EPS a PNG con recorte de caja delimitadora exacta
gs -dBATCH -dNOPAUSE -dEPSCrop -sDEVICE=png16m -r300 \
-sOutputFile=logo.png logo.eps
Indicadores clave de Ghostscript:
-dBATCH— Salir después de procesar-dNOPAUSE— No pausar entre páginas-dEPSCrop— Recortar la salida a la BoundingBox del EPS-r150— Resolución en DPI
Usando ps2pdf (acceso directo de Ghostscript)
# Conversión directa
ps2pdf entrada.ps salida.pdf
# EPS a PDF preservando la caja delimitadora
epstopdf logo.eps
Usando Python con Ghostscript
import subprocess, shutil
def ps_a_pdf(ruta_entrada: str, ruta_salida: str, dpi: int = 150) -> bool:
"""Convierte PostScript o EPS a PDF usando Ghostscript."""
gs = shutil.which('gs') or shutil.which('gswin64c')
if not gs:
raise RuntimeError("Ghostscript no encontrado.")
cmd = [
gs, '-dBATCH', '-dNOPAUSE', '-dQUIET',
'-sDEVICE=pdfwrite',
f'-r{dpi}',
f'-sOutputFile={ruta_salida}',
ruta_entrada,
]
return subprocess.run(cmd).returncode == 0
def eps_a_png(ruta_entrada: str, ruta_salida: str, dpi: int = 300) -> bool:
"""Convierte EPS a PNG usando Ghostscript con recorte de caja delimitadora."""
gs = shutil.which('gs') or shutil.which('gswin64c')
cmd = [
gs, '-dBATCH', '-dNOPAUSE', '-dQUIET',
'-dEPSCrop', '-sDEVICE=png16m',
f'-r{dpi}',
f'-sOutputFile={ruta_salida}',
ruta_entrada,
]
return subprocess.run(cmd).returncode == 0
ps_a_pdf('informe.ps', 'informe.pdf', dpi=300)
eps_a_png('logo.eps', 'logo.png', dpi=300)
Usando Inkscape para EPS a SVG
# Conversión EPS a SVG con Inkscape en línea de comandos
inkscape --export-type=svg --export-filename=salida.svg entrada.eps
# EPS a PNG con Inkscape
inkscape --export-type=png --export-dpi=300 --export-filename=salida.png entrada.eps
PostScript en Flujos de Trabajo Modernos
Impresión: Muchas impresoras empresariales siguen hablando PostScript de forma nativa. Enviar un archivo .ps directamente a una impresora PostScript omite el paso de rasterización en el host, produciendo a menudo mejor calidad de salida.
Publicación científica: LaTeX produce salida PostScript mediante dvips y PDF mediante pdflatex. Muchas revistas de matemáticas, física e informática aún aceptan o prefieren figuras EPS porque escalan sin pérdida a cualquier tamaño.
Preimpresión: PostScript sigue siendo una tecnología fundacional en los RIPs (Raster Image Processors) usados por las impresoras offset.
| Tarea | Herramienta Recomendada |
|---|---|
| Ver PS/EPS en Windows | Ghostscript + GSView |
| Ver PS/EPS en macOS | Preview (integrado, vía Ghostscript) |
| Ver PS/EPS en Linux | Evince, Okular o gv |
| Convertir PS a PDF | ps2pdf o gs -sDEVICE=pdfwrite |
| Convertir EPS a PNG | gs -dEPSCrop -sDEVICE=png16m |
| Editar vectores EPS | Inkscape o Adobe Illustrator |
Conversiones relacionadas
Conversiones frecuentes del catálogo: