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?

 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.  en linux?  Lo primero es lo primero: �Por qu� necesito Ghostscript
 para imprimir

 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:

      GNU Ghostscript 5.10 (1998-12-17)
      Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
      Usage: gs [switches] [file1.ps file2.ps ...]
      Most frequently used switches: (you can use # in place of =)
      -dNOPAUSE           no pause after page   | -q       `quiet', fewer messages
      -g<width>x<height>  page size in pixels   | -r<res> pixels/inch resolution
      -sDEVICE=<devname>  select device         | -dBATCH  exit after last file
      -sOutputFile=<file> select output file: - for stdout, |command for pipe,
                                               embed %d or %ld for page #
      Input formats: PostScript PostScriptLevel1 PostScriptLevel2 PDF
      Available devices:
         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, generalmente 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

 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 recordar el mecanismo de spooling t�pico
 de los servidores de impresi�n en linux. En primer lugar el servidor
 lpr/lprng copia el fichero a imprimir en el directorio de �spool� (sd)
 indicado en el fichero /etc/printcap, creando en dicho directorio un
 fichero de control indicando el trabajo a imprimir, el usuario que
 solicita el servicio de impresi�n, par�metros pasados en l�nea de
 �rdenes, etc. Luego, el demonio de impresi�n (lpd) comprueba
 peri�dicamente si hay ficheros de control en el directorio spool, y si
 es as�, realiza las siguientes tareas:

 �  Imprime la p�gina de �banner� si no se ha suprimido (con la
    instrucci�n sh en el fichero /etc/printcap) y la pasa a trav�s del
    filtro de salida si lo hay (instrucci�n of del fichero
    /etc/printcap)

 �  Si no se indic� al servidor de impresi�n que empleara alg�n filtro
    de impresi�n en concreto, entonces se utilizar� el filtro de
    entrada, cuya ruta indica el par�metro if del fichero
    /etc/printcap.

 �  Al ejecutarse el filtro de entrada, se redirecciona su entrada
    est�ndar al fichero de control y su salida est�ndar a:

 �  la entrada est�ndar del filtro de salida (of) cuando lo haya, y la
    salida de dicho filtro al dispositivo de impresi�n asociado a la
    impresora (entrada lp del fichero /etc/printcap)

 �  al dispositivo de impresi�n indicado en /etc/printcap

 Por lo tanto un filtro de entrada de impresi�n no es m�s que un
 programa (generalmente un gui�n) que teniendo en su entrada est�ndar
 (STDIN) un fichero en un formato determinado , p. ej., ps
 (postscript), escribe en su salida est�ndar (STDOUT) los c�digos
 necesarios para que la impresora imprima dicho fichero.

 Consideremos que disponemos de una impresora HP Laserjet Plus y vamos
 a escribir algunos filtros. La resoluci�n ser� de 300x300; el formato
 de papel, A4; y el controlador de dispositivo es ljetplus.

 Vamos a escribir el filtro para ficheros PS como un shell script:

      #!/bin/bash/
      #Filtro de ficheros postscript
      /usr/bin/gs -q -dSAFER -dNOPAUSE -sDEVICE=ljetplus -r300 -sPAPERSIZE=a4 -sOutputFile=- -

 Como podemos ver, gs lee la STDIN desde el fichero de control que ha
 creado el servidor de impresi�n lpr; se ejecuta el filtro y la opci�n
 -sOutputFile=- env�a la salida a STDOUT. El demonio lpd tomar� los
 datos que se encuentren en STDOUT y los enviar� a la cola de
 impresi�n.

 Para procesar un fichero PDF aprovechando la utilidad pdf2ps (shell
 script que convierte un fichero PDF a PS), escribiremos el filtro:

      #!/bin/bash/
      #Filtro de ficheros pdf
      /usr/bin/pdf2ps | /usr/bin/gs -q -dSAFER -dNOPAUSE -sDEVICE=ljetplus -r300 -sPAPERSIZE=a4\
      -sOutputFile=- -

 Para un texto en formato troff, emplear�amos este otro

      #!/bin/bash/
      #Filtro de ficheros troff
      /usr/bin/grops -g | /usr/bin/gs -q -dSAFER -dNOPAUSE -sDEVICE=ljetplus -r300 -sPAPERSIZE=a4\
      -sOutputFile=- -

 (la opci�n -g para la orden grops permite generar documentos en
 formato letter o a4)

 Como puede verse el concepto de filtro ser�a un shell script con los
 siguientes campos:

      #!/bin/bash
      #Comentario 'filtro para ficheros XYZ'
      /usr/bin/XYZps | /usr/bin/gs -q -dSAFER -dNOPAUSE -sDEVICE=ljetplus -r300 -sPAPERSIZE=a4\
      -sOutputFile=- -

 Donde XYZps es un programa (con opciones) que convierte el formato XYZ
 a PS. Hay una gran cantidad de ellos que servir�an para hacer filtros
 con posibilidad de imprimir gr�ficos; as� el formato TIFF se pasa
 directamente con la utilidad tiff2ps, mientras que los GIF y JPEG se
 pasan a formato PNM mediante los programas giftopnm y djpeg,
 respectivamente. Una vez en este formato, se traduce a PS con la
 utilidad pnmtops.
 5.  Filtros m�gicos

 Un filtro puede ser tan sencillo como los que hemos visto, o
 complicarse substancialmente, llegando a ser capaz de reconocer el
 tipo de fichero que queremos imprimir y realizar las operaciones
 necesarias para que obtengamos una salida correcta. Un �filtro m�gico�
 analiza la entrada que recibe y, de acuerdo con los datos que le
 llegan, manda el trabajo a otro filtro secundario. As�, cuando le
 llega un fichero en formato PS, lo env�a a ghostcript, cuando es JPEG,
 lo manda a otro filtro adecuado para la impresi�n correcta, etc. Los
 filtros m�gicos m�s conocidos son magicfilter, apsfilter y los filtros
 de impresi�n de RedHat.

 5.1.  Magicfilter

 Magicfilter es un programa escrito por H. Peter Anvin
 [email protected] que puede encontrarse en cualquier espejo de
 sunsite, en el directorio

      /mirror/linux/sunsite/system/printing/magicfilter-1.2.tar.gz

 y tambi�n existe como paquete .deb y .rpm. Es el filtro m�gico
 recomendado en la distribuci�n Debian. Para configurar una impresora
 en este sistema, primero han de instalarse los paquetes magicfilter y
 recode.  El programa magicfilterconfig se crea al instalar el paquete
 magicfilter y permite una c�moda configuraci�n de la impresora,
 escribiendo el fichero /etc/printcap a partir de las respuestas a una
 serie de preguntas que nos hace interactivamente. Nos pregunta por el
 puerto del dispositivo (/dev/lp1 o /dev/lp0), as� como los nombres que
 daremos a nuestra impresora: uno largo y descriptivo y otro m�s corto
 que se usar� como nombre para el directorio spool y luego muestra una
 serie de filtros disponibles para elegir. Lo mejor es mirar, antes de
 ejecutar magicfilterconfig, en el directorio /etc/magicfilter para ver
 cu�l es el filtro que mejor viene a nuestra impresora. Los filtros son
 archivos de texto en cuyo cabecera se indica la impresora que lo puede
 utilizar. magicfilterconfig genera el fichero /etc/printcap con toda
 la informaci�n que le hemos dado. Para el caso de mi Epson Stylus
 Color 600, el fichero /etc/printcap generado por magicfilterconfig es
 (En Debian 2.1 kernel 2.0.36):

 #
 # Copyright (c) 1983 Regents of the University of California.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms are permitted
 # provided that this notice is preserved and that due credit is given
 # to the University of California at Berkeley. The name of the University
 # may not be used to endorse or promote products derived from this
 # software without specific prior written permission. This software
 # is provided ``as is'' without express or implied warranty.
 #
 #       @(#)etc.printcap        5.2 (Berkeley) 5/5/88
 #
 # This file was generated by /usr/sbin/magicfilterconfig.
 #
 lp|eps|ESC600:\
         :lp=/dev/lp1:sd=/var/spool/lpd/eps:\
         :sh:pw#80:pl#72:px#1440:mx#0:\
         :if=/etc/magicfilter/stylus_color_360dpi-filter:\
         :af=/var/log/lp-acct:lf=/var/log/lp-errs:

 Una vez instalado, magicfilter permite que el sistema reconozca e
 imprima gr�ficos (GIF, JPEG, TIFF, BMP...), ficheros PS, PDF, DVI,
 p�ginas de manual, ficheros ASCII con acentos y �, e incluso cualquier
 tipo de fichero comprimido con gzip.

 5.2.  Apsfilter

 apsfilter es otro programa que permite configurar la impresora y
 escribir un fichero /etc/printcap con los filtros adecuados para
 muchos formatos de fichero (ASCII, DVI, PS, PDF, GIF, TIFF, BMP,
 BITMAP...) y diversos tipos de compresi�n (compress, gzip, freeze).
 apsfilter ha sido desarrollado por Andreas Klemm [email protected]
 y es el paquete incluido en el YaST de SuSE para la configuraci�n de
 la impresora, as� como el que recomienda Pat Volkerding en su mensaje
 de bienvenida a Slackware. Puede obtenerse de

      http://www.freebsd.org/~andreas/

 El programa apsfilter ofrece las siguientes colas de impresi�n para
 una computadora local:

 �  lp: Cola est�ndar para todos los formatos de fichero.

 �  lp-mono: Se genera para las impresoras de color cuando ha de
    imprimirse en blanco y negro. Procesa cualquier formato de fichero.

 �  ascii: Para imprimir ficheros de texto ASCII.

 �  raw: Para imprimir ficheros que ya tienen el formato espec�fico de
    la impresora y por lo tanto no hay ning�n tipo de conversi�n.

 El fichero /etc/printcap correspondiente a mi Epson Stylus Color 600,
 obtenido con apsfilter, es el siguiente (En SuSE 6.2 kernel 2.2.10):

      ### BEGIN apsfilter: ### stcany.upp a4 color 360 ###
      #   Warning: Configured for apsfilter, do not edit the labels!
      #            apsfilter setup Thu Oct 14 01:30:42 CEST 1999
      #
      ascii|lp1|stcany.upp-a4-ascii-mono-360|stcany.upp a4 ascii mono 360:\
              :lp=/dev/lp0:\
              :sd=/var/spool/lpd/stcany.upp-a4-ascii-mono-360:\
              :lf=/var/spool/lpd/stcany.upp-a4-ascii-mono-360/log:\
              :af=/var/spool/lpd/stcany.upp-a4-ascii-mono-360/acct:\
              :if=/var/lib/apsfilter/bin/stcany.upp-a4-ascii-mono-360:\
              :la@:mx#0:\
              :tr=:cl:sh:
      #
      lp|lp2|stcany.upp-a4-auto-color-360|stcany.upp a4 auto color 360:\
              :lp=/dev/lp0:\
              :sd=/var/spool/lpd/stcany.upp-a4-auto-color-360:\
              :lf=/var/spool/lpd/stcany.upp-a4-auto-color-360/log:\
              :af=/var/spool/lpd/stcany.upp-a4-auto-color-360/acct:\
              :if=/var/lib/apsfilter/bin/stcany.upp-a4-auto-color-360:\
              :la@:mx#0:\
              :tr=:cl:sh:
      #
      lp-mono|lp3|stcany.upp-a4-auto-mono-360|stcany.upp a4 auto mono 360:\
              :lp=/dev/lp0:\
              :sd=/var/spool/lpd/stcany.upp-a4-auto-mono-360:\
              :lf=/var/spool/lpd/stcany.upp-a4-auto-mono-360/log:\
              :af=/var/spool/lpd/stcany.upp-a4-auto-mono-360/acct:\
              :if=/var/lib/apsfilter/bin/stcany.upp-a4-auto-mono-360:\
              :la@:mx#0:\
              :tr=:cl:sh:
      #
      raw|lp4|stcany.upp-a4-raw|stcany.upp a4 raw:\
              :lp=/dev/lp0:\
              :sd=/var/spool/lpd/stcany.upp-a4-raw:\
              :lf=/var/spool/lpd/stcany.upp-a4-raw/log:\
              :af=/var/spool/lpd/stcany.upp-a4-raw/acct:\
              :if=/var/lib/apsfilter/bin/stcany.upp-a4-raw:\
              :la@:mx#0:\
              :tr=:cl:sh:
      #
      ### END   apsfilter: ### stcany.upp a4 color 360 ###

 Despu�s de instalar el paquete apsfilter, la configuraci�n de la
 impresora se lleva a cabo f�cilmente ejecutando el script SETUP que
 encontraremos en el directorio /var/lib/apsfilter o
 /usr/lib/apsfilter. SETUP nos ir� mostrando men�s de opciones que
 seleccionaremos convenientemente, y al final nos escribir� el fichero
 /etc/printcap como arriba aparece. Existe un fichero de configuraci�n
 de apsfilter llamado /etc/apsfilterrc que permite un mayor control del
 trabajo de los scripts de apsfilter en el shell. Por ejemplo,
 apsfilter imprime los ficheros ASCII del siguiente modo:

 1. Convierte el fichero ASCII a PS mediante a2ps

 2. El comportamiento de a2ps por defecto es imprimir el contenido de 2
    p�ginas ASCII en una p�gina apaisada

 Esto no gusta a muchos usuarios que prefieren una salida �normal�.
 Para cambiar esto editaremos el fichero /etc/apsfilterrc y
 observaremos que la variable FEATURE toma por defecto el valor 2n (�To
 print two pages on one sheet without a header�). Debemos comentar (o
 borrar) esa l�nea y a�adir esta otra:
      FEATURE=1n

 como se observa en este fragmento de mi fichero

      ##############################################################################
      # Description
      # -----------
      # FEATURE=1       tell a2ps to print 1 page  on one sheet with    header
      # FEATURE=2       tell a2ps to print 2 pages on one sheet with    header
      # FEATURE=1n      tell a2ps to print 1 page  on one sheet without header
      # FEATURE=2n      tell a2ps to print 2 pages on one sheet without header
      # FEATURE=1l      tell a2ps to print 1 pages in landscape with    header
      # FEATURE=1ln     tell a2ps to print 1 pages in landscape without header
      #
      # This is the default I use now(the original default option was FEATURE=2n)
      FEATURE=1n

 Para suprimir por completo la conversi�n de ASCII a PS, e imprimir
 directamente en el modo ASCII de la impresora, se debe quitar el
 s�mbolo de comentario (#) al comienzo de la orden
 USE_RECODE_NOT_AP2S=yes, y por supuesto haber instalado el programa
 recode.

 5.3.  Filtros de impresi�n Red Hat

 Red Hat cuenta con su propio sistema de configuraci�n de impresora
 (printtool) y su propio sistema de filtros de impresi�n
 (/usr/lib/rhs/rhs-printfilters), que incluye una herramienta de
 configuraci�n visual y un administrador gr�fico de trabajos de
 impresi�n.  La configuraci�n de una impresora mediante printtool es
 muy sencilla y puede hacerse sin muchos conocimientos sobre el
 sistema. El fichero /etc/printcap para mi Epson Stylus Color 600
 obtenido con printtool es (En RedHat 6.0 kernel 2.2.7):

      #
      # Please don't edit this file directly unless you know what you are doing!
      # Be warned that the control-panel printtool requires a very strict format!
      # Look at the printcap(5) man page for more info.
      #
      # This file can be edited with the printtool in the control-panel.
      ##PRINTTOOL3## LOCAL uniprint NAxNA a4 {} U_EpsonStylusColor stcany 0
      lp:\
              :sd=/var/spool/lpd/lp:\
              :mx#0:\
              :sh:\
              :lp=/dev/lp0:\
              :if=/var/spool/lpd/lp/filter:

 El filtro de RedHat se parece m�s al de magicfilter que al de
 apsfilter porque genera s�lo una cola de impresi�n para una impresora
 �nica lp.
 6.  El controlador uniprint

 A partir de la versi�n 5.0 de Ghostscript, ha aparecido un nuevo
 controlador param�trico -- the uniprint driver-- desarrollado por
 Gunther Hess [email protected], que se adapta a impresoras Canon BJC 610,
 HP Deskjet 550c, Prinwriter 2X y todas las Epson Stylus Color mediante
 un fichero de par�metros especificos. Por ejemplo, para la Epson
 Stylus Color 600 hay tres ficheros:

 �  stc600ih.upp: Para 1440x720dpi, inkjet paper

 �  stc600p.upp: Para 720x720dpi, plain paper

 �  stc600pl.upp: Para 360x360dpi, plain paper

 Si no deseamos m�s que 360x360 dpi de resoluci�n, puede usarse el
 fichero stcany.upp que sirve para cualquier impresora Stylus Color.
 Este fichero contiene las siguientes l�neas:

      -supModel="Any Epson Stylus Color, 360x360DpI"
      -sDEVICE=uniprint
      -dNOPAUSE
      -dSAFER
      -dupColorModel=/DeviceCMYKgenerate
      -dupRendering=/ErrorDiffusion
      -dupOutputFormat=/EscP2
      -r360x360
      -dupMargins="{ 9.0 39.96 9.0 9.0}"
      -dupComponentBits="{1 1 1 1}"
      -dupBeginPageCommand="<
         1b40   1b40
         1b2847 0100 01
         1b2869 0100 01
         1b2855 0100 0A
         1b5500
         1b2843 0200 0000
         1b2863 0400 0000 0000
      >"
      -dupAdjustPageLengthCommand
      -dupAdjustTopMarginCommand
      -dupAdjustBottomMarginCommand
      -dupEndPageCommand="(\033@\014)"
      -dupAbortCommand="(\033@\15\12\12\12\12    Printout-Aborted\15\014)"

 y por lo tanto, para realizar impresi�n de un fichero PS usando la
 orden gs, escribir�amos (para la Epson Stylus Color) en un filtro para
 ficheros PS la l�nea

      /usr/bin/gs @stcany.upp -sOutputFile=--

 en lugar de

 /usr/bin/gs -sDEVICE=stcolor -r360 -q -dSAFER - dNOPAUSE -sOutputFile=- -

 obteniendo el mismo resultado.

 7.  Impresi�n remota

 En la impresi�n remota, los filtros se emplean de manera diferente
 seg�n se trate de imprimir en una m�quina remota unix o windows.  En
 el primer caso, el administrador de la m�quina remota debe incluir la
 nuestra en su /etc/hosts.equiv o, mejor, en /etc/hosts.lpd, o
 permitirle la impresi�n solamente a ciertos usuarios empleando el
 atributo rs (ver la p�gina man de lpd). Para imprimir en la m�quina
 remota, a�adiremos una nueva entrada a nuestro /etc/printcap.
 Supongamos que la impresora de la m�quina remota (hercules.us.es) es
 una Epson EPL 5700 y la cola de impresi�n por defecto (lp) es la que
 queremos usar. La entrada ser�a:

      #Remote unix printer
      epl5700|Remote unix printer
              :sd=/var/spool/lpd/epl5700:\
              :rm=hercules.us.es:\ #nombre de la m�quina remota (rm: remote machine)
              :rp=lp:\ #nombre de la cola de impresi�n en la m�quina remota (rp: remote printer)
              :mx#0:\
              :lp=/dev/null:\
              :sh:\

 Es necesario tener un directorio spool en la m�quina local, porque si
 la remota est� ocupada o desconectada, el trabajo a imprimir esperar�
 en dicho directorio hasta que sea enviado.

 Cuando se trata de imprimir en una m�quina remota Windows, debemos
 usar el paquete SaMBa. Es posible establecer una cola de impresi�n
 mediante el programa smbclient (parte de samba) por el protocolo
 TCP/IP mediante el servicio de impresi�n SMB. Samba incluye un gui�n
 para realizar esto, llamado smbprint. En pocas palabras, se a�ade una
 entrada nueva al /etc/printcap de la m�quina local para la impresora
 remota incluyendo en la entrada if el script smbprint. Si la impresora
 remota es, por ejemplo, una HP Laserjet, podr�amos poner:

      #Remote samba printer
      HPlaserjet|Remote samba printer
              :sd=/var/spool/lpd/HPlaserjet:\
              :mx#0:\
              :lp=/dev/null:\
              :if=/usr/local/sbin/smbprint #Ruta del gui�n smbprint
              :sh:\

 Para mayor informaci�n acerca de la impresi�n remota, consultar el
 C�mo correspondiente a la configuraci�n de impresi�n.

 8.  Cr�ditos

 David Espada Garc�a [email protected] escribi� un
 interesante art�culo �Configuraci�n de la impresora� en el n�4 de la
 revista S�lo Programadores LINUX. Tambi�n me han sido muy �tiles el
 �Ghostscript User Manual� de Thomas Merz [email protected], el �Linux Printing
 Howto� de Grant Taylor [email protected] y el Manual de SuSE
 Linux 6.2, cap�tulo 12.

 9.  Anexo: El INSFLUG

 El INSFLUG forma parte del grupo internacional Linux Documentation
 Project, encarg�ndose de las traducciones al castellano de los Howtos,
 as� como de la producci�n de documentos originales en aquellos casos
 en los que no existe an�logo en ingl�s, centr�ndose, preferentemente,
 en documentos breves, como los COMOs y PUFs (Preguntas de Uso
 Frecuente, las FAQs. :) ), etc.

 Dir�jase a la sede del Insflug para m�s informaci�n al respecto.

 En ella encontrar� siempre las �ltimas versiones de las traducciones
 �oficiales�:  www.insflug.org. Aseg�rese de comprobar cu�l es la
 �ltima versi�n disponible en el Insflug antes de bajar un documento de
 un servidor r�plica.

 Adem�s, cuenta con un sistema interactivo de gesti�n de fe de erratas
 y sugerencias en l�nea, motor de b�squeda espec�fico, y m�s servicios
 en los que estamos trabajando incesantemente.

 Se proporciona tambi�n una lista de los servidores r�plica (mirror)
 del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
 recursos en castellano.

 En http://www.insflug.org/insflug/creditos.php3 cuenta con una
 detallada relaci�n de las personas que hacen posible tanto esto como
 las traducciones.

 �Dir�jase a http://www.insflug.org/colaboracion/index.php3 si desea
 unirse a nosotros!.

 �Cartel� Insflug, [email protected].