Filtros de impresión con Ghostscript
A. Gustavo González
[email protected]
26 de Septiembre 1999
En este artículo se introducen los fundamentos para componer filtros de impresión mediante el programa
Ghostscript.
Índice General
1
¿Por qué este documento?
2 Lo primero es lo primero: ¿Por qué necesito Ghostscript para imprimir en linux?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
3 La orden gs y sus opciones
3.1 Entradas a gs
.
.
.
.
.
3.2 Dispositivo de salida .
.
.
.
.
.
.
3.3 Resolución de la impresión .
3.4 Salida a un fichero .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.5 Escogiendo el tamaño de papel .
. . .
3.6 Otras opciones a considerar .
.
.
.
.
.
. .
.
.
.
.
.
.
.
.
.
.
. .
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
. .
. .
.
4
¿Qué es un filtro de impresión y cómo se construye?
5 Filtros mágicos
5.1 Magicfilter .
5.2 Apsfilter .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
. .
.
.
.
.
.
5.3 Filtros de impresión Red Hat
.
.
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
.
.
6 El controlador uniprint
7
Impresión remota
8 Créditos
9 Anexo: El INSFLUG
1
¿Por qué este documento?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
. .
. . . . .
.
.
.
.
.
.
.
.
. .
. . . .
. .
. .
.
.
.
.
.
. .
. .
. . .
1
2
2
2
2
3
3
4
4
4
6
6
7
9
9
10
11
11
Hace tiempo leí un mini-Cómo sobre filtros de impresión maquetado por nuestro admirado compañero Ismael Olea
[email protected], extraído de la red Fidonet, y me dejó con la miel en los labios, pues era muy corto. En este
documento, cuyo carácter es fundamentalmente didáctico – pensado para usuarios noveles de linux que ya conocen el
funcionamiento de la impresión por spooling – intento presentar de modo breve y resumido qué es Ghostcript y cómo
usarlo para elaborar filtros de impresión.
2. Lo primero es lo primero: ¿Por qué necesito Ghostscript para imprimir en linux?
2
2 Lo primero es lo primero: ¿Por qué necesito Ghostscript para imprimir
en linux?
Pues porque el formato estándar de los ficheros imprimibles en UNIX es PostScript (PS), pero no todo el mundo
tiene una impresora PS. Ghostscript, escrito por Peter Deutsch, fundador de Aladdin Enterprises, es el intérprete
por excelencia de documentos en formato PS (y también PDF). Ghostscript permite presentar datos PS y PDF en la
pantalla y además traducirlos de manera que puedan ser impresos en una impresora con capacidad gráfica mediante el
uso del controlador de dicha impresora. Como afortunadamente, además, disponemos de herramientas para convertir
otros formatos, tanto de documentos (como TEX, HTML, etc.) como de figuras (como GIF, TIFF, etc.) en PS, basta
con diseñar filtros de impresión combinando el conversor de formato con el programa Ghostscript mediante tuberías
(pipes, |).
Aladdin Enterprises mantiene las nuevas versiones de Ghostscript hasta que alcanzan una cierta edad, y luego las
libera a la Fundación de Software libre (FSF, Free Software Foundation) para que se distribuya como GNU Ghostscript.
Estas versiones son las que se distribuyen libres de cargo en las distribuciones de Linux. La versión Ghostscript
5.1 es de las últimas liberadas y funciona de perlas para la creación de filtros de impresión.
3 La orden gs y sus opciones
El programa Ghostcript se ejecuta a través de la orden gs con diferentes opciones
3.1 Entradas a gs
Además de las opciones a considerar, gs actúa sobre un fichero de entrada en formato PS:
gs [opciones] fichero.ps
Donde fichero.ps es el fichero de entrada, pero uno también puede conectar una entrada por tubería (en el sentido
de to pipe) en Ghostscript utilizando el nombre de fichero especial -, como por ejemplo
{programa convertidor a formato PS} | gs [opciones] -
La presencia del argumento - al final de la línea de órdenes indica a Ghostscript que lea la entrada estándar (STDIN)
desde un fichero o tubería en lugar de desde el teclado. Es la opción de recibo cuando se diseña un filtro de entrada
para imprimir en PS.
El fichero - presenta las siguientes características:
• Cuando Ghostscript termina de leer la tubería, deja de estar en modo interactivo. Por ello, - es útil
únicamente como último argumento de la línea de órdenes.
• - no puede usarse para conectar con una entrada PDF en tubería.
3.2 Dispositivo de salida
Ghostscript dispone de una serie de dispositivos controladores para diversos tipos de impresora. Si invocamos gs -h,
nos aparecerá gran cantidad de información sobre nuestra versión instalada de Ghostscript, entre la que encontraremos
los dispositivos controladores. He aquí el listado correspondiente a dicha orden:
3. La orden gs y sus opciones
3
GNU Ghostscript 5.10 (1998-12-17)
Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA.
Usage: gs [switches] [file1.ps file2.ps ...]
Most frequently used switches: (you can use # in place of =)
-dNOPAUSE
no pause after page
-g<width>x<height> page size in pixels
-sDEVICE=<devname> select device
-sOutputFile=<file> select output file: - for stdout, |command for pipe,
| -q
| -r<res> pixels/inch resolution
| -dBATCH
All rights reserved.
‘quiet’, fewer messages
exit after last file
Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PDF
Available devices:
embed %d or %ld for page #
x11 x11alpha x11cmyk x11gray2 x11mono lvga256 vgalib t4693d2 t4693d4
t4693d8 tek4696 appledmp ccr lp2563 lbp8 lips3 m8510 necp6 cp50 oce9050
oki182 okiibm r4081 sj48 xes ln03 la50 la70 la75 la75plus sxlcrt deskjet
djet500 laserjet ljetplus ljet2p ljet3 ljet4 declj250 paintjet pjetxl
cdeskjet cdjcolor cdjmono cdj550 cdj500 djet500c dnj650c pj pjxl pjxl300
hpdj uniprint epson eps9mid eps9high epsonc lq850 lp8000 st800 stcolor
ap3250 ibmpro bj10e bj200 bjc600 bjc800 ljet3d lj4dith lj5mono lj5gray
lj250 faxg3 faxg32d faxg4 dfaxhigh dfaxlow pcxmono pcxgray pcx16 pcx256
pcx24b pcxcmyk pbm pbmraw pgm pgmraw pgnm pgnmraw pnm pnmraw ppm ppmraw
pkm pkmraw tiffcrle tiffg3 tiffg32d tiffg4 tifflzw tiffpack cif bmpmono
bmp16 bmp256 bmp16m tiff12nc tiff24nc psmono psgray bit bitrgb bitcmyk
sgirgb pngmono pnggray png16 png256 png16m cgmmono cgm8 cgm24 jpeg
jpeggray miff24 mgrmono mgrgray2 mgrgray4 mgrgray8 mgr4 mgr8 pdfwrite
pswrite epswrite pxlmono pxlcolor nullpage
Search path:
. : /usr/lib/ghostscript/common : /usr/lib/ghostscript/5.10 :
/usr/lib/ghostscript/fonts
For more information, see /usr/doc/gs/use.txt.
Report bugs to
[email protected]; use the form in bug-form.txt.
Así, si disponemos de una impresora HP Deskjet 550C y vamos a imprimir el fichero.ps, haremos:
gs -sDEVICE=cdj550 fichero.ps
3.3 Resolución de la impresión
Algunas impresoras pueden imprimir a diferentes resoluciones (siendo la menor la que se toma por defecto). Para
seleccionar la resolución horizontal (num1) y vertical (num2) en pixels por pulgada, se utiliza la opción
-rnum1xnum2
-rnum es equivalente a -rnumxnum (cuando num1=num2=num)
3.4 Salida a un fichero
Si seleccionamos una impresora como dispositivo de salida, Ghostscript también permite controlar a dónde envía el
dispositivo su salida. En el sistema DOS, la salida se dirige normalmente a a la impresora (PRN); en UNIX, general-
mente se envía a un fichero temporal para su impresión en cola. Para dirigir la salida a un fichero (fichero.out),
se utiliza la opción
-sOutputFile=fichero.out
4. ¿Qué es un filtro de impresión y cómo se construye?
4
Pero en UNIX, también podemos usar esta opción para enviar la salida a una conexión por tubería, por ejemplo al
servidor de impresión, mediante la orden lpr
-sOutputFile=\|lpr
o enviarlo a la salida estándar (sOutputFile=-) para que, por ejemplo, el demonio lpd tome esos datos de la salida
estándar y los entregue a la impresora. Esta es una de las opciones usadas en la construcción de filtros de impresión.
gs [opciones] -sOutputFile=- -q |...
En este caso es necesario emplear la opción -q (quiet) que evita que el programa Ghostscript escriba mensajes en la
salida estándar y se mezclen con la corriente de salida del dispositivo de impresión.
3.5 Escogiendo el tamaño de papel
Ghostscript se distribuye configurado para usar papel US letter, que es el tamaño de página por defecto, pero
existen otros tamaños que se configuran empleando la instrucción -sPAPERSIZE=opción, como por ejemplo
-sPAPERSIZE=a4
-sPAPERSIZE=legal
3.6 Otras opciones a considerar
En el caso de construcción de filtros de entrada, hay otras opciones interesantes:
• -dSAFER: Evita que actúen los operadores de borrado o renombrado de ficheros, así como la posibilidad de
abrir ficheros en cualquier otro modo que no sea de sólo lectura. Esto es fundamental para el mecanismo de
spooling del demonio de impresión.
• -dNOPAUSE: Deshabilita el prompt y la pausa al final de cada página. Se utiliza para producir salidas de
impresión o para controlar gs desde otro programa.
• @fichero: Hace que gs lea el fichero y trate su contenido como si fueran líneas de órdenes. Las instrucciones
dentro del fichero pueden estar separadas por al menos un espacio en blanco.
4
¿Qué es un filtro de impresión y cómo se construye?
Antes que nada es necesario
Comentarios de: Filtros de impresión con Ghostscript (0)
No hay comentarios