COMO Usar el sistema de Impresión en Linux Matt Foster, mwf@engr.uark.edu Traducido por: Ricardo Javier Cárdenes Medina, a1402@correo.dis.ulpgc.es v1.0, 5 Agosto de 1995, Traducción 9 de Octubre de 1996. Este documento describe cómo usar el sistema de spooling para impreso­ ras 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. ______________________________________________________________________ Índice General: 1. Introducción 1.1. Histórico de este COMO 1.2. Copyrights y Marcas registradas 1.3. Obteniendo los COMOs sobre Imprimir en Linux 1.4. Sugerencias, críticas y aportaciones 1.5. Reconocimientos 2. Imprimir bajo Linux 2.1. Histórico 2.2. Lo básico de imprimir 2.3. Viendo la cola de impresión 2.4. Cancelando un trabajo de impresión 3. Elementos misceláneos 3.1. Formateado 3.2. Las variables de entorno PRINTER 3.3. Imprimiendo ficheros PostScript 3.4. Imprimiendo ficheros TeX 3.5. Imprimir ficheros formateados con troff 4. Respuestas a preguntas frecuentes 5. Resolución de problemas 6. Referencias 7. Colofón 8. Anexo: El INSFLUG ______________________________________________________________________ 1. Introducción * Nota del traductor. A partir de ahora usaré el verbo bajar para traducir el inglés 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 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 Linux Printing Setup HOWTO. 1.1. Histórico de este COMO Esta versión de este COMO es una reescritura completa del original escrito por Grant Taylor grant@god.tufts.edu y Brian McCauley B.A.McCauley@bhan.ac.uk 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. 1.2. Copyrights y Marcas registradas 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. El COMO Usar la Impresora en Linux v1.0 (c) 1995 Matt Foster. 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 HOWTO de Linux, en gregh@sunsite.unc.edu. Puedes hacer un finger a esta dirección para averiguar el número de teléfono e información adicional de contacto. 1.3. Obteniendo los COMOs sobre Imprimir en Linux 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 'sites' de distribución de Linux (como SunSITE, ftp://sunsite.unc.edu/Linux/docs/Howtos/), o directamente desde mi página World Wide Web en http://www.engr.uark.edu/~mwf/pht/ 1.4. Sugerencias, críticas y aportaciones Las preguntas, comentarios o correcciones para este COMO deben ser dirigidas a mwf@engr.uark.edu 1.5. Reconocimientos 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. 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. 3. Elementos misceláneos Esta sección comenta algunos de las cosas de utilidad general que puedes querer saber sobre imprimir bajo Linux. 3.1. Formateado 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 pr. $ pr +4 -d -h"Ph.D. Thesis, 2nd Draft" -l60 tesis.txt | lpr En el ejemplo de antes, pr tomará el fichero tesis.txt y saltaría las primeras tres páginas (+4), pondría la longitud de página en 60 líneas (-l60), doble espacio de la salida (-d), y añadiría la frase "Ph.D. Thesis, 2nd Draft" al principio de cada página (-h). lpr imprimiría entonces la salida de pr. Mira la página del manual para más información acerca de cómo usar pr. 3.2. Las variables de entorno PRINTER Todos los comandos del sistema de impresión de Linux aceptan la opción -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 PRINTER el nombre de la impresora que quieres usar. Esto se hace de diferentes maneras por cada shell. Para el bash puedes hacerlo con $ PRINTER="nombre_de_impresora"; export PRINTER en csh, lo puedes hacer con % setenv PRINTER "nombre_de_impresora" Estos comandos pueden ser situados en tus scripts de login (.profile o .cshrc), o enviados en la línea de comandos. (Leer bash(1) y csh(1) para más información sobre las variables de entorno.) 3.3. Imprimiendo ficheros PostScript Imprimir ficheros PostScript en una impresora que tiene un intérprete PostScript es sencillo; simplemente usa 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 Ghostscript. La responsabilidad de 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 $ gs -dNOPAUSE -sDEVICE=deskjet -sOutputFile=|lpr tesis.ps Date cuenta que en el ejemplo anterior hemos enviado la salida de Ghostscript hacia el comando lpr usando la opción -sOutputFile. Ghostview es un interface de Ghostscript para el Sistema X Window. Te permite previsualizar un fichero PostScript antes de que lo imprimas. Ghostview y Ghostscript pueden ser bajados desde ftp://prep.ai.mit.edu/pub/gnu/ 3.4. Imprimiendo ficheros TeX 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 DeVice-Independent, independiente del dispositivo). Puedes hacerlo con el comando tex(1). Entonces necesitas convertir el dispositivo DVI a PostScript usando dvips. Todo esto debería ser de la siguiente manera cuando lo escribas. $ tex tesis.tex $ dvips tesis.dvi Ahora ya estás preparado para imprimir los ficheros PostScript resultantes tal como se describe anteriormente. 3.5. Imprimir ficheros formateados con troff $ groff -Tascii tesis.tr | lpr o, si lo prefieres, $ groff tesis.tr > tesis.ps Y entonces imprimir el fichero PostScript como se describió anteriormente. 4. Respuestas a preguntas frecuentes P1. Cómo puedo prevenir el efecto de escalera (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 CR/LF (estilo DOS) en lugar de con la secuencia por defecto de los sistemas tipo UNIX (sólo un avance de línea, 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 $ cat tesis.txt | todos | lpr P2. Qué es un filtro? R2. Un filtro es un programa que lee de la entrada estándar (stdin), realiza alguna acción sobre esa entrada, y escribe en la salida estándar (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). 5. Resolución de problemas Esta sección cubre algunos problemas comunes en tu sistema de impresión. Manda sugerencias para esta sección a mwf@engr.uark.edu 6. Referencias 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 USENET, considera lo siguiente: · Está la impresora aceptando trabajos? (usa lpc(8) para verificarlo) · Está la respuesta a tu pregunta cubierta en este COMO , o en el COMO Configurar la Impresión (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 "Estoy teniendo problemas con lpr, por favor ayuden." 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). · Welsh, Matt. Linux Installation and Getting Started (-- Disponible en castellano merced al grupo LuCAS como Linux, Instalación y Primeros Pasos (LIPP), consultar anexo referente a grupos LiNUXeros en España--) Un excelente texto introductorio para el principiante. · Foster, Matt. Linux Printing Setup HOWTO (-- Disponible en castellano igualmente--) , ver sección ``''El suplemento a este COMO; cubre temas tales como preparar y configurar el software de impresión. Páginas del Manual: · cat(1) Concatena e imprime ficheros · dvips(1) Convierte un fichero TeX DVI a PostScript · ghostview(1) Previsualiza ficheros PostScript usando Ghostscript · groff(1) Front-end para el sistema de formateo groff · gs(1) Intérprete/Visor Ghostscript · lpc(8) Programa de control de la impresora de líneas · lpd(8) Demonio del spool de la impresora de líneas · lpq(1) Examina la cola de impresión · lpr(1) Impresor off-line · lprm(1) Elimina trabajos de la cola de impresión · pr(1) Convierte ficheros de texto para imprimir · tex(1) Formateo y tipado de texto Grupos de noticias de USENET · comp.os.linux.*: Muchísima información sobre Linux · comp.unix.*: Debates relacionados con el UNIX 7. Colofón Este COMO fue escrito usando vi, el editor fundamental; la mente humana, la computadora fundamental; e imaginación, la herramienta fundamental. La computadora elegida fue una 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 (-- Cuya guía está disponible en castellano, consultar anexo Grupo LiNUXeros en España--) (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 Linuxdoc-SGML. 8. Anexo: El INSFLUG El INSFLUG forma parte del grupo internacional 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 INSFLUG se orienta preferentemente a la traducción de documentos breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs. :) ), etc. Diríjase a la sede del INSFLUG para más información al respecto. En la sede del INSFLUG encontrará siempre las últimas versiones de las traducciones: www.insflug.org. 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 (mirror) del Insflug más cercanos a Vd., e información relativa a otros recursos en castellano. Francisco José Montilla, pacopepe@insflug.org.