COMO Usar el sistema de Impresión en Linux <author>Matt Foster, <tt><htmlurl url="mailto:mwf@engr.uark.edu" name="mwf@engr.uark.edu"></tt> &nl; Traducido por: Ricardo Javier Cárdenes Medina, <tt><htmlurl url="mailto:a1402@correo.dis.ulpgc.es" name="a1402@correo.dis.ulpgc.es"></tt> <date>v1.0, 5 Agosto de 1995, Traducción 9 de Octubre de 1996. <abstract> Este documento describe cómo usar el sistema de spooling para impresoras de líneas que provee el sistema operativo Linux. Si está buscando una guía para poner a punto su entorno de impresión, por favor, lea el Configuración de Impresion Como. </abstract> <!-- Tabla de contenidos --> <toc> <!-- Inicio del documento --> <sect>Introducción <P> <bf>* Nota del traductor.</bf> A partir de ahora usaré el verbo <it/bajar/ para traducir el inglés <it/download/, ya que aunque no es literalmente correcto, es la forma en que más lo he escuchado a otros usuarios españoles y es la que yo mismo uso. Este documento describe cómo usar el sistema de <it/spooling/ para impresoras de líneas que provee el sistema operativo Linux. Si estás buscando una guía para poner a punto tu entorno de impresión, por favor, lee el <it/Linux Printing Setup HOWTO/. <sect1>Histórico de este COMO <P> Esta versión de este COMO es una reescritura completa del original escrito por Grant Taylor <tt><htmlurl url="mailto:grant@god.tufts.edu" name="grant@god.tufts.edu"></tt> y Brian McCauley <tt><htmlurl url="mailto:B.A.McCauley@bhan.ac.uk" name="B.A.McCauley@bhan.ac.uk"></tt> He intentado mantener el material presentado por el COMO De Grant y Brian, pero he modificado drásticamente el estilo de presentación y la profundidad de los temas tratados. Me parece que esto hace el COMO más completo y fácil de leer. Sólo puedo esperar que estés de acuerdo. <sect1>Copyrights y Marcas registradas <P> Algunos nombres mencionados en este COMO están registrados en copyrights y/o están reclamados como Marcas registradas de ciertas personas y/o compañías. Dichos nombres aparecen con la inicial o el nombre completo en mayúsculas en este COMO. <bf>El COMO Usar la Impresora en Linux v1.0 (c) 1995 Matt Foster.</bf> A menos que se diga otra cosa, cada autor de documentos COMO de Linux tiene el copyright de los que haya escrito. Estos documentos pueden ser reproducidos y distribuidos totalmente o en parte, en cualquier medio físico o electrónico, mientas ese aviso de copyright se mantenga en todas las copias. La redistribución comercial está permitida y alentada; sin embargo, al autor le gustaría que se le notificasen dichas distribuciones. Todas las traducciones, trabajos derivados o trabajos agregados que incorporen cualquier documento COMO de Linux deben ser cubiertos bajo este aviso de copyright. Esto es, no puedes producir trabajos derivados de un COMO e imponer restricciones adicionales en su distribución. Se pueden admitir excepciones a estas reglas bajo ciertas condiciones; por favor contacte con el coordinador de los COMO de Linux en la dirección que aparece más abajo. En resumen, deseamos promocionar la diseminación de esta información a través de cuantos canales sea posible. De todas maneras, queremos retener el copyright de los documentos COMO, y nos gustaría ser notificados de cualquier plan para redistribuir los COMOs. Si tienes cualquier pregunta, por favor contacta con Greg Hankins, el coordinador de los <it/HOWTO/ de Linux, en <tt><htmlurl url="mailto=gregh@sunsite.unc.edu" name="gregh@sunsite.unc.edu"></tt>. Puedes hacer un <tt/finger/ a esta dirección para averiguar el número de teléfono e información adicional de contacto. <sect1>Obteniendo los COMOs sobre Imprimir en Linux <P> Te recomiendo que si quieres imprimir una copia de este COMO que hayas bajado la versión PostScript. Está formateada de manera más estética y sencilla de leer. Puedes obtener la versión Postscript desde alguno de los muchos '<it/sites/' de distribución de Linux (como <bf/SunSITE/, <tt><htmlurl url="ftp://sunsite.unc.edu/Linux/docs/Howtos/" name="ftp://sunsite.unc.edu/Linux/docs/Howtos/"></tt>), o directamente desde mi página <it/World Wide Web/ en <tt><htmlurl url="http://www.engr.uark.edu/˜mwf/pht/" name="http://www.engr.uark.edu/˜mwf/pht/"></tt> <sect1>Sugerencias, críticas y aportaciones <P> Las preguntas, comentarios o correcciones para este COMO deben ser dirigidas a <tt><htmlurl url="mailto:mwf@engr.uark.edu" name="mwf@engr.uark.edu"></tt> <sect1>Reconocimientos <P> Gracias a toda la gente que apartó el tiempo necesario para leer la versión alfa de ese COMO y respondió con multitud de comentarios y sugerencias que ayudaron mucho (algunos podréis ver vuestros comentarios reflejados en la versión) Me gustaría también agradecer a Grant y Brian por la gran cantidad de información que me han dado durante la transición de autoría. <sect>Imprimir bajo Linux <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. <sect1>Histórico <P> El sistema de impresión de Linux (el sistema <tt/lp/) es una adaptación del código escrito por los <it/Regents/ de la Universidad de California para la versión <it/Berkeley Software Distribution/ (<it/BSD/) del sistema operativo UNIX. <sect1>Lo básico de imprimir <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 <tt/cat/. Como usuario <tt/root/, uno puede hacer lo siguiente: <tscreen><verb> # cat tesis.txt > /dev/lp </verb></tscreen> En este caso, <tt>/dev/lp</tt> es un enlace simbólico al verdadero dispositivo de impresión (una matricial, láser, tipográfica o <it/plotter/). Mira la página del man <tt>ln(1)</tt> para más información acerca de enlaces simbólicos. Para el propósito de la seguridad, sólo el usuario <tt/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 <tt/lpr/, <tt/lprm/ y <tt/lpq/ para acceder a la impresora. Por esto, los usuarios tienen que usar <tt/lpr/ para imprimir un fichero. El comando <tt/lpr/ es responsable de preocuparse por el trabajo inicial para imprimir un fichero, pasando entonces el control a otro programa, <tt/lpd/, el <it/demonio/ de las impresoras de líneas. Este demonio le dice entonces a la impresora cómo imprimir el fichero. Cuando <tt/lpr/ es ejecutado, primero copia el fichero a un cierto directorio (el directorio de <tt/spool/) donde el fichero permanece hasta que <tt/lpd/ lo imprime. Una vez se le dice a <tt/lpd/ que hay un fichero para imprimir, creará una copia de sí mismo (lo que los programadores llaman un '<tt/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 <tt/lpr(1)/ es bastante familiar, <tscreen><verb> $ lpr [ opciones ] [ nombre_fichero ... ] </verb></tscreen> Si no se especifica un nombre de fichero, <tt/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: <tscreen><verb> $ cat tesis.txt | lpr </verb></tscreen> o algo más potente, como <tscreen><verb> $ pr -l60 tesis.txt | lpr </verb></tscreen> El comando <tt/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: <tt/-Pprinter/ especifica la impresora a usar, <tt/-h/ suprime la impresión de la página, burst, <tt/-s/ crea un enlace simbólico en lugar de copiar el fichero completo al directorio de spooling (útil para ficheros grandes), y <tt/-#num/ especifica el número de copias a imprimir. Un ejemplo de interacción con <tt/lpr/ podría ser algo como <tscreen><verb> $ lpr -#2 -sP dj tesis.txt </verb></tscreen> Este comando crearía un enlace simbólico al fichero <tt/tesis.txt/ en el directorio de <it/spool/ de la impresora llamada <tt/dj/, donde debería ser procesado por <tt/lpd/. Además debería imprimir una segunda copia de <tt/tesis.txt/. Para ver un listado de todas las opciones que reconoce <tt/lpr/, ver la página del man <tt/lpr(1)/. <sect1>Viendo la cola de impresión <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 <tt/lpq/. Para ver qué hay en la cola de la impresora por defecto (definida por <tt>/etc/printcap</tt>), usa <tscreen><verb> $ lpq lp is ready and printing Rank Owner Job Files Total Size active mwf 31 tesis.txt 682048 bytes </verb></tscreen> <sect1>Cancelando un trabajo de impresión <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 <tt/lprm/. <tscreen><verb> $ lprm - </verb></tscreen> 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 <tt/lpq/, dando entonces el número a <tt/lprm/. Por ejemplo <tscreen><verb> $ lprm 31 </verb></tscreen> cancelaría el trabajo 31 (<tt/tesis.txt/) en la impresora por defecto. <sect>Elementos misceláneos <P> Esta sección comenta algunos de las cosas de utilidad general que puedes querer saber sobre imprimir bajo Linux. <sect1>Formateado <P> Como la mayoría de los ficheros ASCII no están formateados para la impresión, es útil formatearlos de alguna manera antes de que sean realmente impresos. Esto puede incluir poner un título y número en cada página, poner márgenes, espaciado doble, sangría, o imprimir el fichero en múltiples columnas. Una forma común de hacer esto es usar un preprocesador de impresión como <tt/pr/. <tscreen><verb> $ pr +4 -d -h"Ph.D. Thesis, 2nd Draft" -l60 tesis.txt | lpr </verb></tscreen> En el ejemplo de antes, <tt/pr/ tomará el fichero <tt/tesis.txt/ y saltaría las primeras tres páginas (<tt/+4/), pondría la longitud de página en 60 líneas (<tt/-l60/), doble espacio de la salida (<tt/-d/), y añadiría la frase "<it/Ph.D. Thesis, 2nd Draft/" al principio de cada página (<tt/-h/). <tt/lpr/ imprimiría entonces la salida de <tt/pr/. Mira la página del manual para más información acerca de cómo usar <tt/pr/. <sect1>Las variables de entorno <tt>PRINTER</tt> <P> Todos los comandos del sistema de impresión de Linux aceptan la opción <tt/-P/. Esta opción permite que el usuario especifique que impresora usar como salida. Si un usuario no especifica la impresora a usar, entonces se asumirá que la impresora por defecto es el dispositivo de salida. En lugar de tener que especificar la impresora a usar cada vez que imprimes, puedes poner en la variable de entorno <tt/PRINTER/ el nombre de la impresora que quieres usar. Esto se hace de diferentes maneras por cada <it/shell/. Para el <tt/bash/ puedes hacerlo con <tscreen><verb> $ PRINTER="nombre_de_impresora"; export PRINTER </verb></tscreen> en <tt/csh/, lo puedes hacer con <tscreen><verb> % setenv PRINTER "nombre_de_impresora" </verb></tscreen> Estos comandos pueden ser situados en tus scripts de login (<tt/.profile/ o <tt/.cshrc/), o enviados en la línea de comandos. (Leer <tt/bash(1)/ y <tt/csh(1)/ para más información sobre las variables de entorno.) <sect1>Imprimiendo ficheros PostScript <P> Imprimir ficheros PostScript en una impresora que tiene un intérprete PostScript es sencillo; simplemente usa <tt/lpr/, y la impresora se ocupará de todos los detalles por ti. Para aquellos de vosotros que no tienen impresoras con capacidades PostScript, nos veremos obligados a usar otros medios. Por suerte, hay programas disponibles que pueden entender el PostScript, y traducirlo a un lenguaje que la mayoría de las impresoras pueden comprender. Probablemente el más conocido de estos es <it/Ghostscript/. La responsabilidad de <it/Ghostscript/ es convertir todas las descripciones de un fichero PostScript a los comandos que la impresora entienda. Para imprimir un fichero PostScript usando Ghostscript, podrías hacer algo como <tscreen><verb> $ gs -dNOPAUSE -sDEVICE=deskjet -sOutputFile=|lpr tesis.ps </verb></tscreen> Date cuenta que en el ejemplo anterior hemos enviado la salida de Ghostscript hacia el comando <tt/lpr/ usando la opción <tt/-sOutputFile/. Ghostview es un interface de Ghostscript para el Sistema <it/X Window/. Te permite previsualizar un fichero PostScript antes de que lo imprimas. Ghostview y Ghostscript pueden ser bajados desde <tt><htmlurl url="ftp://prep.ai.mit.edu/pub/gnu/" name="ftp://prep.ai.mit.edu/pub/gnu/"></tt> <sect1>Imprimiendo ficheros TeX <P> Una de las maneras más fáciles de imprimir los ficheros TeX es convertirlos a PostScript y entonces imprimirlos usando Ghostscript. Para hacerlo, primero necesitas convertirlos de TeX a un formato conocido como DVI (siglas de <it/DeVice-Independent/, independiente del dispositivo). Puedes hacerlo con el comando <tt/tex(1)/. Entonces necesitas convertir el dispositivo DVI a PostScript usando <tt/dvips/. Todo esto debería ser de la siguiente manera cuando lo escribas. <tscreen><verb> $ tex tesis.tex $ dvips tesis.dvi </verb></tscreen> Ahora ya estás preparado para imprimir los ficheros PostScript resultantes tal como se describe anteriormente. <sect1>Imprimir ficheros formateados con <tt/troff/ <P> <tscreen><verb> $ groff -Tascii tesis.tr | lpr </verb></tscreen> o, si lo prefieres, <tscreen><verb> $ groff tesis.tr > tesis.ps </verb></tscreen> Y entonces imprimir el fichero PostScript como se describió anteriormente. <sect>Respuestas a preguntas frecuentes <P> P1. Cómo puedo prevenir el efecto de escalera (<it/staircase effect/)? R1. El efecto de escalón ocurre por la manera en que algunas impresoras esperan que se acaben las líneas. Algunas impresoras quieren líneas que terminen con un retorno_de_carro/avance_de_línea <it>CR/LF</it> (estilo DOS) en lugar de con la secuencia por defecto de los sistemas tipo UNIX (sólo un avance de línea, <it/LF/). La manera más sencilla de solucionar esto es mirar si tu impresora puede conmutar entre ambos estilos de alguna manera (un interruptor DIP o mandando una secuencia de escape). Para hacer la segunda necesitas crear un filtro (ver P2 y Foster95b). Una forma rápida de arreglarlo es usar un filtro en la línea de comandos. un ejemplo de esto podría ser <tscreen><verb> $ cat tesis.txt | todos | lpr </verb></tscreen> P2. Qué es un filtro? R2. Un filtro es un programa que lee de la entrada estándar (<tt/stdin/), realiza alguna acción sobre esa entrada, y escribe en la salida estándar (<tt/stdout/). Los filtros se usan para montón de cosas, incluyendo el procesado de textos. P3. Qué es un filtro mágico? R3. Un filtro mágico es un filtro que realiza una acción basada en el tipo de un fichero. Por ejemplo, si el fichero es puro texto, entonces simplemente imprimirá el fichero usando los métodos normales. Si el fichero es PostScript, o cualquier otro formato, podría imprimirlo usando otro método (ghostscript). <sect>Resolución de problemas <P> Esta sección cubre algunos problemas comunes en tu sistema de impresión. Manda sugerencias para esta sección a <tt><htmlurl url="mailto:mwf@engr.uark.edu" name="mwf@engr.uark.edu"></tt> <sect>Referencias <P> Esta es una sección de referencias sobre el sistema de impresión Linux. He intentado mantener la sección de referencias de este COMO lo más concentrada posible. Si crees que he olvidado algún tema significativamente importante, por favor no dudes en contactar conmigo. Antes de que mandes tu pregunta a un grupo <bf/USENET/, considera lo siguiente: <itemize> <item>Está la impresora aceptando trabajos? (usa <tt/lpc(8)/ para verificarlo) <item>Está la respuesta a tu pregunta cubierta en este COMO , o en el COMO Configurar la Impresión (<it/Printing Setup HOWTO/)? Si contestas 'sí' a alguna de estas dos cosas, deberías pensarlo dos veces antes de enviar tu pregunta. Y cuando finalmente envíes el mensaje a un grupo de noticias, incluye toda la información pertinente. Intenta no decir sólo algo como <it>"Estoy teniendo problemas con</it> <tt/lpr/, <it>por favor ayuden."</it> Este tipo de mensajes serán ignorados. Además intenta incluir la versión del kernel que estás ejecutando, cuándo ocurrió el error y el mensaje de error específico que devolvió el sistema (si lo hizo). <item>Welsh, Matt. <it/Linux Installation and Getting Started/<footnote>Disponible en castellano merced al grupo LuCAS como <it/Linux, Instalación y Primeros Pasos/ (<it/LIPP/), consultar anexo referente a grupos LiNUXeros en España</footnote> Un excelente texto introductorio para el principiante. <item>Foster, Matt. <it/Linux Printing Setup HOWTO/<footnote>Disponible en castellano igualmente</footnote>, ver sección <ref id="Grupos">El suplemento a este COMO; cubre temas tales como preparar y configurar el software de impresión. </itemize> Páginas del Manual: <itemize> <item><tt/cat(1)/ Concatena e imprime ficheros <item><tt/dvips(1)/ Convierte un fichero TeX DVI a PostScript <item><tt/ghostview(1)/ Previsualiza ficheros PostScript usando Ghostscript <item><tt/groff(1)/ Front-end para el sistema de formateo groff <item><tt/gs(1)/ Intérprete/Visor Ghostscript <item><tt/lpc(8)/ Programa de control de la impresora de líneas <item><tt/lpd(8)/ Demonio del spool de la impresora de líneas <item><tt/lpq(1)/ Examina la cola de impresión <item><tt/lpr(1)/ Impresor <it/off-line/ <item><tt/lprm(1)/ Elimina trabajos de la cola de impresión <item><tt/pr(1)/ Convierte ficheros de texto para imprimir <item><tt/tex(1)/ Formateo y tipado de texto </itemize> Grupos de noticias de USENET <itemize> <item><tt/comp.os.linux.*/: Muchísima información sobre Linux <item><tt/comp.unix.*/: Debates relacionados con el UNIX </itemize> <sect>Colofón <P> Este COMO fue escrito usando <tt/vi/, el editor fundamental; la mente humana, la computadora fundamental; e imaginación, la herramienta fundamental. La computadora elegida fue una <it/Gateway2000/ i486/50 corriendo la Slackware 2.2 con la versión 1.3.4 del kernel. El documento original fue escrito en formato mark-up usando Linuxdoc-SGML<footnote>Cuya guía está disponible en castellano, consultar anexo Grupo LiNUXeros en España</footnote> (una versión hackeada del QWERTZ DTD de Tom Gordon). El COMO fue entonces enviado vía mail a Greg Hankins, el coordinador del Proyecto de Documentación de Linux. Allí fue convertido a formatos PostScript, TeXinfo, DVI, ASCII y HTML. La traducción se escribió con el pico, en un i586/90 corriendo el kernel 2.0.0 con mark-ups de <tt/Linuxdoc-SGML/. <sect>Anexo: El INSFLUG <label id="Grupos"> <p> El <em/INSFLUG/ forma parte del grupo internacional <it/Linux Documentation Project/, encargándose de las traducciones al castellano de los Howtos (Comos), así como la producción de documentos originales en aquellos casos en los que no existe análogo en inglés. En el <bf/INSFLUG/ se orienta preferentemente a la traducción de documentos breves, como los <em/COMOs/ y <em/PUFs/ (<bf/P/reguntas de <bf/U/so <bf/F/recuente, las <it/FAQs/. <tt/:)/ ), etc. Diríjase a la sede del INSFLUG para más información al respecto. En la sede del INSFLUG encontrará siempre las <bf/últimas/ versiones de las traducciones: <tt><htmlurl url="http://www.insflug.org" name="www.insflug.org"></tt>. 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. Se proporciona también una lista de los servidores réplica (<it/mirror/) del Insflug más cercanos a Vd., e información relativa a otros recursos en castellano. Francisco José Montilla, <tt><htmlurl url="mailto:pacopepe@insflug.org" name="pacopepe@insflug.org"></tt>. </article>