Sistema de Impresión en Linux

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.

Los comentarios están cerrados.