P�gina siguiente P�gina anterior �ndice general

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 Peter.Anvin@linux.org 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 andreas@knobel.gun.de 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:

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.


P�gina siguiente P�gina anterior �ndice general