Anterior Siguiente Indice

2. Imprimir bajo Linux

Esta sección comenta cómo imprimir ficheros, examinar la cola de impresión, eliminar trabajos de la cola, formatear ficheros antes de imprimirlos, y configurar tu entorno de impresión.

2.1 Histórico

El sistema de impresión de Linux (el sistema lp) es una adaptación del código escrito por los Regents de la Universidad de California para la versión Berkeley Software Distribution (BSD) del sistema operativo UNIX.

2.2 Lo básico de imprimir

La forma más simple (con mucho) de imprimir en el sistema operativo Linux es enviar el fichero a ser impreso directamente al dispositivo de impresión. Una manera de hacer esto es usar el comando cat. Como usuario root, uno puede hacer lo siguiente:

# cat tesis.txt > /dev/lp

En este caso, /dev/lp es un enlace simbólico al verdadero dispositivo de impresión (una matricial, láser, tipográfica o plotter). Mira la página del man ln(1) para más información acerca de enlaces simbólicos.

Para el propósito de la seguridad, sólo el usuario root y los usuarios de su mismo grupo como el demonio de impresión son capaces de escribir directamente a la impresora. Es por esto por lo que se tienen que usar comandos como lpr, lprm y lpq para acceder a la impresora.

Por esto, los usuarios tienen que usar lpr para imprimir un fichero. El comando lpr es responsable de preocuparse por el trabajo inicial para imprimir un fichero, pasando entonces el control a otro programa, lpd, el demonio de las impresoras de líneas.

Este demonio le dice entonces a la impresora cómo imprimir el fichero.

Cuando lpr es ejecutado, primero copia el fichero a un cierto directorio (el directorio de spool) donde el fichero permanece hasta que lpd lo imprime. Una vez se le dice a lpd que hay un fichero para imprimir, creará una copia de sí mismo (lo que los programadores llaman un 'fork'). Esta copia imprimirá nuestro fichero mientras la copia original queda esperando otras peticiones. Esto permite que hayan múltiples trabajos a la vez en una cola.

Las sintaxis de lpr(1) es bastante familiar,

$ lpr [ opciones ] [ nombre_fichero ... ]

Si no se especifica un nombre de fichero, lpr asume que la entrada será efectuada por la entrada estándar (normalmente el teclado o la salida de otro programa). Esto permite que el usuario redirija la salida de un programa al dispositivo de impresión. Por ejemplo:

$ cat tesis.txt | lpr

o algo más potente, como

$ pr -l60 tesis.txt | lpr

El comando lpr acepta varios argumentos en la línea de comandos que permiten al usuario controlar cómo trabaja. Algunos de los argumentos más ampliamente usados son: -Pprinter especifica la impresora a usar, -h suprime la impresión de la página, burst, -s crea un enlace simbólico en lugar de copiar el fichero completo al directorio de spooling (útil para ficheros grandes), y -#num especifica el número de copias a imprimir. Un ejemplo de interacción con lpr podría ser algo como

$ lpr -#2 -sP dj tesis.txt

Este comando crearía un enlace simbólico al fichero tesis.txt en el directorio de spool de la impresora llamada dj, donde debería ser procesado por lpd. Además debería imprimir una segunda copia de tesis.txt.

Para ver un listado de todas las opciones que reconoce lpr, ver la página del man lpr(1).

2.3 Viendo la cola de impresión

Algunas veces es útil saber qué trabajos están actualmente en una cola de impresión particular. Esta es la única tarea del comando lpq.

Para ver qué hay en la cola de la impresora por defecto (definida por /etc/printcap), usa

  $ lpq
  lp is ready and printing
  Rank   Owner      Job  Files                            Total Size
  active mwf        31   tesis.txt                        682048 bytes

2.4 Cancelando un trabajo de impresión

Otra útil característica para cualquier sistema de impresión es la capacidad de cancelar un trabajo que ha sido 'encolado' anteriormente. Para hacer esto, usa lprm.

 $ lprm -

El comando anterior cancela todos los trabajos de impresión que son propiedad del usuario que envió el comando. Se puede cancelar un trabajo de forma individual obteniendo primero el número del trabajo usando lpq, dando entonces el número a lprm. Por ejemplo

$ lprm 31

cancelaría el trabajo 31 (tesis.txt) en la impresora por defecto.


Anterior Siguiente Indice