<HTML> <HEAD> <TITLE>COMO Usar el sistema de Impresión en Linux: Imprimir bajo Linux</TITLE> </HEAD> <BODY> <A HREF="Uso-Impresion-Como-1.html">Anterior</A> <A HREF="Uso-Impresion-Como-3.html">Siguiente</A> <A HREF="Uso-Impresion-Como.html#toc2">Indice</A> <HR> <H2><A NAME="s2">2. Imprimir bajo Linux</A></H2> <P>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.</P> <H2><A NAME="ss2.1">2.1 Histórico</A></H2> <P>El sistema de impresión de Linux (el sistema <CODE>lp</CODE>) es una adaptación del código escrito por los <I>Regents</I> de la Universidad de California para la versión <I>Berkeley Software Distribution</I> (<I>BSD</I>) del sistema operativo UNIX.</P> <H2><A NAME="ss2.2">2.2 Lo básico de imprimir</A></H2> <P>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 <CODE>cat</CODE>. Como usuario <CODE>root</CODE>, uno puede hacer lo siguiente:</P> <P> <BLOCKQUOTE><CODE> <PRE> # cat tesis.txt > /dev/lp </PRE> </CODE></BLOCKQUOTE> </P> <P>En este caso, <CODE>/dev/lp</CODE> es un enlace simbólico al verdadero dispositivo de impresión (una matricial, láser, tipográfica o <I>plotter</I>). Mira la página del man <CODE>ln(1)</CODE> para más información acerca de enlaces simbólicos.</P> <P>Para el propósito de la seguridad, sólo el usuario <CODE>root</CODE> 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 <CODE>lpr</CODE>, <CODE>lprm</CODE> y <CODE>lpq</CODE> para acceder a la impresora.</P> <P>Por esto, los usuarios tienen que usar <CODE>lpr</CODE> para imprimir un fichero. El comando <CODE>lpr</CODE> es responsable de preocuparse por el trabajo inicial para imprimir un fichero, pasando entonces el control a otro programa, <CODE>lpd</CODE>, el <I>demonio</I> de las impresoras de líneas. </P> <P>Este demonio le dice entonces a la impresora cómo imprimir el fichero.</P> <P>Cuando <CODE>lpr</CODE> es ejecutado, primero copia el fichero a un cierto directorio (el directorio de <CODE>spool</CODE>) donde el fichero permanece hasta que <CODE>lpd</CODE> lo imprime. Una vez se le dice a <CODE>lpd</CODE> que hay un fichero para imprimir, creará una copia de sí mismo (lo que los programadores llaman un '<CODE>fork</CODE>'). 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.</P> <P>Las sintaxis de <CODE>lpr(1)</CODE> es bastante familiar,</P> <P> <BLOCKQUOTE><CODE> <PRE> $ lpr [ opciones ] [ nombre_fichero ... ] </PRE> </CODE></BLOCKQUOTE> </P> <P>Si no se especifica un nombre de fichero, <CODE>lpr</CODE> 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:</P> <P> <BLOCKQUOTE><CODE> <PRE> $ cat tesis.txt | lpr </PRE> </CODE></BLOCKQUOTE> </P> <P>o algo más potente, como</P> <P> <BLOCKQUOTE><CODE> <PRE> $ pr -l60 tesis.txt | lpr </PRE> </CODE></BLOCKQUOTE> </P> <P>El comando <CODE>lpr</CODE> 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: <CODE>-Pprinter</CODE> especifica la impresora a usar, <CODE>-h</CODE> suprime la impresión de la página, burst, <CODE>-s</CODE> crea un enlace simbólico en lugar de copiar el fichero completo al directorio de spooling (útil para ficheros grandes), y <CODE>-#num</CODE> especifica el número de copias a imprimir. Un ejemplo de interacción con <CODE>lpr</CODE> podría ser algo como</P> <P> <BLOCKQUOTE><CODE> <PRE> $ lpr -#2 -sP dj tesis.txt </PRE> </CODE></BLOCKQUOTE> </P> <P>Este comando crearía un enlace simbólico al fichero <CODE>tesis.txt</CODE> en el directorio de <I>spool</I> de la impresora llamada <CODE>dj</CODE>, donde debería ser procesado por <CODE>lpd</CODE>. Además debería imprimir una segunda copia de <CODE>tesis.txt</CODE>.</P> <P>Para ver un listado de todas las opciones que reconoce <CODE>lpr</CODE>, ver la página del man <CODE>lpr(1)</CODE>.</P> <H2><A NAME="ss2.3">2.3 Viendo la cola de impresión</A></H2> <P>Algunas veces es útil saber qué trabajos están actualmente en una cola de impresión particular. Esta es la única tarea del comando <CODE>lpq</CODE>.</P> <P>Para ver qué hay en la cola de la impresora por defecto (definida por <CODE>/etc/printcap</CODE>), usa</P> <P> <BLOCKQUOTE><CODE> <PRE> $ lpq lp is ready and printing Rank Owner Job Files Total Size active mwf 31 tesis.txt 682048 bytes </PRE> </CODE></BLOCKQUOTE> </P> <H2><A NAME="ss2.4">2.4 Cancelando un trabajo de impresión</A></H2> <P>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 <CODE>lprm</CODE>.</P> <P> <BLOCKQUOTE><CODE> <PRE> $ lprm - </PRE> </CODE></BLOCKQUOTE> </P> <P>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 <CODE>lpq</CODE>, dando entonces el número a <CODE>lprm</CODE>. Por ejemplo</P> <P> <BLOCKQUOTE><CODE> <PRE> $ lprm 31 </PRE> </CODE></BLOCKQUOTE> </P> <P>cancelaría el trabajo 31 (<CODE>tesis.txt</CODE>) en la impresora por defecto.</P> <HR> <A HREF="Uso-Impresion-Como-1.html">Anterior</A> <A HREF="Uso-Impresion-Como-3.html">Siguiente</A> <A HREF="Uso-Impresion-Como.html#toc2">Indice</A> </BODY> </HTML>