La impresora es uno de los asuntos escabrosos de Linux: Es algo que tienes que configurar. Normalmente no te lo hace sólo, y no es algo que salte a la vista cómo hacerlo.
La impresora, como cualquier otra cosa, es un fichero en UNIX. Pero
nosotros no lo vamos a utilizar directamente (el fichero), sino mediante la
orden lpr (o imprimiendo desde un programa que tenga opción de
imprimir, claro).
En UNIX, las impresoras suelen manejarse con algo que llaman filtros mágicos. Estos filtros, haciendo gala de su nombre, reciben un fichero, adivinan de qué tipo es (qué formato tiene, por decir así), y lo imprimen automágicamente. Todo esto si entienden el formato; si no, simplemente no imprimen a lo bestia (como si lo abrieras con el bloc de notas o el Word y lo mandaras a imprimir, para entendernos).
El que yo utilizo, que parece ser el más extendido, es el
magicfilter. Entiende muchos formatos comunes, como PostScript, GIF,
texto normal (obviamente), etc. Se configura con el programa
magicfilterconfig. Él te hace algunas preguntas (necesarias,
como el modelo de tu impresora, y esas cosas; si no entiendes la pregunta,
contesta el valor por defecto y listo), y él sólo se configura.
printtool
Si utilizas RedHat (y probablemente cualquier otra distribución que soporte formato de paquetes rpm), tienes a tu disposición un sencillo programa en X para configurar la impresora, y alguna cosa más. Simplemente llámale, desde X, y él te configurará la impresora con sólo preguntarte el modelo (te da a elegir de una lista, como en Windows).
El formato PostScript, de Adobe, es el formato más extendido para liarse con la impresora. Esto quiere decir que muchas utilidades que generan gráficos, los generan en PostScript (utilidades para generar calendarios, y cosas así); también quiere decir, probablemente, que cualquier utilidad de impresora que se precie entenderá este formato. Y también quiere decir que si tienes algún formato que quieres imprimir, pero que el filtro mágico no entiende, puedes intentar convertirlo a PostScript, y darle esta segunda versión a la impresora.
Que tengas tu impresora funcionando no significa que todo esté
a tu gusto. Por ejemplo, a mí siempre me ha pasado (tengo una HP
DeskJet 690c, y utilizo el controlador de dj550c) que pienso que mi
impresora expulsa demasiada tinta. Esto tiene dos desventajas: gastas
más tinta de la necesaria, y encima el texto queda borroso, porque hay
demasiada tinta en las esquinas. Buscando en los COMOs
encontré una forma de arreglarlo.
Consiste en procesar un pequeño archivo en formato PostScript
justo antes de imprimir. Como imprimir a mano es un rollo, lo que hice (dado
que utilizo un filtro mágico, el magicfilter) fue decirle que
lo hiciera automágicamente por mí (para eso están los
ordenadores: para hacer el trabajo pesado que nosotros no queremos hacer).
¿Que cómo? Muy fácil. Le dije que cada vez que fuera a
imprimir un archivo PostScript (al final todos los formatos los termina
convirtiendo a PostScript antes de imprimirlos), con la orden gs,
imprimiera antes el archivo de corrección (que no imprime nada en
papel; simplemente corrige la situación ``anómala''). Al archivo
lo llamé gamma.ps (porque creo que la corrección es
cuestión es llama ``corrección gamma''), y lo puse en el
directorio /home/zoso/.datos.
El fichero en cuestión que tuve que modificar fue el
/etc/magicfilter/dj550c-filter (que quizás en tu sistema
esté en /sbin/dj550-filter o en algún otro sitio). Las
primeras líenas de la versión original son éstas:
# PostScript
0 %! filter /usr/bin/gs -q -dSAFER -dNOPAUSE -r300 \
-sDEVICE=cdj550 -sOutputFile=\|"cat 1>&3" - 3>&1 1>&2
0 \004%! filter /usr/bin/gs -q -dSAFER -dNOPAUSE -r300 \
--DEVICE=cdj550 -sOutputFile=\|"cat 1>&3" - 3>&1 1>&2
# PDF
0 %PDF fpipe /usr/bin/gs -q -dSAFER -dNOPAUSE -r300 \
-sDEVICE=cdj550 -sOutputFile=\|"cat 1>&3" $FILE 3>&1 1>&2
donde las barras invertidas al final indican que la línea en realidad sigue debajo (simplemente no cabe en el papel si se pone seguida). La versión después de hacer la modificación fue:
# PostScript
0 %! filter /usr/bin/gs -q -dSAFER -dNOPAUSE -r300 \
-sDEVICE=cdj550 -sOutputFile=\|"cat 1>&3" /home/zoso/.datos/gamma.ps \
- 3>&1 1>&2
0 \004%! filter /usr/bin/gs -q -dSAFER -dNOPAUSE -r300 \
--DEVICE=cdj550 -sOutputFile=\|"cat 1>&3" /home/zoso/.datos/gamma.ps \
- 3>&1 1>&2
# PDF
0 %PDF fpipe /usr/bin/gs -q -dSAFER -dNOPAUSE -r300 \
-sDEVICE=cdj550 -sOutputFile=\|"cat 1>&3" /home/zoso/.datos/gamma.ps \
$FILE 3>&1 1>&2
La modificación no era excesivamente difícil de imaginar
si sabías que por lo general se le llama - al fichero que
respresenta a la entrada estándar.
Para los que tenemos impresoras Hewlett-Packard modelo DeskJet
(estamos de suerte) existen unas herramientas especiales. Hay dos programas
independientes, escritos por personas diferentes, que hacen aproximadamente
las mismas funciones: Los programas se llaman hpset y
djscript. En Debian vienen los dos en el paquete djtools.
También existe un paquete en la distribución Debian que mejora
el uso de las impresoras LaserJet. El nombre del paquete es cti-ifhp.
El programa hpset es más genérico que
djscript, porque sirve para mandar órdenes de
configuración a la impresora. Puedes imprimir páginas de prueba,
cambiar entre los modos econofast (hpset econo), normal y
calidad óptima (hpset nice), cambiar el tipo de letra, y
algunas cosas más.
djscript simplemente formatea texto para que salga de
determinada manera en la salida (cambia el tipo de letra, distribuye en
columnas, etc.). Ambos programas están bastante bien documentados. Para
mirar la ayuda, puedes utilizar man hpset y man djscript, o
ir al directorio /usr/doc/djtools para leer los documentos
correspondientes.