diff --git a/es_ES.ISO8859-1/books/handbook/printing/chapter.sgml b/es_ES.ISO8859-1/books/handbook/printing/chapter.sgml
index 243a3ed58a..105b48591d 100755
--- a/es_ES.ISO8859-1/books/handbook/printing/chapter.sgml
+++ b/es_ES.ISO8859-1/books/handbook/printing/chapter.sgml
@@ -14,7 +14,7 @@
SeanKelly
- Aportado por
+ Escrito por
@@ -35,70 +35,71 @@
Sistema de cola LPDimprimir
- FreeBSD puede ser utilizado para imprimir en una gran variedad
- de impresoras, desde las antiguas impresoras de matriz de punto, hasta
- las más modernas impresoras laser, y todo lo que existe en
- medio de estas, permitiendole crear impresiones de alta calidad, desde
- cualquier aplicación que este utilizando.
+ &os; puede utilizarse para imprimir en una gran variedad
+ de impresoras, desde las antiguas impresoras de matriciales hasta
+ las más modernas impresoras laser y todo lo que existe entre
+ unas y otras, con lo que podrá imprimir con una calidad muy
+ alta desde cualquier aplicación.
- FreeBSD también puede ser configurado para actuar como
- servidor de impresión en una red; en esta modalidad, FreeBSD puede
+ &os; puede usarse también como
+ servidor de impresión en red; &os; puede
recibir peticiones de impresión de una gran cantidad de
- computadoras, incluyendo computadoras corriendo FreeBSD, Windows y MacOS.
- FreeBSD verifica que un trabajo sea impreso a la vez, y puede mantener
- estadísticas sobre que usuario y maquina son los que más
- imprimen, insertar una página de aviso (titulares
- o páginas de encabezado),
- antes de cada trabajo para verificar de quien es cada impresión,
- y más.
+ sistemas, bien sean &os;, &windows; y &macos;.
+ &os; se encarga de los trabajos se vayan imprimiendo uno tras
+ otro y puede mantener estadísticas sobre qué
+ usuarios y qué máquinas están imprimiendo
+ más, generar páginas de «encabezado»
+ para colocarlas antes de cada trabajo y distinguir así
+ de quién es la impresión, etc.
- Al concluir el presente capítulo, usted sabrá:
+ Tras leer el presente capítulo sabrá usted:
- Como configurar la cola de impresión en FreeBSD.
+ Cómo configurar la cola de impresión en &os;.
- Como instalar filtros de impresión, para manejar diferentes
- trabajos especiales, incluyendo la conversión de documentos a
- formatos aptos para la impresora.
+ Cómo instalar filtros de impresión para gestionar
+ diversos trabajos especiales como la conversión de documentos
+ a formatos aptos para su impresora.
- Como habilitar encabezados, o titularess en sus impresiones.
+ Cómo habilitar encabezados en sus impresiones.
- Como imprimir en impresoras conectadas a otras computadoras
+ Cómo imprimir en impresoras conectadas a otras máquinas.
- Como imprimir en impresoras conectadas directamente a la red.
+ Cómo imprimir en impresoras conectadas directamente a la red.
- Como controlar restricciones de impresión, incluyendo
- limitantes en el tamaño de los trabajos de impresión, y
- restringiendo la impresión a ciertos usuarios.
+ Cómo controlar restricciones de impresión,
+ como por ejemplo limitaciones del tamaño de trabajos o
+ evitar que ciertos usuarios puedan imprimir.
- Como mantener estadísticas de impresión, y cuentas
- para el uso de la impresora.
+ Cómo mantener estadísticas de impresión
+ y cuentas de usuario de impresión.
- Como solucionar problemas de impresión comunes.
+ Cómo solucionar los problemas de impresión
+ más comunes.
- Antes de leer este capítulo, usted debería:
+ Antes de leer este capítulo usted debería:
- Saber como compilar e instalar un nuevo kernel
- ().
+ Saber cómo compilar e instalar un kernel
+ personalizado ().
@@ -106,5023 +107,164 @@
Introducción
- Para efecto de poder utilizar impresoras con FreeBSD, es necesario
- que configure estas, para trabajar con el sistema de cola de
- impresión de Berkeley, también conocido como
- Sistema de Cola LPD. Este es el sistema
- de control de impresión estándar en FreeBSD. Este
- capítulo introduce en el sistema LPD,
- llamado comunmente sólo LPD, e
- introduce en la configuración del mismo.
+ Si quiere utilizar impresoras con &os; debe
+ configurarlas de forma que funcionen con el sistema de cola de
+ impresión de Berkeley, también conocido como
+ sistema de cola LPD. Es el sistema
+ de control de impresión estándar en &os;. Este
+ capítulo trata sobre el sistema LPD,
+ al que en adelante nos referiremos simplemente como
+ LPD, y le introducirá
+ en la configuración del mismo.
- Si usted esta familiarizado con el sistema de cola de
- impresión LPD, o bien, con
- algun otro sistema de impresión, puede saltar a la
+ Si está familiarizado con el sistema de cola de
+ impresión LPD, o bien con
+ algún otro sistema de impresión, puede pasar a la
sección Configurando el sistema de
- Cola de Impresión.
+ linkend="printing-intro-setup">Configuración del sistema de
+ cola de impresión.
- La aplicación LPD es
- responsable de controlar todo lo que se refiere a impresión.
- Es responsable de un gran numero de cosas, tales como:
+ LPD se encarga de controlar
+ todo lo relacionado con la impresión, lo que en consecuencia
+ implica encargarse de lo siguiente:
- Controla el acceso a las impresoras conectadas directamente
- al ordenador y las impresoras conectadas a otras
+ Controlar el acceso a las impresoras conectadas directamente
+ al sistema y a impresoras conectadas a otras
máquinas de la red.trabajos de impresión
- Habilita a usuarios, para efecto de que puedan enviar ficheros
- a imprimir; estos envios se conocen como trabajos
+ Permitir que ciertos usuarios puedan enviar ficheros para
+ su impresión; estos envíos reciben el nombre de
+ trabajos
(jobs).
- Previene el hecho de que varios usuarios accesen a la impresora
- al mismo tiempo, al mantener un orden en la cola de impresión
- (queue) para cada impresora.
+ Evita que usuarios diferentes accedan a la impresora al
+ mismo tiempo manteniendo un orden estricto en la cola de
+ impresión de cada impresora.
- Puede imprimir encabezados (header)
- (también conocidos como titularess o
- páginas de aviso), de tal forma que los
- usuarios identifiquen fácilmente sus impresiones, de una pila
- de impresiones.
+ Imprimir encabezados
+ de forma que los usuarios puedan distinguir
+ fácilmente los trabajos que han impreso.Se ocupa de los parámetros para impresoras
- conectadas a puertos seriales.
+ conectadas a puertos serie.
- Puede enviar trabajos de impresión por medio de
- una red, a una cola LPD de una
- maquina remota.
+ Enviar trabajos de impresión a través
+ de una red a la cola LPD de una
+ máquina remota.
- Puede ejecutar filtros especiales para dar formato a
- trabajos que requieren de un manejo de lenguaje de impresión
- diferente o impresoras de diferentes capacidades.
+ Ejecutar filtros especiales para formatear
+ trabajos que requieren la gestión de lenguajes
+ de impresión o impresoras de diferentes
+ características.
- Puede mantener un registro por uso de la impresora.
+ Mantener un registro del uso de la impresora.
- Por medio de un fichero de configuración
- (/etc/printcap), y por medio de programas
- especiales de filtraje, usted puede habilitar al sistema
- LPD para hacer todo o una parte de
- lo mencionado anteriormente, para una gran variedad de
- impresoras.
+ Gracias al fichero de configuración
+ (/etc/printcap) y mediante programas
+ especiales de filtrado puede hacerse que el sistema
+ LPD cumpla todas las tareas citadas o
+ si lo prefiere solo unas cuantas; además puede hacerlo
+ en una gran variedad de impresoras.
- ¿Por qué utilizar una Cola de Impresión?
+ ¿Por qué utilizar una cola de impresión?
- Si usted es la única persona que hace uso de su sistema,
- probablemente se pregunte por que preocuparse por utilizar un sistema
- de cola de impresión, cuando no requiere acceso a controles,
- encabezados o cuentas para imprimir. Mientras que es posible habilitar
- un acceso a su impresora de forma directa, usted debe utilizar el
- sistema de cola de impresión, por las siguientes razones:
+ Si es usted la única persona que usa el sistema
+ se estará por qué preocuparse de utilizar un sistema
+ de cola de impresión si es evidente que no necesita
+ restricciones de acceso, encabezados ni cuentas de
+ impresión. Puede utilizar el acceso directo a
+ impresión, pero debería utilizar una cola
+ de impresión por las siguientes razones:
- El sistema LPD opera los trabajos de
- impresión es segundo plano; esto es, que usted no tiene que
- esperar a que los datos sean pasados a la impresora para continuar
- trabajando.
+ El sistema LPD ejecuta los trabajos
+ en segundo plano, esto es, no tiene que esperar a que la
+ impresora procese los datos para seguir trabajando.TeX
- Convenientemente LPD puede ejecutar
- un trabajo para que sea filtrado, para añadir caracteres de
- día/hora o bien convertir un fichero con formato especial
- (tal como ficheros TeX DVI) a un formato que la impresora entiende.
- De tal manera que usted no tenga que hacer estos pasos manualmente.
-
+ LPD puede procesar un
+ trabajo de forma que pase por filtros, añadir cabeceras
+ de fecha y hora o convertir un fichero de formato especial
+ (por ejemplo &tex; DVI) a un formato que la impresora entienda
+ y que no tenga usted que ocuparse de ello
+ manualmente.
- Muchos programas, libres y comerciales, proveen de un sistema
- de impresión que esta basado en el sistema de cola de
- impresión. Al configurar su sistema de cola de
- impresión, usted podrá soportar otro software que
- instale en el futuro o el que tiene actualmente.
+ Muchos programas, tanto libres como comerciales,
+ desde los que se puede imprimir están hechos pensando
+ en que haya disponible un sistema de impresión.
+ Una vez que configure un sistema de colas podrá utilizar
+ software que ya tiene instalado y preparar el campo para
+ el que instale en el futuro.
- Configuración Básica
+ Configuración básica
- Para efecto de utilizar impresoras con el sistema de
- cola LPD, es necesario que se instale
- físicamente la impresora y el software de
- LPD. Este documento describe estos dos
- niveles de configuración:
+ Pendiente de traducción.
-
-
- Vea la sección
- Configuración Simple de una Impresora, para aprender
- a conectar una impresora, indicarle a LPD
- como comunicarse con ella, e imprimir ficheros de texto plano en
- dicha impresora.
-
-
- Vea la sección
- Configuración Avanzada de una Impresora, para ver
- como imprimir gran variedad de formatos especiales, imprimir
- encabezados, para imprimir por medio de una red, controlar acceso
- a las impresoras y crear cuentas de impresión.
-
-
+
-
- Configuración Simple de una Impresora
- La presente sección le mostrará como instalar
- físicamente la impresora, así como el software de
- LPD para usar dicha impresora.
- Le mostrará lo básico de:
-
-
- La sección
- Instalación Física, le da algunos consejos
- sobre como instalar su impresora a los puertos de su
- computadora.
-
+
+ Configuración avanzada de impresoras
-
- La sección
- Instalación de Software, le muestra como instalar
- y configurar el fichero de configuración de
- LPD (/etc/printcap).
-
-
-
+ Pendiente de traducción
- Si usted esta instalando una impresora que utiliza protocolos de
- red para imprimir en lugar de una conexión directa a su
- puerto serial o paralelo, vea la sección Impresoras con Interfaces
- de Red para Secuencia de Datos.
-
- Aun cuando esta sección se llama Configuración
- Simple de una Impresora, puede resultar un tanto
- complicada. Conseguir que su impresora trabaje con su ordenador y con
- la cola de impresión LPD es la parte
- más compleja. Las opciones avanzadas, tal como imprimir
- encabezados y crear cuentas, son sencillas una vez que su impresora
- está trabajando.
-
-
- Instalación Física
-
- Esta sección le informa sobre varias fomras en que
- puede usted conectar la impresora a su PC. Se describen los tipos
- de puertos y cables, así como la configuración que
- debe tener en su kernel, para permitir que FreeBSD se pueda
- comunicar con su impresora.
-
- Si ya ha conectado su impresora y ha impreso exitosamente
- trabajando en otro sistema operativo, probablemente desee brincar
- a la sección Configuración
- del Software.
-
-
- Puertos y Cables
-
- Practicamente cualquier impresora que adquiera hoy en día
- para PC, cuenta con soporte para una o ambas interfaces que se
- presentan a continuación:
-
-
-
- impresora
- serial
-
-
- La interfaz serial, utiliza el puerto
- serial de su computadora para enviar datos a la impresora. La
- interfaz serial es común en la industria de la
- computación y los cables existen disponibles facilmente
- e incluso sencillos de hacer. En ocasiones las interfaces seriales
- requieren de cables especiales y posiblemente cierta
- configuración compleja de opciones de comunicación.
-
-
-
-
- impresora
- en paralelo
-
-
- La interfaz en paralelo utiliza el puerto
- paralelo de su computadora para enviar datos a la impresora. Las
- interfaces en paralelo son comunes en el mercado de las PCs. Los
- cables son fáciles de conseguir, pero un poco más
- complicados de hacer a mano. Normalmente no existen opciones de
- comunicación, haciendo su configuración mucho
- más sencilla.
-
-
- centronics
- impresoras en paralelo
-
- En ocasiones las interfaces en paralelo son conocidas como
- interfaces Centronics, en virtud del tipo de
- conector en la impresora.
-
-
-
- En términos generales los interfaces seriales son más
- lentos que las interfaces en paralelo. Por otro lado los interfaces en
- paralelo sólo ofrecen comunicación de una vía (de
- la computadora a la impresora), mientras que los seriales ofrecen de
- dos vías. Gran cantidad de recientes impresoras y puertos
- paralelos, pueden comunicarse en ambas direcciones bajo FreeBSD,
- cuando se utiliza un cable compatible con IEEE1284.
-
- PostScript
- Normalmente, el único escenario donde requiere de una
- comunicación de ambas vías con la impresora, es
- cuando la impresora maneja PostScript. Las impresoras que manejan
- PostScript detallan gran cantidad de información. De hecho,
- los trabajos PostScript, son programas enviados a la impresora; los
- cuales no requieren de papel y pueden enviar la salida directamente
- a la computadora. PostScript utiliza una comunicación de dos
- vías, para informar al ordenador de los problemas que se
- puedan presentar, tal como errores en los programas PostScript o
- papeles atascados. Sus usuarios pueden apreciar este tipo de
- información. Más allá de esto, la mejor forma
- de contabilizar con impresoras PostScript, es utilizando dos vías
- de comunicación: usted solicita a la impresora el conteo de
- impresiones (esto es, todas las impresiones hechas en su vida),
- posteriormente envia el trabajo del usuario y repite la solicitud
- de conteo. Resta los dos valores obtenidos y sabra cuanto debe
- cobrar al usuario por uso de papel.
-
-
-
- Puertos Paralelos
-
- Para conectar una impresora usando el puerto en paralelo,
- conecte el cable Centronics entre la impresora y la
- computadora. Las instrucciones que vienen con su impresora,
- con su computadora o ambas, deben ser una buena guía
- para llevar esto a cabo.
-
- Recuerde cual es el puerto en paralelo que utilizó en
- su computadora. Para FreeBSD, el primer puerto paralelo es
- /dev/lpt0, el segundo puerto es
- /dev/lpt1 y así sucesivamente.
-
-
-
- Puertos Seriales
-
- Para conectar una impresora, usando el puerto serial, conecte
- el cable apropiado entre la impresora y el ordenador. Las
- instrucciones que vienen con su impresora, computadora o
- ambas, deben ser suficientes para llevar esto a cabo.
-
- Si usted no esta seguro de cual es el cable serial
- apropiado, puede intentar alguna de las siguientes
- alternativas:
-
-
-
- Un cable de módem conecta cada pin del
- conector de un extremo, con el conector del otro extremo, de manera
- directa. Este tipo de cable también se le conoce como cable
- DTE-a-DCE.
-
-
- cable de módem-nulo
-
- Un cablde de módem-nulo conecta de
- fomra directa algunos pins, algunos otros son compartidos (envia
- datos para recibir datos, por ejemplo), y algunos otros internamente
- son deshabilitados en los conectores. Este tipo de cable
- también se le conoce como cable DTE-a-DTE.
-
-
-
- Un cable de impresora serial, sólo
- es requerido por algunas impresoras poco comunes, es similar al
- cable de módem-nulo, pero este envia señales a su
- contraparte, en lugar de que internamente se deshabilite.
-
-
-
- velocidad de baudio
- paridad
- protocolo de control de flujo
- También es necesario que configure los parámetros de
- comunicación para la impresora, nomralmente esto lo realiza
- desde los controles de la misma o interruptores DIP en la impresora.
- Selecciones el bps (bits por segundo y en ocasiones
- llamado velocidad de baudio) más alto, que
- tanto su ordenador como impresora soporten. Seleccione 7 u 8 bits de
- datos; la paridad establezcala en: ninguna, igual o aleatoria y 1 o 2
- en bits de paro. También seleccione un protocolo para el
- control de flujo, que puede ser: ninguno o XON/XOFF (también
- conocido como in-band o software).
- Recuerde las opciones que haya seleccionado en esta parte,
- para la configuración del software, que veremos en la
- siguiente sección.
-
-
-
-
- Configuración del Software
-
- La presente sección describe la configuración necesaria
- para poder imprimir usando el sistema de cola
- LPD, bajo FreeBSD.
-
- Aqui presentamos un resumen de los pasos necesarios:
-
-
-
- Configure su kernel, si es necesario, para habilitar el uso del
- puerto al que esta conectado su impresora. En la sección
- Configuración del Kernel
- encontrará toda la información necesaria, para llevar
- esto a cabo.
-
-
-
- Establecer en modo de comunicación el puerto en paralelo,
- si es que esta usando dicho puerto. La sección Estableciendo el Modo de
- Comunicación en el Puerto en Paralelo le da detalles
- al respecto.
-
-
-
- Compruebe si el sistema operativo puede enviar datos a la
- impresora. La sección Verificando la Comunicación con la
- Impresora le puede dar detalles sobre como hacer esto.
-
-
-
- Configurar LPD para su uso con la
- impresora, modificando el fichero /etc/printcap.
- Posteriormente en este capítulo, veremos como se lleva a
- cabo esto.
-
-
-
-
- Configuración del Kernel
-
- El kernel del sistema operativo es compilado para trabajar con
- ciertos dispositivos. El puerto serial o paralelo de su computadora
- es parte de los dispositivos que debe incluirse en la compilación
- del kernel. Por lo tanto, puede que sea necesario recompilar el kernel
- incluyendo el soporte para el o los puertos serial y/o paralelo, si
- es que el kernel no cuente ya con dicho soporte.
-
- Para averiguar si el kernel que tiene instalado actualmente, cuenta
- con soporte para el puerto serial, teclee lo siguiente:
-
- &prompt.root; dmesg | grep sioN
-
- Donde N es el numero de puerto serial,
- comenzando desde cero. Si observa una salida similar a la
- siguiente:
-
- sio2 at 0x3e8-0x3ef irq 5 on isa
-sio2: type 16550A
-
- entonces su kernel ya cuenta con soporte para el puerto.
-
- Para averiguar si su kernel cuenta con soporte para el puerto en
- paralelo, teclee:
-
- &prompt.root; dmesg | grep lptN
-
- Donde N es el numero de puerto serial,
- comenzando desde cero. Si observa una salida similar a la
- siguiente:
-
- lpt0 at 0x378-0x37f on isa
-
- entonces su kernel cuenta con soporte para el puerto.
-
- Puede que sea necesario recompilar su kernel, para efecto de que
- su kernel cuente con el soporte para el puerto serial o paralelo que
- este utilizando su impresora.
-
- Para añadir soporte para el puerto serial, vea la
- sección en Configuración del Kernel. Para añadir
- soporte para el puerto paralelo, vea esa sección
- y la siguiente sección.
-
-
-
-
- Añadiendo Dispositivos de Puertos en
- /dev
-
- Aun cuando el kernel cuente con el soporte de comunicaciones para
- puertos seriales o en paralelo, aun deberá de contar con las
- interfaces necesarias en su sistema, por medio de las cuales el sistema
- puede enviar y recibir los datos. En el directorio
- /dev es donde encontrará dichas interfaces
- en su sistema.
-
- Para añadir una entrada, para sus puertos, en el
- directorio /dev deberá:
-
-
-
- Cambiar de usuario a root con el comando
- &man.su.1;. Ingresar la contraseña de root
- cuando le sea solicitada.
-
-
-
- Cambiar su posición al directorio /dev
- de la siguiente forma:
-
- &prompt.root; cd /dev
-
-
-
- Teclear:
-
- &prompt.root; ./MAKEDEV PUERTO
-
- Donde PUERTO es la entrada del
- dispositivo que desea crear. Puede utilizar
- lpt0 para el primer puerto en paralelo,
- lpt1 para el segundo puerto, y así
- sucesivamente, para el primer puerto serial puede utilizar
- ttyd0, y para el segundo
- ttyd1 y así sucesivamente.
-
-
-
- Teclee:
-
- &prompt.root; ls -l PUERTO
-
- para asegurarase de que la entrada del dispositivo correspondiente
- se ha creado.
-
-
-
-
- Configurando el modo de Comunicación para el
- Puerto Paralelo
-
- Cuando utiliza el puerto paralelo, puede seleccionar si FreeBSD va
- a utilizar un modo de comunicación por medio de interruptores
- o a petición, con la impresora.
-
-
-
- El método por medio de interruptores
- es el método que utiliza el kernel GENERICO de FreeBSD. Con
- este método el sistema operativo utiliza un IRQ para
- determinar si la impresora esta lista para recibir datos.
-
-
-
- El método a petición le
- indica al sistema operativo que constantemente le pregunte a
- la impresora si esta lista para recibir datos. Una vez que
- ha obtenido respuesta, el kernel comienza a transferir los
- datos.
-
-
-
- Normalmente el método por medio de interruptores es más
- rápido, pero nos ocupa un preciado IRQ. Se sabe que algunas
- impresoras nuevas de HP no funcionan muy bien con este método
- aparentemente debido (sin que aun se entienda el por que) a un
- problema de tiempos. Estas impresoras necesitan el método a
- petición. Es conveniente que utilice el método que
- se ajuste a sus necesidades. Algunas impresoras funcionan en ambos
- métodos, pero son dolorosamente lentas usando el método
- por medio de interruptores.
-
- Para establecer el método de comunicación, puede
- hacerlo de dos formas: configurando su kernel o bien, utilizando
- el programa &man.lptcontrol.8;.
-
- Para establecerlo configurando su kernel,
- deberá:
-
-
-
- Editar su fichero de configuración del kernel. Busque
- una línea que contenga lpt0, si esta
- no existe añadala. Si esta configurando su segundo puerto
- en paralelo, use lpt1. Para un tercer puerto
- paralelo utilice lpt2 y así
- sucesivamente.
-
-
-
- Si desea utilizar el modo por medio de interruptor, añada
- el especificador de irq:
-
- device lpt0 at isa? port? tty irq N vector lptintr
-
- Donde N es el numero de IRQ del puerto
- paralelo de su computadora.
-
-
-
- Si desea utilizar el modo a petición, no necesita agregar
- el especificador de irq:
-
- device lpt0 at isa? port? tty vector lptintr
-
-
-
-
-
- Guarde el fichero. Posteriormente termine el proceso de
- configuración, recompilación e instalación del
- kernel, después reinicie el sistema. Vea Configuración del Kernel para
- más información al respecto.
-
-
-
- Para establecer el modo de comunicación
- usando &man.lptcontrol.8;:
-
-
-
- Teclee:
-
- &prompt.root; lptcontrol -i -d /dev/lptN
-
- para indicar el modo por medio de interruptor para
- lptN.
-
-
-
- Teclee:
-
- &prompt.root; lptcontrol -p -d /dev/lptN
-
- para establecer el modo a petición para
- lptN.
-
-
-
- Estos comandos los podría incluir en su fichero
- /etc/rc.local para que el sistema reconozca
- estos modos cada vez que inicia el sistema. Vea &man.lptcontrol.8; para
- más información al respecto.
-
-
-
- Verificando la Comunicación de la Impresora
-
- Antes de proceder a configurar el sistema de cola de
- impresión, es conveniente verificar que nuestro sistema
- operativo pueda enviar datos exitosamente a nuestra impresora. Es
- mucho más sencillo detectar errores cuando se configura por
- separado el método de comunicación y el sistema de
- cola de impresión.
-
- Para probar nuestra impresora, enviaremos un poco de texto. Para
- impresoras que inmediatamente pueden imprimir caracteres, el programa
- &man.lptest.1; es perfecto: este genera todos los 96 caracteres ASCII
- imprimibles en 96 líneas.
-
- PostScript
- Para impresoras PostScript (o de otro lenguaje de impresión),
- vamos a necesitar una prueba más sofisticada. Un pequeño
- programa PostScript, como el siguiente, será suficiente:
-
- %!PS
-100 100 moveto 300 300 lineto stroke
-310 310 moveto /Helvetica findfont 12 scalefont setfont
-(Is this thing working?) show
-showpage
-
- El código PostScript descrito puede guardarse en un fichero y
- usarse en el ejemplo que aparece en la siguiente sección.
-
- PCL
-
- Cuando este documento se refiere a lenguaje de impresión,
- se asume lenguaje como PostScript y no el PCL de Hewlett Packard. Aun
- cuando PCL tiene gran funcionalidad, pueden acabar mezclandose
- caracteres de escape con el texto plano, y ese es el tipo de lenguaje
- de impresión, para el cual necesitaremos realizar ajustes
- especiales.
-
-
-
- Verificando Impresoras en Paralelo
-
-
- impresora
- paralelo
-
- Esta sección le indica como comprobar la comunicación
- de una impresora en paralelo, bajo FreeBSD.
-
- Para probar una impresora en paralelo:
-
-
-
- Cambiar a root con el comando &man.su.1;
-
-
-
- Enviar datos a la impresora.
-
-
-
- Si la impresora puede imprimir texto plano, usar el comando
- &man.lptest.1;. Teclee:
-
- &prompt.root; lptest > /dev/lptN
-
- Donde N es el numero del puerto en
- paralelo, comenzando desde cero.
-
-
-
- Si la impresora utiliza PostScript u otro lenguaje de
- impresión, entonces envie un pequeño programa a
- la impresora. Teclee:
-
- &prompt.root; cat > /dev/lptN
-
- Posteriormente, línea por línea teclee el
- programa, cuidadosamente en virtud de que no
- puede editar una línea ya que presionado la tecla
- RETURN o ENTER. Una vez que
- ha terminado de introducir el programa, presiona las teclas
- CONTROL+D, o cualquier tecla que funcione para
- efecto de especificar un fin de fichero.
-
- Otra manera de hacer esto, es guardar el programa en un
- fichero y teclear:
-
- &prompt.root; cat fcihero > /dev/lptN
-
- Donde fichero es el nombre del
- fichero que le dio al programa, que desea enviar a imprimir.
-
-
-
-
-
- En este punto debe ver alguna impresión. No se preocupe si
- el texto no aparece bien; es algo que arreglaremos más
- adelante.
-
-
-
- Verificando una Impresora Serial
-
-
- impresora
- serial
-
- Esta sección explica como verificar la comunicación,
- bajo FreeBSD, de una impresora conectada al puerto serial.
-
- Para probar una impresora conectada el puerto
- serial:
-
-
-
- Cambiar a root usando &man.su.1;.
-
-
-
- Edite el fichero /etc/remote.
- Añadiendo la siguiente entrada:
-
- printer:dv=/dev/puerto:br#bps:pa=paridad
-
- bits-por-segundo
- puerto serial
- paridad
- Donde puerto es el dispositivo usado
- por el puerto serial (ttyd0,
- ttyd1, etc.), bps se
- refiere a la velocidad, en bits-por-segundo, a la que se comunica la
- impresora, y paridad es la paridad
- requerida por la impresora (ya sea even,
- odd, none o
- zero).
-
-
- N de T: Las opciones de paridad se han dejado en inglés,
- en virtud de que así deberán especificarse en la
- configuración.
-
-
- He aqui un ejemplo para una impresora conectada por medio de un
- puerto serial, el tercer puerto a 19200 bps, sin paridad:
-
- printer:dv=/dev/ttyd2:br#19200:pa=none
-
-
-
- Conectarse a la impresora por medio de &man.tip.1;.
- Teclee:
-
- &prompt.root; tip printer
-
- Si este paso no funciona, edite nuevamente el fichero
- /etc/remote e intente utilizando
- /dev/cuaaN
- en lugar de utilizar
- /dev/ttydN.
-
-
-
- Envio de datos a la impresora.
-
-
-
- Si la impresora puede imprimir texto plano, entonces utilice
- &man.lptest.1;. Teclee:
-
- &prompt.user; $lptest
-
-
-
- Si es una impresora PostScript o que utilice otro lenguaje,
- entonces envie un pequeño programa a la impresora. Teclee
- el programa, línea por línea,
- muy cuidadosamente ya que algunas teclas, como
- la de retroceso son significativas para la impresora. Puede ser
- que también necesite un caracter especial para marcar el
- fin-de-fichero y que la impresora sepa que ha recibido el
- programa completo. Para impresoras PostScript, utilice las teclas
- CONTROL+D.
-
- Otra variante es, guardar el programa en un fichero y teclear:
-
-
- &prompt.user; >fichero
-
- Donde fichero es el nombre del
- fichero que contiene el programa. Una vez que &man.tip.1; envia
- el programa, presione la tecla correspondiente a fin de
- archivo.
-
-
-
-
-
- Usted debe ver algo de impresión. No se preocupe si el
- texto no se ve del todo bien; posteriormente arreglaremos esto.
-
-
-
-
-
- Habilitando la Cola de Impresión: El fichero
- /etc/printcap
-
- En este punto, su impresora debe estar conectada, su kernel
- configurado con el soporte de comunicación, y debe haber podido
- enviar datos a su impresora. Ahora estamos listos para configurar
- LPD para controlar el accesos a nuestra
- impresora.
-
- Para efecto de configurar LPD, es
- necesario editar el fichero /etc/printcap. El
- sistema de cola de LPD lee este fichero
- cada vez que se utiliza, de tal forma que los cambios que se realicen
- en este fichero, surten efecto inmediatamente.
-
-
- impresora
- características
-
- El formato que mantiene el fichero &man.printcap.5; es muy
- concreto. Utilice su editor de texto favorito para hacer cambios
- en /etc/printcap. El formato es idéntico
- al que guardan los ficheros que describen capacidades, tal como
- /usr/share/misc/termcap y
- /etc/remote. Para ver mayor información
- con respecto al formato, vea la página de ayuda &man.cgetent.3;.
-
-
- De un modo simple, la configuración de una cola consiste en
- los siguientes pasos:
-
-
-
- Seleccione un nombre (y algunos alias convenientes) para la
- impresora, y especifíquelos en el fichero
- /etc/printcap ; vea la sección
- Nombrando la Impresora
- para más información al respecto.
-
-
- páginas encabezado
-
- Desactive el encabezado de páginas (el cual esta
- activado por default), al insertar la característica
- sh; vea la sección Eliminando las Páginas
- de Encabezados para más información al
- respecto.
-
-
-
- Cree un directorio para la cola, y especifique su
- ubicación con la característica
- sd; vea la sección Creando el Directorio de
- la Cola para mayor información.
-
-
-
- Ubique el dispositivo /dev a
- usar por la impresora e indiquelo en el fichero
- /etc/printcap con la característica
- lp; vea la sección Identificando el Dispositivo de
- Impresión para mayor información. Así
- mismo, si la impresora esta conectada a un dispositivo serial,
- utilice las características fs,
- fc, xs y xc
- para establecer los parámetros de comunicación; esto
- se detalla en la sección Configurando los Parámetros de
- Comunicación de la Cola de Impresión.
-
-
-
- Instalar un filtro de entrada de texto plano; vea la
- sección Instalando un
- Filtro de Texto para más detalles.
-
-
-
- Probar la configuración, al imprimir algo con el comando
- &man.lpr.1;. Para más detalles vea las secciones Probando la Configuración y
- Resolución de
- Problemas.
-
-
-
-
-
- Las impresoras basadas en un lenjuaje, tal como PostScript, no
- pueden imprimir texto plano directamente. Los pasos de
- configuración mencionados anteriormente, así como las
- siguientes secciones, asumen que si usted cuenta con una impresora
- de este tipo, sólo va a imprimir ficheros que la impresora
- puede manejar.
-
-
- Normalmente los usuarios esperan poder imprimir texto plano a
- cualquier impresora conectada al sistema. Los programas que usan como
- interfaz de impresión a LPD, asumen
- lo mismo. Si usted cuenta con una impresora basada en lenguaje y desea
- poder imprimir en el lenguaje de la impresora así como
- texto plano, es importante considerar que debe añadir
- un paso adicional a los mencionados anteriormente: instalar un programa
- de conversión detexto-plano-a-PostScript (u otro lenguaje). La
- sección Acomodando
- Trabajos de Texto Plano en Impresoras PostScript le indica como
- debe hacerse esto.
-
-
- Nombrando la Impresora
-
- El primer paso (sencillo) es escojer un nombre para su impresora.
- En realidad no importa mucho si este nombre es funcional o un tanto
- abstracto, en virtud de que usted podrá asignar alias para la
- impresora.
-
- Cuando menos una de las impresoras señaladas en el fichero
- /etc/printcap debe contar con el alias
- lp. Este es el nombre de la impresora por default.
- Si los usuarios del sistema no cuentan con la variable de entorno
- PRINTER o bien no especifican en la línea de
- comando, al ejecutar cualquier comando de LPD,
- el nombre de la impresora a utilizar, entonces lp
- será la impresora por default a utilizar.
-
- También, como práctica común, se suele asignar
- el último alias a la descripción completa de la
- impresora, incluyendo marca y modelo.
-
- Una vez que ha seleccionado un nombre y algunos aliases, ingreselos
- en el fichero /etc/printcap. El nombre de la
- impresora deberá colocarse en la columna izquierda
- máxima. Separe cada alias con una barra vertical e incluya
- dos puntos después del último alias.
-
- En el siguiente ejemplo, comenzaremos con el esqueleto del
- fichero /etc/printcap, que define dos
- impresoras (una de matriz Diablo 630 y una impresora laser
- PostScript Panasonic KX-P4455):
-
- #
-# Fichero /etc/printcap para el host rose
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:
-
- En este caso, la primer impresora se llama
- rattan y tiene como aliases
- line, diablo,
- lp, y Diablo 630 Line
- Printer. Dado que tiene el alias
- lp, tambié se considera la impresora por
- default. La segunda impresora se llama
- bamboo, y cuenta con los aliases
- ps, PS,
- S, panasonic, y
- Panasonic KX-P4455 PostScript v51.4.
-
-
-
- Eliminando las Páginas de Encabezados
-
- imprimir
- páginas de encabezado
-
-
- El sistema de cola de impresión
- LPD, por default, imprimirá una
- página de encabezado para cada trabajo. Esta
- página contiene el nombre del usuario que solicitó la
- impresión, el host del cual se envio el trabajo y el nombre
- del trabajo, todo en letras grandes. Desafortunadamente, todo esta
- impresión extra, interfiere con el trabajo de depuración
- de la configuración básica de la impresora, por lo que
- vamos a deshabilitar esta opción.
-
- Para eliminar las páginas de encabezado, añada
- shen la entrada de la impresora del fichero
- /etc/printcap. He aqui un ejemplo del fichero
- /etc/printcap con sh
- incluida en él:
-
- #
-# FIchero /etc/printcap para el host rose - sin paginas de encabezado
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:
-
- Note como hemos utilizado el formato correcto: donde la primer
- línea comienza en la primer columna de la izquierda y las
- líneas subsecuentes estan cuentan con sangría de un
- solo tabulador (TAB). Cada línea termina con
- una diagonal invertida, excepto la última.
-
-
-
- Creando el Directorio de la Cola
- cola de impresión
- trabajos de impresión
-
- El siguiente paso en la configuración de la cola, es crear el
- directorio de cola de impresión, un
- directorio en el cual residen los trabajos de impresión hasta que
- son llevados a cabo, y donde otros ficheros de soporte se
- localizan.
-
- Dada la naturaleza variante de los directorios de cola, es costumbre
- que estos se localicen en /var/spool. No es
- necesario respaldar el contenido de estos directorios, ya que rehacerlos
- es tan simple como ejecutar &man.mkdir.1;.
-
- También es una buena costumbre crear el directorio con el
- mismo nombre que tenga la impresora, como se muestra a
- continuación:
-
- &prompt.root; mkdir /var/spool/nombre-impresora
-
- Aunque si cuenta con bastantes impresoras en su red, puede que
- desee crear todos los directorios de cola, bajo un sólo
- directorio reservado para todas aquellas que imprimen usando
- LPD. En nuestro ejemplo haremos esto con
- nuestras dos impresoras de ejemplo
- rattan y
- bamboo:
-
- &prompt.root; mkdir /var/spool/lpd
-&prompt.root; mkdir /var/spool/lpd/rattan
-&prompt.root; mkdir /var/spool/lpd/bamboo
-
-
- Si a usted le preocupa la privacidad de los trabajos que
- imprimen los usuarios, puede que desee proteger el directorio
- de cola, de tal forma que no sea de acceso público. Los
- directorios de cola deben pertenecer
- al usuario daemon y grupo daemon, y debe contar con permisos de
- lectura, escritura y navegación por estos y nadie
- más. Haremos esto para nuestros ejemplos:
-
- &prompt.root; chown daemon:daemon /var/spool/lpd/rattan
-&prompt.root; chown daemon:daemon /var/spool/lpd/bamboo
-&prompt.root; chmod 770 /var/spool/lpd/rattan
-&prompt.root; chmod 770 /var/spool/lpd/bamboo
-
-
- Finalmente, debe indicar a LPD acerca
- de estos directorios, en el fichero
- /etc/printcap. Esta indicación se hace
- por medio de la característica sd :
-
- #
-# Fichero /etc/printcap para el host rose - incluyendo directorios de cola
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:
-
- Notese que el nombre de la impresora inicia en la primer columna
- mientras que el resto debe contar con sangría de un tabulador y
- todas las líneas, excepto la última, terminar con una
- diagonal invertida.
-
- En el caso de que usted no especifique directorio alguno con
- sd, el sistema de cola usara como default
- /var/spool/lpd .
-
-
-
- Identificando el Dispositivo de Impresión
-
- En la sección Añadiendo Dispositivos de
- Puertos en /dev, vimos que dispositivo bajo
- el directorio /dev iba a utilizar FreeBSD para
- comunicarse con la impresora. Ahora le indicaremos esto a
- LPD. Cuando el sistema de cola tiene un
- trabajo por imprimir, abrirá el dispositivo especificado en
- nombre del programa filtro (reponsable de pasar los datos a la
- impresora).
-
- Para efecto de indicar esto, en la entrada de la impresora en
- el fichero /etc/printcap, usaremos la
- característica lp.
-
- En el ejemplo que hemos visto, asumiremos que
- rattan esta conectada al primer puerto paralelo, y
- bamboo en el sexto puerto serial; he aqui lo que
- tendriamos que añadir a /etc/printcap:
-
- #
-# Fichero /etc/printcap para el host rose - identificando los dispositivos a usar
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:
-
- Si usted no indica la característica lp
- en el fichero /etc/printcap,
- LPD usará el dispositivo
- /dev/lp por default. El dispositivo
- /dev/lp actualmente no existe en FreeBSD.
-
- Si la impresora que esta instalando esta conectada a un puerto
- en paralelo, puede saltar la siguiente parte y dirijirse a la
- sección Instalando un
- Filtro de Texto. De otra manera, asegurese de seguir las
- instrucciones de la siguiente sección.
-
-
-
- Configurando los Parámetros de Comunicación
- del la Cola de Impresión
-
- impresora
- serial
-
-
- Para impresoras conectadas a un puerto serial,
- LPD puede especificar la velocidad de
- bps, la paridad, y otros parámetros de comunicación
- en lugar del programa filtro que manda los datos a la
- impresora. Esto es una ventaja dado lo siguiente:
-
-
-
- Le permite probar diferentes parámetros de
- comunicación, con el simple hecho de modificar el fichero
- /etc/printcap; con lo cual no es necesario
- recompilar el programa filtro.
-
-
-
- Habilita el sistema de cola de impresión para hacer
- uso del mismo programa filtro, para varias impresoras que pueden
- contar con diferentes configuraciones de comunicación.
-
-
-
- Para efecto de controlar los parámetros de
- comunicación por medio de un puerto serial, con la
- característica lp, en el fichero
- /etc/printcap, utilizarmos lo
- siguiente:
-
-
-
- br#bps-velocidad
-
-
- Establece la velocidad de comunicación del dispositivo,
- donde bps-velocidad puede ser 50, 75, 110,
- 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600,
- 19200, o 38400 bits-por-segundo.
-
-
-
-
- fc#limpiar-bits
-
-
- Limpia la marca de bits, donde
- limpiar-bits afecta en la estructura de
- sgttyb una vez que se ha entablado la
- comunicación con el dispositivo.
-
-
-
-
- fs#establece-bits
-
-
- Establece la marca de bits
- establece-bits en la estructura de
- sgttyb.
-
-
-
-
- xc#limpia-bits
-
-
- Limpieza del modo bits, de forma local
- limpia-bits una vez que se ha abierto
- la comunicación con el dispositivo.
-
-
-
-
- xs#establece-bits
-
-
- Establece el modo bits, de forma local
- establece-bits.
-
-
-
-
- Para mayor información con respecto al uso de las
- caractrística de bits:
- fc, fs,
- xc, y xs,
- vea el fichero
- /usr/include/sys/ioctl_compat.h.
-
- Cuando LPD abre el canal de
- comunicación con el dispositivo especificado por
- lp, lee la marca de bits en la estructura
- sgttyb; limpia cualquier bit en la
- característica fc y establece bits
- en la característica fs, para
- posteriormente aplicar la configuración resultante. El
- mismo procedimiento se sigue en el modo de bits local.
-
- Ahora añadamos la impresora de ejemplo que esta
- conectada al puerto serial numero seis. La velocidad de bps la
- estableceremos en 38400 bps. Para las marcas de bits usaremos
- TANDEM,
- ANYP, LITOUT,
- FLUSHO, y PASS8.
- Para el modo local de bits, estableceremos
- LITOUT y PASS8 :
-
- bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820:
-
-
-
- Instalando un Filtro de Texto
- filtros de impresión
-
- Ahora estamos listos para indicarle a LPD
- que filtro de texto debe utilizar para enviar los trabajos a la
- impresora. Un filtro de texto, también
- conocido como filtro de entrada, es un
- programa que ejecuta LPD cuando tiene
- un trabajo para imprimir. Cuando LPD
- ejecuta el filtro de texto para una impresora, configura de manera
- estandar la entrada para el trabajo a imprimir, y la salida
- estandar a la impresora indicada en la característica
- lp. El filtro espera leer el trabajo de la
- entrada estandar, hacer el trabajo de traducción necesario
- para la impresora, y enviar los resultados a la salida estandar, lo
- cual será impreso. Para mayor información en los
- filtros de texto, vea la sección Como Trabajan los Filtros.
-
-
- En el caso de nuestro ejemplo, el filtro de texto puede ser un
- pequeño script que sólo ejecute
- /bin/cat para enviar el trabajo a la
- impresora. FreeBSD cuenta con otro filtro llamado
- lpf que controla los caracteres de regreso y
- subrayado en impresoras que pueden presentar problemas con
- dichos caracteres. Y desde luego, usted puede utilizar cualquier
- filtro que desee. El filtro lpf se describe a
- detalle en la sección titulada lpf: un Filtro de Texto.
-
- En primer lugar hagamos del script
- /usr/local/libexec/if-simple un simple filtro
- de texto. Introduzca el siguiente texto en un fichero, con su
- eitor de texto favorito:
-
- #!/bin/sh
-#
-# if-simple - Filtro de texto simple para lpd
-# Instalado en la ruta /usr/local/libexec/if-simple
-#
-# Simplemente copia stdin a stdout. Ignora todos los argumentos del filtro.
-
-/bin/cat && exit 0
-exit 2
-
- Haga el fichero ejecutable:
-
- &prompt.root; chmod 555 /usr/local/libexec/if-simple
-
- Ahora indiquele a LPD que lo use, al añadirlo con la
- característica if, en el fichero
- /etc/printcap. Este filtro, lo vamos a
- añadir en ambas impresoras de nuestro ejemplo, en el fichero
- /etc/printcap:
-
- #
-# Fichero /etc/printcap para host rose - añadiendo el filtro de texto
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:\
- :if=/usr/local/libexec/if-simple:
-
-
-
- Encienda LPD
-
- &man.lpd.8; se puede correr desde /etc/rc,
- controlado por la variable lpd_enable. Esta
- variable por default esta deshabilitada con NO.
- Si usted no cuenta con esta línea, añadala de la
- siguiente forma:
-
- lpd_enable="YES"
-
- al fichero /etc/rc.conf, y posteriormente puede
- reiniciar su sistema o ejecutar &man.lpd.8;.
-
- &prompt.root; lpd
-
-
-
- Probando la Configuración
-
- Usted ha llegado al fin de una configuración sencilla de
- LPD. Desafortunadamente, aun no es
- momento de una felicitación, dado que aun debemos probar
- la configuración y resolver cualquier problema que se
- presente. Para efecto de probar la configuración, intente
- imprimir algo. Para imprimir con el sistema
- LPD, utilice el comando &man.lpr.1;,
- el cual envia el trabajo para su impresión.
-
- Puede combinar &man.lpr.1; con el programa &man.lptest.1;,
- el cual se ve en la sección Verificando la Comunicación
- con la impresora, para generar un texto de prueba.
-
- Simplemente para probar la configuración de
- LPD, intente:
-
- Teclee:
-
- &prompt.root; lptest 20 5 | lpr -Pnombre-impresora
-
- Donde nombre-impresora es uno de
- los nombres (o alias) que aparecen especificados en el fichero
- /etc/printcap para las impresoras. Para
- probar con la impresora por default, teclee &man.lpr.1; sin la
- opción . Nuevamente, si esta probando
- una impresora que espera recibir PostScript, envie un programa
- PostScript en ese lenguaje, en lugar de usar &man.lptest.1;. Puede
- hacer esto poniendo el programa en un fichero y tecleando
- lpr fichero.
-
- Para una impresora PostScript, usted debe visualizar el
- resultado del programa. Si esta usando &man.lptest.1;,
- entonces su resultado debe verse algo similar a lo siguiente:
-
- !"#$%&'()*+,-./01234
-"#$%&'()*+,-./012345
-#$%&'()*+,-./0123456
-$%&'()*+,-./01234567
-%&'()*+,-./012345678
-
- Para más pruebas de la impresora, intente descargar
- programas más largos (para impresoras basadas en un
- lenguaje) o ejecutar &man.lptest.1; con diferentes opciones. Por
- ejemplo lptest 80 60 producirá 60
- líneas de 80 caracteres cada una.
-
- Si la impresora no funcionó, vea la sección Resolución de
- Problemas.
-
-
-
-
- Configuración Avanzada de una Impresora
-
- Esta sección describe el uso de filtros para formatos
- especiales, encabezados de página, impresión en red, y
- restricción de uso de la impresora por cuenta.
-
-
- Filtros
- filtros de impresión
-
- Aun cuando LPD maneja con protocolos
- de red, controles de acceso, requisiciones y otros aspectos de la
- impresión, la mayor parte del trabajo real
- se lleva a cabo por los filtros. Los Filtros son programas que se
- comunican con la impresora y controlan las dependendcias de su
- dispositivo y requerimientos especiales. En el ejemplo de la impresora
- simple, instalamos un muy sencillo filtro de texto plano—un ejemplo
- extremadamente sencillo que debiese trabajar con la mayoría de
- las impresoras (en la sección Instalando un Filtro de Texto).
-
-
- De cualquier manera, para tomar ventaja de la conversión de
- formatos, cuentas de impresión, trucos específicos de las
- impresoras y demás, es importante saber como trabajan los filtros.
- En virtud de que todos estos aspectos son la responsabilidad de estos
- filtros. Y la mala noticia es, que la mayor parte del tiempo
- usted debe proveerse de estos filtros. La buena
- noticia es normalmente estos ya existen disponibles; y cuando no,
- son sencillos de escribir.
-
- FreeBSD tambié cuenta con un
- /usr/libexec/lpr/lpf, que trabaja con muchas
- impresoras que pueden imprimir texto plano. (Maneja caracteres de
- regreso y tabulador en el fichero, así como conteo, pero se
- puede decir que eso es todo). Existen también una gran
- cantidad de filtros y componentes de estos, disponibles en la
- Colección de Ports de FreeBSD.
-
- He aqui lo que encontrará en esta sección:
-
-
-
- La sección Como Trabajan los Filtros
- intenta dar un repaso general al papel que juegan los filtros en el
- proceso de impresión. Es importante que lea esta
- sección para ver que sucede tras bambalinas
- cuando LPD usa filtros. Este conocimiento
- puede ayudarle a anticiparse y resolver problemas que puede
- encontrar cuando instala más y más filtros en cada
- impresora.
-
-
-
- Normalmente LPD espera poder imprimir
- texto plano en todas las impresoras. Esto puede representar un
- problema para las impresoras PostScript (o que manejen otro lenguaje
- de impresión), las cuales no pueden imprimir texto plano
- directamente. La sección Acomodando Trabajos de
- Texto Plano en Impresoras PostScript le indica que debe de
- hacer si se le presenta este problema. Es importante que lea esta
- sección si usted cuenta con una impresora PostScript.
-
-
-
- PostScript es un formato de salida muy popular. Incluso algunas
- personas (yo, incluido) escriben código PostScript
- directamente. Pero las impresoras PostScript son caras. La
- sección Simulando PostScript en Impresoras
- No-PostScript le indica como puede hacer, para que una
- impresora no-PostScript, acepte e imprima datos PostScript.
- Es recomendable que lea esta sección si cuenta con una
- impresora no-PostScript.
-
-
-
- La sección Filtros de
- Conversión, le indica la forma en que puede
- automatizar la conversión de ciertos formatos
- específicos de ficheros, tal como gráficos o
- datos de un determinado tipo, a un formato que la impresora
- puede entender. Después de leer esta sección usted
- podrá configurar su impresora de tal forma que los
- usuarios puedan teclear lpr -t para imprimir
- datos troff o lpr -d para imprimir datos de tipo
- TeX DVI, o bien lpr -v para imprimir datos de
- imagen y así sucesivamente. Recomiendo la lectura de esta
- sección.
-
-
-
- La sección
- Filtros de Salida explica todo acerca de las utilidades
- que no son muy usadas de LPD: filtros
- de salida. A menos que usted haya habilitado la impresión de
- páginas de encabezado (vea Páginas de
- Encabezado), puede saltar toda esta sección.
-
-
-
- La sección lpf:
- Un Filtro de Texto detalla el uso de lpf,
- un sencillo filtro de texto, para impresoras de matriz de puntos (e
- impresoras laser que actuan como estas) que viene con FreeBSD. Si
- usted necesita una forma rápida de tener un contador de
- trabajos de impresión para texto plano, o bien si tiene una
- impresora que al ver caracteres de regreso (backspace) comienza a
- echar humo, definitivamente debe considerar lpf
- como su alternativa.
-
-
-
-
- Como Trabajan los Filtros
-
- Como se menciono anteriormente, un filtro es un programa ejecutable
- que se inicia por LPD, para manejar el
- dispositivo dependiente, responsable de la comunicación con la
- impresora.
-
- Cuando LPD desea imprimir un trabajo,
- inicia un programa filtro. Establece como entrada estandar del filtro
- al fichero, y a la impresora como salida estandar, y como error
- estandard al fichero log (indicado con la cracterística
- lf, en el fichero /etc/printcap
- o por default como /dev/console).
-
-
- troff
-
- Cual filtro debe ser iniciado por LPD y
- con que argumentos, depende en lo especificado en el fichero
- /etc/printcap y los argumentos que hayan sido
- utilizados por el usuario al momento de usar en la línea de
- comandos: &man.lpr.1;. Por ejemplo, si el usuario teclea
- lpr -t, LPD
- iniciará el filtro para ficheros troff, listado en las
- características tf para la impresora
- destino. Si el usuario desea imprimir texto plano iniciará
- el filtro if (esto casi es así, para mayor
- información, vea la sección Filtros de Salida).
-
- Existen tres tipos de filtros que puede declarar en el fichero
- /etc/printcap:
-
-
-
- El filtro de texto, erroneamente llamado
- filtro de entrada en la documentación
- de LPD, este se encarga de manejar la
- impresión de texto simple. Piense en este como en el
- filtro por default. LPD espera que
- todas las impresoras puedan imprimir texto plano y es el
- filtro de texto, el que se encarga de manejar los caracteres de
- retroceso y tabulador, de tal forma que la impresora no se
- confunda. Si en su sistema se debe llevar un conteo de
- impresiones, el filtro de texto también debe llevar un
- conteo de páginas impresas, normalmente al llevar la
- cuenta de las líneas impresas y comparandolas con el
- numero de líneas soportadas por página. El filtro
- de texto se comienza con los siguientes argumentos:
-
-
- nombre-del-filtro
- -c
- -wanchura
- -llongitud
- -isangrado
- -n login
- -h host
- fichero-act
-
-
- donde
-
-
-
-
-
-
- aparece si el trabajo se envio utilizando lpr
- -l
-
-
-
-
- anchura
-
-
- es el valor de la característica
- pw (ancho de página), indicado en
- /etc/printcap, por default se usa
- un valor de 132
-
-
-
-
- longitud
-
-
- es el valor de la característica
- pl (longitud de página), por
- default su valor es 66
-
-
-
-
- sangrado
-
-
- se refiere a los espacios que se considerarán para
- lpr -i, por default es 0.
-
-
-
-
- login
-
-
- es el nombre de la cuenta del usuario que imprime
- el trabajo
-
-
-
-
- host
-
-
- es el nombre del host, del cual se ha enviado el trabajo
- de impresión
-
-
-
-
- fichero-act
-
-
- es el nombre del fichero contador, de
- la característica af.
-
-
-
-
-
-
-
- impresora
- filtros
-
-
- Un filtro de conversión convierte
- un formato específico, a uno que la impresora puede
- plasmar en un papel. Por ejemplo, datos de tipo ditroff no pueden
- imprimirse directamente, pero puede instalar un filtro de
- conversión para ficheros ditroff, de tal forma que los
- datos ditroff se conviertan a un formato que entiende la
- impresora. La sección Filtros de
- Conversión explica todo lo que usted necesita saber
- sobre ellos. Los filtros de conversión también
- requieren de llevar un conteo, si usted requiere de este
- control. Los filtros de conversión se inicializan con
- estos argumentos:
-
-
- nombre-del-filtro
- -xancho-pixel
- -yalto-pixel
- -n login
- -h host
- fichero-act
-
-
- donde ancho-pixel es el valor de la
- característica px (default 0) y
- alto-pixel es el valor de la
- característica py (default 0).
-
-
-
- El filtro de salida es usado solamente si
- no existe un filtro de texto, o bien si las páginas de
- encabezado están habilitadas. En mi experiencia, los
- filtros de salida raramente se utilizan. La sección Filtros de Salida describe
- el uso de estos. Sólo existen dos argumentos:
-
-
- nombre-filtro
- -wancho
- -llargo
-
-
- los cuales son idénticos a los argumentos
- y de los filtros de
- texto.
-
-
-
- La salida de los filtros debe ser con
- el siguiente resultado:
-
-
-
- exit 0
-
-
- Esto es si el resultado de la impresión es
- satisfactorio.
-
-
-
-
- exit 1
-
-
- Si el filtro falló en la impresión, pero
- desea que LPD intente de nuevo
- el trabajo de impresión. LPD
- reiniciará el filtro si sale con esta clave.
-
-
-
-
- exit 2
-
-
- Si el filtro falla imprimiendo el fichero y no desea que
- LPD lo intente de nuevo.
- LPD desechará el fichero.
-
-
-
-
- El filtro de texto
- /usr/libexec/lpr/lpf que viene con FreeBSD,
- toma ventaja de los argumentos de ancho y largo, para determinar
- cuando alimentar la impresora y como llevar el conteo de uso de la
- impresora. Utiliza el host y login, así como el fichero de
- conteo, para llevar el control de este registro.
-
- Si usted esta buscando adquirir filtros, verifique que ellos son
- compatibles con LPD. Si lo son, deberan soportar los argumentos
- descritos anteriormente. Si usted planea escribir filtros para
- uso general, entonces creelos pensando en soportar estos
- argumentos y códigos de salida.
-
-
-
- Acomodando Trabajos de Texto Plano en Impresoras PostScript
- trabajos de impresión
-
- Si usted es el único usuario de su computadora e impresora
- PostScript (u otro lenguaje de impresoras), y promete nunca enviar
- texto plano a su impresora o bien hacer uso de algunos programas que
- probablemente envien texto plano a su impresora, entonces usted no
- debe preocuparse por leer esta sección.
-
- Pero, si usted desea enviar tanto texto plano, como PostScript a
- su impresora, entonces es altamente recomendable que prepare la
- configuración de su impresora. Para efecto de hacer esto,
- contamos con el filtro de texto, para detectar si los trabajos que
- se han mandado son de texto plano o PostScript. Todos los trabajos de
- tipo PostScript, deben comenzar con %! (para otros
- lenguajes de impresión, vea la documentación de su
- impresora). Si esos son los dos primeros caracteres de su trabajo,
- entonces se considera PostScript y puede pasar el resto del trabajo de
- forma directa. Si esos no son los primeros dos caracteres, entonces el
- filtro hará la conversión del texto a PostScript e
- imprimirá el resultado.
-
- ¿Cómo se hace esto?
-
-
- impresora
- serial
-
- Si usted cuenta con una impresora serial, una buena forma de hacer
- esto es instalando lprps. lprps
- es un filtro de impresión PostScript que lleva a cabo una
- comunicación de dos vías con la impresora. Actualiza
- el fichero de estatus de la impresora, por medio de información
- actualizada, de tal forma que los usuarios y administradores pueden
- ver exactamente el estado que guarda la impresora (tal como
- toner bajo o
- papel atorado). Pero más importante
- es el programa que incluye llamado psif, el cual
- detecta si el trabajo que se ha enviado es texto plano, con lo cual
- llama a textps (otro programa que viene con
- lprps), para convertir el texto plano a
- PostScript. Posteriormente utiliza lprps para
- enviar el trabajo a la impresora.
-
- El programa lprps es parte de la
- Colección de Ports de FreeBSD (vea la sección La Colección de Ports). Claro esta, que
- usted puede descargar, compilar e instalarlo. Una vez que instale
- lprps, simplemente especifique la ruta al programa
- psif que a su vez es parte de
- lprps. Si ha instalado lprps
- de la Colección de Ports,
- añada lo siguiente, en la parte correspondiente a su
- impresora Serial-PostScript, en el fichero
- /etc/printcap:
-
- :if=/usr/local/libexec/psif:
-
- También deberá especificar la característica
- rw; que le indica a LPD
- abrir la impresora en modo de lectura-escritura.
-
- Si usted cuenta con una impresora PostScript, conectada a un puerto
- paralelo (y por lo tanto no cuenta con la comunicación de dos
- vías con la impresora, que lprps requiere),
- puede utilizar el siguiente script de shell como filtro de texto:
-
-
- #!/bin/sh
-#
-# psif - Imprime PostScript o texto plano en impresoras PostScript
-# Script version; NO la version que viene con lprps
-# Instalado en /usr/local/libexec/psif
-#
-
-read first_line
-first_two_chars=`expr "$first_line" : '\(..\)'`
-
-if [ "$first_two_chars" = "%!" ]; then
- #
- # Trabajo PostScript, imprimirlo.
- #
- echo "$first_line" && cat && printf "\004" && exit 0
- exit 2
-else
- #
- # Texto Plano, convertirlo e imprimirlo.
- #
- ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0
- exit 2
-fi
-
- En este script, textps es un programa que hemos
- instalado por separado, para convertir texto plano a PostScript. Usted
- puede utilizar cualquier cualquier programa de conversión de
- texto plano a PostScript que desee. La Colección de Ports de FreeBSD incluye un
- programa muy completo llamado a2ps que quizás
- desee investigar.
-
-
-
- Simulando PostScript en Impresoras No-PostScript
-
- PostScript
- emulación
-
-
- Ghostscript
- PostScript es el estandar por excelencia en
- impresiones de alta calidad. Aunque en realidad PostScript resulta
- ser un estandar algo caro. Afortunadamente la
- Empresa Alladin, cuenta con un emulador PostScript, llamado
- Ghostscript que corre bajo FreeBSD.
- Ghostscript puede leer la mayoría de los ficheros PostScript
- y volcarlos en una gran variedad de dispositivos, incluyendose gran
- variedad de impresoras no-PostScript. Al instalar Ghostscript y usando
- un filtro de texto especial para su impresora, puede hacer que su
- impresora no-PostScript actue como una impresora PostScript real.
-
-
- Ghostscript se encuentra en la Colección de Ports de FreeBSD
- por lo que puede realizar la instalación desde este medio.
- También puede descargarlo, compilarlo e instalarlo de una
- manera fácil.
-
- Para efecto de simular PostScript, contamos con el filtro de texto
- que detecta si se esta imprimiendo un fichero PostScript. Si no es
- así, el filtro pasará el trabajo directamente a la
- impresora, de otra forma utilizará Ghostscript para convertir
- primero el fichero a un formato que la impresora entienda.
-
- Aqui tenemos un ejemplo: el siguiente script es un filtro de
- texto para impresoras Hewlett Packard DeskJet 500. Para otras
- impresoras, substituya el argumento del
- comando gs (Ghostscript). Teclee gs
- -h para obtener una lista de todos los dispositivos
- soportados por Ghostscript en su sistema).
-
- #!/bin/sh
-#
-# ifhp - Impresion simulada-Ghostscript PostScript en una DeskJet 500
-# Instalada en /usr/local/libexec/hpif
-
-#
-# Trate a LF como CR+LF:
-#
-printf "\033&k2G" || exit 2
-
-#
-# Read first two characters of the file
-#
-read first_line
-first_two_chars=`expr "$first_line" : '\(..\)'`
-
-if [ "$first_two_chars" = "%!" ]; then
- #
- # Se trata de PostScript; use Ghostscript para convertir e imprimir.
- #
- # Note que los ficheros PostScript son , de hecho, programas interpretados,
- # y esos programas se permiten escribir en la salida estandar, lo que puede
- # confundir la salida impresa. De tal forma que redireccionaremos la salida
- # estandar a error estandar, y crearemos una clave de salida 3, para la
- # salida estandar, y haremos que Ghostscript escriba su salida a esta.
- # Un ejercicio para el lector astuto: capture la salida del error estandar
- # de Ghostscript y envielo por correo de regreso al usuario original, que
- # genero el trabajo de impresion.
- #
- exec 3>&1 1>&2
- /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
- -sOutputFile=/dev/fd/3 - && exit 0
-
- #
- /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \
- && exit 0
-else
- #
- # Texto plano o PCL de HP, asi que solo vamos a imprimirlo directamente;
- # permita la alimentacion de forma al final, para expulsar la ultima
- # pagina.
- #
- echo $first_line && cat && printf "\033&l0H" &&
-exit 0
-fi
-
-exit 2
-
- Finalmente, necesita notificar a LPD
- de la característica if, que corresponde
- al filtro a utilizar:
-
- :if=/usr/local/libexec/ifhp:
-
- Y eso es todo. Puede teclear lpr texto.plano y
- lpr cualquier.ps y ambos deben imprimirse
- exitosamente.
-
-
-
- Filtros de Conversión
-
- Una vez que se ha completado la configuración descrita en
- la sección Configuración Simple de
- una Impresora, probablemente lo primero que deba hacer es
- instalar filtros de conversión para su formato de fichero
- favorito (aparte de text plano ASCII).
-
-
- ¿Por qué Instalar Filtros de
- Conversión?
-
- TeX
- impresión de ficheros dvi
-
-
- Los filtros de conversión sirven para instalar de una
- manera sencilla varios tipos de formatos especiales. Como ejemplo,
- suponga que requiere imprimir un buen numero de ficheros
- desarrollados con el sistema de escritura TeX, y contamos con una
- impresora PostScript. Cada vez que generemos un fichero DVI desde
- TeX, no podremos imprimirlo directamente hasta que hagamos una
- conversión de este a PostScript. La secuencia de comandos
- a seguir es algo así:
-
- &prompt.user; dvips fichero-prueba.dvi
-&prompt.user; lpr fichero-prueba.ps
-
- Al instalar un filtro de conversión, podemos omitir
- llevar a cabo la conversión manual, y permitir que
- LPD se haga cargo por nosotros. Ahora,
- cada vez que generemos un fichero DVI, sólo estaremos a
- un paso de su impresión:
-
- &prompt.user; lpr -d fichero-prueba.dvi
-
- Con esto le hemos indicado a LPD que
- haga la conversión del fichero DVI. Esto se lleva a cabo
- por medio de la opción . La sección
- Opciones de Formato y
- Conversión enumera las opciones de conversión.
-
-
- Por cada una de las opciones que desea que una impresora
- reconozca, instale un filtro de
- conversión y señale su ruta en el fichero
- /etc/printcap. Un filtro de conversión
- es como el filtro de texto usado en la configuración de una
- impresora simple (vea la sección Instalando un Filtro de Texto
- para una referencia) excepto de que en lugar de imprimir texto
- plano, el filtro convierte el fichero a un formato que la impresora
- puede entender.
-
-
-
- ¿Qué Filtros de Conversión Debo
- Instalar?
-
- Usted debe instalar los filtros de conversión que vaya a
- necesitar. Si imprime gran cantidad de documentos DVI, es
- recomendable que instal un filtro de conversión para DVI.
- Si cuenta con bastantes ficheros troff por imprimir, entonces
- un filtro troff sería una buena idea.
-
- En la siguiente tabla encontrará un resúmen de
- los filtros con que trabaja LPD, un
- ejemplo de su entrada en /etc/printcap y
- como hacer uso de estos con el comando lpr :
-
-
-
-
-
-
- Tipo de Fichero
- Característica /etc/printcap
- Opción lpr
-
-
-
-
-
- cifplot
- cf
-
-
-
-
- DVI
- df
-
-
-
-
- plot
- gf
-
-
-
-
- ditroff
- nf
-
-
-
-
- FORTRAN texto
- rf
-
-
-
-
- troff
- rf
-
-
-
-
- raster
- vf
-
-
-
-
- texto plano
- if
- ninguna, , o
-
-
-
-
-
-
- En nuestro ejemplo, el uso de lpr -d indica
- que la impresora requiere de la característica
- df, en su entrada del fichero
- /etc/printcap.
-
- fortran
- A pesar de lo que otros puedan opinar, formatos como texto
- de FORTRAN o plot, son probablemnte obsoletos. A su gusto, usted
- puede encontrar nuevos usos de estos formatos, así como a
- cualquier otro con el simple hecho de instalar los filtros
- adecuados. Por ejemplo, supongamos que desea imprimir ficheros de
- tipo Printerleaf (que son ficheros generados por el programa de
- promoción de escritorio Interleaf) de forma directa, pero
- que nunca imprime ficheros plot. Podría instalar un filtro
- de conversión de Printerleaf bajo la característica
- gf y posteriormente educar a sus usuarios a
- que utilicen el comando lpr -g para llevar a
- cabo impresiones de ficheros Printleaf.
-
-
-
- Instalando Filtros de Conversión
-
- Considerando que los filtros de conversión son programas
- que usted instala independientemente de la instalación base
- de FreeBSD, probablemente el mejor lugar para colocarlos
- sería bajo el directorio /usr/local.
- El directorio /usr/local/libexec es un
- lugar común, en virtud de que estos son programas especiales
- que sólo serán ejecutados por
- LPD; los usuarios comunes no
- necesitarán ejecutarlos nunca.
-
- Para habilitar un filtro de conversión, deberá
- especificar su ruta bajo la característica adecuada, en la
- entrada de la impresora correspondiente en el fichero
- /etc/printcap.
-
- En nuestro ejemplo, añadiremos el filtro de
- conversión DVI, para la impresora llamada
- bamboo. He aqui un ejemplo del fichero
- /etc/printcap que hemos estado utilizando,
- con la nueva característica df, para
- la impresora bamboo.
-
- #
-# Fichero /etc/printcap para host rose - añadiendo df a bamboo
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
-
- El filtro DVI es un script de shell llamado
- /usr/local/libexec/psdf. Aqui presentamos el
- script:
-
- #!/bin/sh
-#
-# psdf - Filtro de impresion DVI a PostScript
-# Instalado en /usr/local/libexec/psdf
-#
-# Llamado por lpd cuando el usuario ejecuta lpr -d
-#
-exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"
-
- Este script ejecuta dvips en modo de filtro
- (la opción ) con la entrada estandar, que
- es el trabajo a imprimir. Posteriormente inicia el filtro de
- impresión PostScript lprps (vea la
- sección Acomodando Trabajos de
- Texto Plano en Impresoras PostScript), con las opciones que
- LPD haya pasado al script. El comando
- lprps hará uso de esas opciones para
- llevar la cuenta de las páginas impresas.
-
-
-
- Más Ejemplos de Filtros de Conversión
-
- Considerando que no existe una serie de pasos establecida, para
- instalar filtros de conversión, me permito mostrar algunos
- ejemplos más. Puede usarlos tal como aparecen, si es que se
- ajustan a sus necesidades.
-
- Este ejemplo es de un filtro de conversión raster
- (bueno, de hecho se trata de un fichero GIF), para una impresora
- Hewlett Packard LaserJet III-Si:
-
- #!/bin/sh
-#
-# hpvf - Convierte ficheros GIF a HP/PCL, posteriormente los imprime
-# Instalado en /usr/local/libexec/hpvf
-
-PATH=/usr/X11R6/bin:$PATH; export PATH
-giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
- && exit 0 \
- || exit 2
-
- Esto trabaja convirtiendo el fichero GIF a cualquier tipo de
- fichero mapa portable, y conviritendo eso a un mapa en escala de
- grises, y ese mapa de regreso a un fichero portable de mapa de
- bits, y finalmente eso a datos compatibles con HP/PCL, entendible
- por la impresora LaserJet.
-
- Aqui esta un ejemplo del fichero
- /etc/printcap usando el filtro anterior, con la
- impresora mencionada.
-
- #
-# Fichero /etc/printcap para el host orchid
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/hpif:\
- :vf=/usr/local/libexec/hpvf:
-
- El siguiente script es un filtro de conversión de datos de
- tipo troff desde un sistema groff, para la impresora PostScript
- denominada bamboo:
-
- #!/bin/sh
-#
-# pstf - Convierte datos de troff tipo groff a PS, y los imprime.
-# Instalado en /usr/local/libexec/pstf
-#
-exec grops | /usr/local/libexec/lprps "$@"
-
- El script de arriba, nuevamente hace uso del comando
- lprps, para manejar la comunicación con
- la impresora. Si la impresora se encontrase en un puerto paralelo,
- usariamos el siguiente script:
-
- #!/bin/sh
-#
-# pstf - Convierte datos groff a PS, y los imprime.
-# Instalado en /usr/local/libexec/pstf
-#
-exec grops
-
- Eso es todo. Aqui presentamos la entrada necesaria en
- /etc/printcap para habilitar el filtro:
-
- :tf=/usr/local/libexec/pstf:
-
- Aqui presentamos un ejemplo que puede hacer que los viejos
- usuarios de FORTRAN se ruboricen. Es un filtro de texto para
- FORTRAN, usando impresoras que pueden imprimir directamente texto
- plano. Lo instalaremos para la impresora teak:
-
-
- #!/bin/sh
-#
-# hprf - Filtro de Texto FORTRAN para LaserJet 3si:
-# Instalado en /usr/local/libexec/hprf
-#
-
-printf "\033&k2G" && fpr && printf "\033&l0H" &&
- exit 0
-exit 2
-
- Y añadiremos esta línea al fichero
- /etc/printcap para la impresora
- teak, para efecto de habilitar el filtro:
-
- :rf=/usr/local/libexec/hprf:
-
- Aqui presentamos el último ejemplo que puede resultar algo
- complicado. Vamos a añadir un filtro DVI para la impresora
- LaseJet teak comentada anteriormente. Primero, la
- parte sencilla: actualizaremos /etc/printcap
- con la ubicación del filtro DVI:
-
- :df=/usr/local/libexec/hpdf:
-
- Ahora la parte complicada: crar el filtro. Para eso, vamos
- a necesitar un programa de conversión de DVI-a-LaserJet/PCL.
- La Colección de Ports de FreeBSD (vea La Colección de Ports) cuenta con
- uno, el nombre del paquete es: dvi2xx. Al
- instalar este programa, nos brinda la funcionalidad que buscamos,
- dvilj2p, el cual convierte ficheros DVI a
- ficheros compatibles con LaserJet IIp, LaserJet III y LaserJet
- 2000 y códigos compatibles.
-
- El programa dvilj2p hace que el filtro
- hpdf sea más complejo, en virtud de que
- dvilj2p no puede leer desde la entrada
- estandar. Este desea trabajar desde un nombre de fichero. Y lo
- que es peor, es que el nombre del fichero debe contar con la
- terminación .dvi, de tal forma que
- usar /dev/fd/0 como entrada estandar representa
- un problema. Esto lo podremos solucionar, creando un enlace
- (simbólico) de un fichero temporal (uno que su tenga como
- extensión .dvi) a
- /dev/fd/0, y por tanto forzando a
- dvilj2p a leer la entrada estandar.
-
- El único punto negativo que nos queda por resolver, es
- que no podemos utilizar /tmp para el enlace
- temporal. Los enlaces simbólicos son propiedad del grupo y
- usuario bin. El filtro de ejecuta como usuario
- daemon. Y el directorio
- /tmp cuenta con el bit pegajoso
- activado. El filtro puede crear el enlace, pero no podrá
- limpiarlo una vez que termine y eliminarlo, ya que pertenece a un
- usuario diferente.
-
- En lugar de esto, el filtro creará el enlace
- simbólico en el directorio de trabajo actual, el cual
- será el directorio de la cola de impresión
- (especificado en /etc/printcap por la
- característica sd). Este lugar es
- perfecto para que los filtros hagan su trabajo, especialmente que
- aqui existe más espacio (algunas veces) en disco duro, que
- bajo el directorio /tmp.
-
- Finalmente, aqui presentamos el filtro:
-
- #!/bin/sh
-#
-# hpdf - Impresion de datos DVI en una impresora HP/PCL
-# Instalado en /usr/local/libexec/hpdf
-
-PATH=/usr/local/bin:$PATH; export PATH
-
-#
-# Definir una funcion para limpiar nuestros ficheros temporales. Estos existen
-# en el directorio de trabajo actual, el cual servira para la cola de impresion de
-# la impresora.
-#
-cleanup() {
- rm -f hpdf$$.dvi
-}
-
-#
-# Definir funcion para el manejo de errores fatales: imprimir un mensaje dado y salir
-# con codigo de salida 2. Al salir con 2, le indica a LPD que no intente la impresion
-# de nuevo.
-#
-fatal() {
- echo "$@" 1>&2
- cleanup
- exit 2
-}
-
-#
-# Si el usuario elimina el trabajo, LPD enviara un SIGINT, para que SIGINT
-# (y algunas otros avisos) limpien despues de nosotros.
-#
-trap cleanup 1 2 15
-
-#
-# Asegurarse de que no estamos creando un conflicto con ficheros existentes.
-#
-cleanup
-
-#
-# Crear el enlace de la entrada DVI a la entrada estandar (el fichero a imprimir).
-#
-ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"
-
-#
-# Hacer LF = CR+LF
-#
-printf "\033&k2G" || fatal "Cannot initialize printer"
-
-#
-# Convertir e imprimir. Regresar valor de dvilj2p no parece my confiable,
-# asi que es ignorado.
-#
-dvilj2p -M1 -q -e- dfhp$$.dvi
-
-#
-# Limpiar y salir
-#
-cleanup
-exit 0
-
-
-
- Conversión Automática: Una Alternativa A Los Filtros
- De Conversión
-
- Todos estos filtros de conversión realizan una gran labor
- en pro de sus labores de impresión, pero con el inconveniente
- de que cada usuario debe especificar cual filtro es el que se debe
- utilizar (cuando se invoca el comando &man.lpr.1;). Si sus usarios
- no son lo que podemos llamar aficionados a la computación, el
- especificar que filtro utilizar puede volverse algo molesto. Y lo
- que es peor, el uso de un filtro inadecuado puede causar que su
- impresora termine imprimiendo cientos de hojas de papel de manera
- incorrecta.
-
- En lugar de instalar filtros de conversión, quizás
- le interese intentar que su filtro de texto (dado que es el filtro
- por default) determine que tipo de fichero se esta enviando a
- imprimir y automáticamente ejecute el filtro adecuado. En
- este caso, herramientas como file pueden ser
- de mucha utilidad. Claro esta, puede que algunos tipos de ficheros
- puede ser difícil determinar de que tipo son, pero siempre
- puede contar con filtros especiales para ellos.
-
- apsfilter
-
- impresora
- filtros
- apsfilter
-
- La Colección de Ports de FreeBSD cuenta con un filtro de
- texto que ejecuta de forma automática la conversión,
- llamado apsfilter. Este puede detectar texto
- plano, PostScript y ficheros DVI, ejecutar la conversión
- adecuada e imprimir.
-
-
-
-
- Filtros de Salida
-
- El sistema de cola de impresión de
- LPD soporta otro tipo de filtros, que
- aun no hemos explicado aqui: un filtro de salida. Un filtro de
- salida esta diseñado para imprimir texto plano
- únicamente, como el filtro de texto, pero de una forma
- más simplificada. Si usted esta usando un filtro de
- salida pero no filtro de texto, entonces:
-
-
-
- LPD inicia el filtro de salida para
- el trabajo completo, en lugar de hacerlo para cada fichero del
- trabajo.
-
-
-
- Para el filtro de salida, LPD
- no realiza un trabajo extra para identificar el comienzo o
- el fin del trabajo.
-
-
-
- En el filtro de salida, LPD no
- utiliza como argumento el nombre de usuario o host, por lo tanto
- no esta diseñado para llevar un conteo por usuario. De
- hecho, este sólo maneja dos argumentos:
-
-
- nombre-filtro
- -wancho
- -llargo
-
-
- Donde ancho es tomado de la
- característica pw y
- largo es tomado de la
- característica pl, para la impresora
- en cuestión.
-
-
-
- Es importante que no se deje seducir por la simplicidad del filtro
- de salida. Si usted desea que cada fichero de un trabajo sea impreso
- en una página diferente, el filtro de salida no
- hará este trabajo. Utilice un filtro de texto
- (también conocido como filtro de entrada); vea la sección
- Instalando un Filtro de Texto
- . Mas allá, el filtro de salida es de hecho
- más complicado en ese aspecto dado que examina la
- cadena de bytes que se ha enviado, para buscar alguna marca especial y
- enviarse señas él mismo, a nombre de
- LPD.
-
- De cualquier forma, un filtro de salida es
- necesario si usted desea páginas de
- encabezado y requiere de enviar un secuencia de escape u otras
- cadenas de inicialización para habilitar la impresión de
- encabezados. (Aunque también es trivial si
- desea cobrar de acuerdo a las páginas encabezado de cada
- usuario, dado que LPD no otorga
- información del usuario o host, al filtro de salida.)
-
- En una sola impresora, LPD permite el
- uso tanto del filtro de salida como el filtro de texto. En cuyo caso,
- LPD iniciará el filtro de salida
- para imprimir las páginas de encabezado (vea la sección
- Páginas de
- Encabezado) únicamente. Posteriormente
- LPD espera que el filtro de salida se
- detenga por sí mismo al enviarle dos
- bytes al filtro: ASCII 031 seguido de ASCII 001. Cuando un filtro de
- salida recibe estos dos bytes (031, 001), deberá pararse,
- enviandose a sí mismo una señal
- SIGSTOP. Una vez que LPD
- ha terminado de ejecutar otros filtros, reiniciará el filtro de
- salida, el enviarle una señal SIGCONT.
-
- Si existe un filtro de salida, pero no existe
- un filtro de texto y LPD esta trabajando con
- un trabajo en texto plano, LPD
- utilizará el filtro de salida para hacer el trabajo. Como se
- comento anteriormente, el filtro de salida imprimirá cada
- fichero del trabajo en secuencia, sin intervención de
- alimentación u otras ventajas con lo que al papel se refiere, y
- seguramente que esto no es lo que usted desea. En
- casi todos los casos usted necesitará un filtro de texto.
-
- El programa lpf, que comentamos anteriormente
- como un filtro de texto, también es capaz de ejecutar un filtro
- de salida. Si desea un trabajo rápido-y-sucio del filtro de
- salida, pero no desea que se escriban bytes de detección, ni
- envien códigos, puede usar lpf.
- También puede incluir lpf en un script de
- shell, para que controle cualquier código de
- inicialización que la impresora requiera.
-
-
-
- lpf: Un Filtro de Texto
-
- El programa /usr/libexec/lpr/lpf que viene
- con los binarios de FreeBSD, como un filtro de texto (filtro de
- entrada) que puede darle sangía a los trabajos (usando la
- opción lpr -i), que permite el envío
- literal de caracteres (con el comando lpr -l),
- ajusta la posición de impresión para caracteres de
- retroceso y tabulador, y contabiliza las páginas impresas.
- También puede funcionar como un filtro de salida.
-
- lpf se ajusta a la configuración de
- gran cantidad de impresoras. Y aunque no tiene la habilidad de enviar
- secuencias de inicialización a la impresora, es muy sencillo
- escribir un script de shell para llevar a cabo la inicialización
- y posteriormente ejecutar lpf.
-
- conteo de páginas
-
- conteo
- impresora
-
- Para efecto de que lpf lleve un conteo correcto,
- requiere que se tengan los valores adecuados de las
- características pw y pl,
- en el fichero /etc/printcap. En base a estos,
- determina cuanto texto puede existir en una página y cuantas
- páginas existen en el trabajo de un usuario. Para mayor
- información al respecto, vea la sección Contabilidad del Uso de la
- Impresora.
-
-
-
-
- Páginas de Encabezado
-
- Si usted cuenta con gran cantidad de usuarios,
- y todos imprimiendo en varias impresoras, entonces sería
- conveniente considerar las páginas de
- encabezado como un mal necesario.
-
-
- páginas titulares
- páginas encabezados
-
- páginas encabezados
- Las páginas de encabezados, también conocidas como
- titulares o
- páginas de aviso identifican a quien
- pertenece el trabajo enviado a imprimir, una vez que han sido
- impresos. Normalmente estas son impresas en letras grandes y de color
- negro remarcado (negritas), y quizás con bordes decorativos, de
- tal forma que puedan distinguirse entre el resto de las páginas
- enviadas a imprimir. Estas permiten a los usuarios localizar
- rápidamente sus impresiones. El obvio lado negativo de estas
- páginas es que se debe imprimir una hoja adicional, por cada
- trabajo enviado a la impresora, su utilidad efímera, no dura
- más que unos minutos, terminando en una bandeja de reciclaje.
- (Note que las páginas de encabezado se imprimen con cada trabajo
- enviado a la impresora, no con cada página impresa, de tal
- manera que el deperdicio de papel no es tan grave.)
-
- El sistema LPD puede proveerle de las
- páginas de encabezado de forma automática para sus
- impresiones, si su impresora soporta de la
- impresión de texto plano directamente. Si usted cuenta con una
- impresora PostScript, necesitará un programa externo para generar
- estas páginas; vea la sección Páginas de Encabezado
- en Impresoras PostScript.
-
-
- Habilitando las Páginas de Encabezado
-
- En la sección Configuración Simple
- de una Impresora, deshabilitamos la impresión de estas
- páginas al especificar sh (que son siglas
- en inglés para supress header, algo así
- como eliminar encabezados) en el fichero
- /etc/printcap. Para efecto de habilitar la
- impresión de páginas de encabezado, simplemente elimine
- la característica sh del fichero.
-
- ¿Suena demasiado fácil, verdad?
-
- Efectivamente. Es probable que deba proveer
- de un filtro de salida, para efecto de que se mande la cadena de
- inicialización a la impresora. Aqui tenemos un ejemplo de un
- filtro de salida para impresoras compatibles con PCL de Hewlett
- Packard:
-
- #!/bin/sh
-#
-# hpof - Filtro de salida para impresoras compatibles con Hewlett Packard PCL
-# Instalado en /usr/local/libexec/hpof
-
-printf "\033&k2G" || exit 2
-exec /usr/libexec/lpr/lpf
-
- Especifique la ruta del filtro de salida, en la
- característica of. Vea la sección
- Filtros de Salida para
- más información al respecto.
-
- Aqui podrá ver un ejemplo de un fichero
- /etc/printcap para la impresora
- teak que trabajamos anteriormente; hemos
- añadido las páginas de encabezado, así
- como el filtro de salida mencionado anteriormente:
-
- #
-# /etc/printcap for host orchid
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/hpif:\
- :vf=/usr/local/libexec/hpvf:\
- :of=/usr/local/libexec/hpof:
-
- Ahora, cuando los usuarios impriman sus trabajos a la impresora
- teak, ellos obtendrán una página de
- encabezado por cada trabajo que manden a imprimir. Si los usuarios
- desean pasar un tiempo buscando sus impresiones, pueden deshabilitar la
- impresión de esta página con el comando
- lpr -h; para más información sobre las
- opciones de &man.lpr.1;, vea la sección Opciones de Páginas de
- Encabezado.
-
-
- El sistema LPD envia a la impresora
- un caracter de alimentación de página. Si su
- impresora utiliza un caracter diferente de alimentación de
- página, especifíquelo en el fichero
- /etc/printcap, bajo la característica
- ff.
-
-
-
-
- Controlando las Páginas de Encabezado
-
- Al habilitar las páginas de encabezado,
- LPD produce un encabezado
- largo, una página completa con letras largas que
- identifican el usuario, la maquina host, y el trabajo. Aqui tenemos
- un ejemplo (kelly ha impreso un trabajo llamado outline, desde el
- host rose):
-
- k ll ll
- k l l
- k l l
- k k eeee l l y y
- k k e e l l y y
- k k eeeeee l l y y
- kk k e l l y y
- k k e e l l y yy
- k k eeee lll lll yyy y
- y
- y y
- yyyy
-
-
- ll
- t l i
- t l
- oooo u u ttttt l ii n nnn eeee
- o o u u t l i nn n e e
- o o u u t l i n n eeeeee
- o o u u t l i n n e
- o o u uu t t l i n n e e
- oooo uuu u tt lll iii n n eeee
-
-
-
-
-
-
-
-
-
- r rrr oooo ssss eeee
- rr r o o s s e e
- r o o ss eeeeee
- r o o ss e
- r o o s s e e
- r oooo ssss eeee
-
-
-
-
-
-
-
- Job: outline
- Date: Sun Sep 17 11:04:58 1995
-
- Después de esta página,
- LPD manda un caracter de alimentación
- de página, para que el trabajo sea impreso en una hoja blanca
- nueva (a menos que cuente con sf (por sus siglas en
- inglés supress form feed, que es
- eliminación de alimentación de
- página) en el fichero
- /etc/printcap).
-
- Si lo prefiere, LPD puede generar un
- encabezado pequeño; puede hacer esto, al
- especificar sb en el fichero
- /etc/printcap. La página de encabezado que
- será impresa se vera así:
-
- rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995
-
- Por default, LPD imprime la
- página de encabezado en primer término y posteriormente
- el trabajo. Para cambiar este comportamiento, es necesario incluir
- la característica hl (encabezado a lo
- último por sus siglas en inglés), en el fichero
- /etc/printcap.
-
-
-
- Conteo de P´ginas de Encabezado
-
- Cuando se utiliza la utilidad integrada de conteo de
- LPD, refuerza el paradigma de que;
- cuando se refiere al conteo de impresiones: las páginas de
- encabezados deben ser sin coto alguno.
-
- ¿Por qué?
-
- Por que el filtro de salida es el único programa externo
- que puede llevar un conteo de las páginas impresas, cuando
- tiene el control, y este no es provisto con información de un
- usuario o host o algun fichero contador, de tal
- forma que no tiene idea de a quien cargar estas impresiones. Tampoco
- es conveniente, simplemente cargar una impresión
- al total de las impresiones del filtro de texto o filtro de
- conversión (esos que cuentan con información del
- usuario y host), esto en virtud de que los usuarios pueden suprimir
- el uso de estas páginas con lpr -h. Esto
- implica que se le podrían cobrar hojas que ellos no imprimieron.
- Básicamente el comando lpr -h sería la
- opción preferida de los usuarios concientes del sistema, pero
- usted no puede ofrecer incentivo alguno para que se utilice.
-
- Tampoco es una buena alternativa que cada
- filtro genere sus páginas de encabezado (y por lo tanto poder
- cobrar por ellas). Si los usuarios desean suprimirlas usando la
- opción lpr -h, aún obtendrán
- estas páginas y les serán cobradas, en virtud de que
- LPD no tiene transfiere la opción
- a los filtros.
-
- Así que, ¿Qué opciones tenemos?
-
- Usted puede:
-
-
-
- Aceptar el paradigma de LPD y no
- cobrar por las páginas de encabezado.
-
-
-
- Instalar una alternativa a LPD,
- tal como LPRng. La sección
- Alternativas al Sistema
- de Impresión Estándar le informa sobre otros
- programas que puede utilizar, que sustituyan a
- LPD.
-
-
-
- Escribir un filtro de salida inteligente.
- Normalmente, un filtro de salida no esta diseñado para hacer
- otra cosa, que no sea inicializar la impresora o bien hacer alguna
- conversión sencilla de caracteres. Esta diseñado
- para páginas de encabezado y trabajos en texto plano (cuando
- no existe algun filtro de texto (entrada)). Pero cuando si existe
- un filtro de texto, para los trabajos en texto plano, entonces
- LPD sólo hará uso del
- filtro de salida para las páginas de encabezado. Y el
- filtro de salida puede pasar el texto de la página
- encabezado generado por LPD, para
- determinar el usuario y el host al cual se le cobrará dicha
- impresión. El único problema con este metodo es
- que el filtro de salida aún no sabe que fichero usar
- para llevar la cuenta de las impresiones (la característica
- af no pasa el nombre del fichero), pero si
- usted cuenta con un fichero establecido para llevar esta cuenta,
- puede incluirlo en el código del filtro de salida. Para
- efecto de facilitar este paso, utilice la característica
- sh (encabezado corto) del fichero
- /etc/printcap. Nuevamente, todo esto
- podría resultar muy complicado, y los usuarios estaran
- muy agradecidos con el generoso administrador del sistema que
- genera las páginas de encabezado gratis.
-
-
-
-
-
- Páginas de Encabezado en Impresoras PostScript
-
- Como se ha descrito anteriormente, LPD
- puede generar páginas encabezado en texto plano para gran
- cantidad de impresoras. Claro esta, que PostScript no puede imprimir
- texto plano directamente, de tal forma que la habilidad de imprimir
- estas páginas de LPD, es
- inservible—o casi.
-
- Una forma obvia de crear las páginas de encabezado, es hacer
- que cada filtro de conversión y de texto, creen sus
- páginas de encabezado. Los filtros deberán utilizar el
- nombre de usuario y host, para generar esta página
- personalizada. Lo malo de este metodo es que los usuarios siempre
- obtendrán una página de encabezado, aun cuando usen en
- sus impresiones lpr -h.
-
- Exploremos este metodo. El siguiente script considera tres
- argumentos (nombre del login del usuario, nombre del host, y nombre del
- trabajo) y genera una página simple de encabezado PostScript:
-
-
- #!/bin/sh
-#
-# make-ps-header - crea una pagina de encabezado PostScript a stdout
-# Instalado en /usr/local/libexec/make-ps-header
-#
-
-#
-# Estas son unidades PostScript (72 a la pulgada). Modifiquelo para A4 o
-# cualquier tamano de papel que este utilizando.
-#
-page_width=612
-page_height=792
-border=72
-
-#
-# Verificar argumentos
-#
-if [ $# -ne 3 ]; then
- echo "Usage: `basename $0` <user> <host> <job>" 1>&2
- exit 1
-fi
-
-#
-# Salvar estos, principalmente para lectura de PostScript, mas abajo.
-#
-user=$1
-host=$2
-job=$3
-date=`date`
-
-#
-# Enviar el codigo PostScript a la salida estandar.
-#
-exec cat <<EOF
-%!PS
-
-%
-% Segurese de no interferir con el trabajo del usuario c continuacion
-%
-save
-
-%
-% Crear un grueso y poco placentero borde alrededor del borde de la pagina.
-%
-$border $border moveto
-$page_width $border 2 mul sub 0 rlineto
-0 $page_height $border 2 mul sub rlineto
-currentscreen 3 -1 roll pop 100 3 1 roll setscreen
-$border 2 mul $page_width sub 0 rlineto closepath
-0.8 setgray 10 setlinewidth stroke 0 setgray
-
-%
-% Desplegar nombre de login del usuario, bonito largo y prominente
-%
-/Helvetica-Bold findfont 64 scalefont setfont
-$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
-($user) show
-
-%
-% Ahora mostrar los aburridos detalle generales
-%
-/Helvetica findfont 14 scalefont setfont
-/y 200 def
-[ (Job:) (Host:) (Date:) ] {
-200 y moveto show /y y 18 sub def }
-forall
-
-/Helvetica-Bold findfont 14 scalefont setfont
-/y 200 def
-[ ($job) ($host) ($date) ] {
- 270 y moveto show /y y 18 sub def
-} forall
-
-%
-% Eso es todo
-%
-restore
-showpage
-EOF
-
- Ahora, cada uno de los filtros de conversión y de texto,
- pueden invocar este script, para en primer lugar generar esta
- página y después imprimir el trabajo del usuario. Aqui
- tenemos el filtro de conversión DVI que revisamos anteriormente
- en este documento, modificado para generar páginas de
- encabezado:
-
- #!/bin/sh
-#
-# psdf - DVI to PostScript printer filter
-# Installed in /usr/local/libexec/psdf
-#
-# Invoked by lpd when user runs lpr -d
-#
-
-orig_args="$@"
-
-fail() {
- echo "$@" 1>&2
- exit 2
-}
-
-while getopts "x:y:n:h:" option; do
- case $option in
- x|y) ;; # Ignore
- n) login=$OPTARG ;;
- h) host=$OPTARG ;;
- *) echo "LPD started `basename $0` wrong." 1>&2
- exit 2
- ;;
- esac
-done
-
-[ "$login" ] || fail "No login name"
-[ "$host" ] || fail "No host name"
-
-( /usr/local/libexec/make-ps-header $login $host "DVI File"
- /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args
-
- Note como el filtro debe pasar los argumentos en orden, para efecto
- de determinar el nombre de usuario y host. El procedimiento para los
- otros filtros de conversión es identico. El filtro de texto
- tiene una pequeña variación (vea la sección Como Trabajan los Filtros).
-
-
- Como hemos mencionado anteriormente, este esquema simplemente nos
- sirve para deshabilitar la opción eliminar
- encabezados (la opción ) de
- lpr. Si los usuarios desean salvar algunos arboles
- (o algunos centavos si usted cobra por estas páginas), no
- podrán deshabilitar esta opción, ya que cada filtro
- imprimirá una página de encabezado con cada trabajo
- impreso.
-
- Para permitir que los usuarios desactiven las páginas de
- encabezado en cada trabajo, será necesario que utilice el truco
- del que hablamos en la sección Conteo de
- Páginas de Encabezado: escribir un filtro de salida que
- pase la página generada por LPD y produzca una versión
- PostScript de la misma. Si el usuario utiliza
- lpr -h, entonces LPD no
- generará una página encabezado, y tampoco su filtro de
- salida. De otra forma, su filtro de salida tomará los datos de
- LPD y enviará el código
- PostScript apropiado para la impresión de la página de
- encabezado.
-
- Si usted cuenta con una impresora PostScript conectada a un
- puerto serial, puede usar lprps, que cuenta con
- un filtro de salida, psof, que hace lo
- mencionado. Note que psof no cobra por las
- páginas de encabezado.
-
-
-
-
- Impresión en Red
-
-
- impresora
- red
-
- impresión en red
- FreeBSD cuenta con soporte para impresión en red: envío
- de trabajos a impresoras remotas. La impresión en red,
- normalmente se cuenta con dos escenarios:
-
-
-
- Accesando a una impresora que esta conectada a un host
- remoto. Esto es, una impresora que esta conectada por algun medio
- convencional, como puerto serial o paralelo, en un host. Y por
- otro lado se habilita LPD para poder
- imprimir desde otros hosts de la red. La sección Impresoras Instaladas en
- Hosts Remotos le indica como hacer esto.
-
-
-
- Accesando a una impresora que esta conectada directamente a la
- red. En este caso la impresora cuenta con un dispositivo de red en
- adición (o en su lugar) del convencional paralelo o serial.
- Esta impresora puede funcionar de la siguiente manera:
-
-
-
- Puede comprender el protocolo de
- LPD e inclusive hacer consulta de
- trabajos en hosts remotos. En este caso, actua tal como un
- host normal que esta ejecutando LPD.
- Aplique el procedimiento revisado en Impresoras
- Instaladas en Hosts Remotos para efecto de configurar
- estas impresoras.
-
-
-
- Puede contar con soporte para envío de datos por medio
- de la conexión de red. En este caso, usted
- conecta la impresora a un host de la red, al hacer
- responsable, a dicho host, de la administración de los
- trabajos en la cola de impresión y su envio a la
- impresora. La sección Impresoras con
- Interfaces de Red para Secuencia de Datos le da algunos
- consejos y sugerencias sobre como instalar estas impresoras.
-
-
-
-
-
-
-
- Impresoras Instaladas en Hosts Remotos
-
- El sistema de cola de impresión de
- LPD cuenta con soporte integrado para enviar
- trabajos de impresión a un host remoto que cuente con
- LPD (o alguna sistema compatible con
- LPD). Esta habilidad le permite instalar
- una impresora en un host, y hacerla accesible desde otros hosts.
- También es útil con impresoras que cuentan con
- interfaces de red que comprenden el protocolo de
- LPD.
-
- Para habilitar la funcionalidad de impresión remota, primero
- instale la impresora en un host, que será el host de
- impresión. Esto lo podemos hacer utilizando los
- pasos descritos en la sección Configuración Simple de una
- impresora. Realice cualquier configuración adicional
- adicional que se requiera, de acuerdo a lo descrito en la
- sección Configuración Avanzada de una
- Impresora. Asegurese de probar la impresora y de que esta
- funcionando correctamente, así como las funciones de
- LPD que haya habilitado. También
- asegurese de que el host local cuenta con
- autorización para usar el servicio de
- LPD en el host remoto
- (vea la sección Restricción de
- Trabajos de Impresoras Remotas).
-
-
- impresora
- red
-
- impresión en red
- Si usted esta utilizando una impresora que cuenta con un
- dispositivo de red, compatible con LPD,
- entonces el host de impresión mencionado
- más adelante, será la misma impresora, y el
- nombre de la impresora será el nombre que
- usted le haya asignado a la impresora. Vea la documentación
- que incluye su impresora y/o el dispositivo de impresión en
- red para detalles al respecto.
-
-
- Si usted esta utilizando una impresora LaserJet Hewlett Packard
- entonces la impresora nombre
- automáticamente hará la conversión de LF a
- CRLF, de tal forma que no será necesario el uso del script
- hpif.
-
-
- Y de esta manera, para los hosts que desee que tengan acceso a la
- impresora, deberá crear una entrada en su fichero
- /etc/printcap, que contenga lo siguiente:
-
-
-
- Nombre la entrada como desee. Para simplificar, quizás
- desee darle el mismo nombre y alias usado en el host de
- impresión.
-
-
-
- La característica lp dejela en
- blanco, de manera explícita (:lp=:).
-
-
-
-
- Cree un directorio para la cola de impresión y
- especifique su ruta en la característica
- sd. LPD
- utilizará este directorio para almacenar los trabajos
- antes de que sean enviados al host de impresión.
-
-
-
- Añada el nombre del host de impresión a la
- característica rm.
-
-
-
- Añada el nombre de la impresora en el host de
- impresión en la característica
- rp.
-
-
-
- Eso es todo. No es necesario listar los filtros de
- conversión, dimensiones de la página, o algo
- adicional en el fichero /etc/printcap.
-
- Aqui tenemos un ejemplo. El host rose cuenta
- con dos impresoras, bamboo y
- rattan. Vamos a habilitar a usuarios en el host
- orchid para que puedan imprimir en esas impresoras.
- Aqui tenemos el fichero /etc/printcap para el
- host orchid (usado en la sección Habilitando las
- Páginas de Encabezado). Ya cuenta con la entrada
- para la impresora teak; y hemos añadido
- las entradas para las impresoras del host rose:
-
- #
-# Fichero /etc/printcap para el host orchid - anadiendo impresoras
-# (remotas) del host rose
-#
-
-#
-# teak es impresora local; esta conectada directamente a orchid:
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/ifhp:\
- :vf=/usr/local/libexec/vfhp:\
- :of=/usr/local/libexec/ofhp:
-
-#
-# rattan esta conectada a rose; envio de trabajos para rattan en rose:
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
-
-#
-# bamboo tambien esta conectada a rose:
-#
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:
-
- Posteriormente, sólo necesitamos crear los directorios
- para la cola de impresión en el host
- orchid:
-
- &prompt.root; mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo
-&prompt.root; chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo
-&prompt.root; chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo
-
- Ahora los usuarios de orchid pueden imprimir en
- rattan y bamboo. Si, por
- ejemplo, un usuario en orchid teclea
-
- &prompt.user; lpr -P bamboo -d sushi-review.dvi
-
- el sistema de cola de LPD en el host
- orchid, copiará el trabajo al directorio
- de cola /var/spool/lpd/bamboo y notará
- que se trata de un trabajo DVI. Tan pronto como el host
- rose tenga espacio en el directorio de cola de
- impresión de bamboo, los dos
- LPDs transferirán el fichero a
- rose. El fichero quedará en espera en
- la cola de rose hasta que sea impreso. Este
- será convertido de DVI a PostScript (dado que
- bamboo es una impresora PostScript), en
- rose.
-
-
-
- Impresoras con Interfaces de Red para Secuencia de Datos
-
- Comunmente, cuando usted adquiere una tarjeta de red para
- impresoras, puede obtener dos versiones: una que emula la cola
- de impresión (que son las de mayor valor), o bien, otra
- que simplemente le permite recibir datos tal como lo hace un
- puerto serial o paralelo (la versió económica). Esta
- sección le explica como utilizar la versión
- económica. Para el uso de la versión de mayor
- valor, vea la sección Impresoras Instaladas en
- Hosts Remotos.
-
- El formato del fichero /etc/printcap le
- permite especificar que puerto serial o paralelo utilizar, y (en
- caso de que utilice un puerto serial) la velocidad de baudio, si
- utiliza control de flujo, retraso en tabulador, conversión
- de nuevas líneas y más. Pero no hay manera de indicar
- la conexión de una impresora que escucha en un puerto TCP/IP
- u otro puerto de red.
-
- Para efecto de enviar datos a una impresora en red, usted necesita
- crear un programa de comunicación que pueda ser llamado desde
- un filtro de texto o de conversión. Aqui tenemos un ejemplo
- de dicho programa: el script netprint, que toma
- todos los datos de la entrada estandar y los envia a un impresora
- conectada a la red. Hemos especificado el nombre de host de la
- impresora como primer argumento y el puerto al que esta conectado
- como segundo argumento, en netprint. Note que
- este tipo de soporte sólo trabaja en una vía (de FreeBSD
- a la impresora); gran cantidad de impresoras cuentan con soporte de
- ambas vías, y quizás desee tomar ventaja de esto (para
- obtener estatus de impresión, contabilidad, desempeño,
- etc.).
-
- #!/usr/bin/perl
-#
-# netprint - Filtro de texto para impresoras en red
-# Instalado en /usr/local/libexec/netprint
-#
-$#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>";
-
-$printer_host = $ARGV[0];
-$printer_port = $ARGV[1];
-
-require 'sys/socket.ph';
-
-($ignore, $ignore, $protocol) = getprotobyname('tcp');
-($ignore, $ignore, $ignore, $ignore, $address)
- = gethostbyname($printer_host);
-
-$sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address);
-
-socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol)
- || die "Can't create TCP/IP stream socket: $!";
-connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
-while (<STDIN>) { print PRINTER; }
-exit 0;
-
- Una vez hecho este script, podemos utilizarlo en varios filtros.
- Supongamos que contamos con la impresora de línea Diablo 750-N
- conectada a la red. La impresora acepta datos para impresión
- en el puerto 5100. El nombre de host que tiene la impresora es
- scrivener. El filtro de texto a usar quedaría de la
- siguiente manera:
-
- #!/bin/sh
-#
-# diablo-if-net - Filtro de texto para la impresora Diable en `scrivener' usando
-# el puerto 5100. Instalado en /usr/local/libexec/diablo-if-net
-#
-exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100
-
-
-
-
- Restricción del Uso de la Impresora
-
-
- impresora
- restringiendo el acceso a
-
- Esta sección le da información sobre la
- restricción en el uso de la impresora. El sistema de
- LPD le permite controlar quien puede
- acceder a la impresora de ambas formas, local y remota, si los
- usuarios pueden imprimir múltiples copias, que tan grandes
- pueden ser los trabajos de impresión, y limitar el tamaño
- de la cola de impresión.
-
-
- Restricción de Copias Multiples
-
- El sistema de LPD le facilita a los
- usuarios el imprimir múltiples copias de un mismo fichero. Los
- usuarios pueden usar (por ejemplo) lpr -#5 para
- imprimir 5 copias de cada fichero enviado. El hecho de que esto sea
- bueno o no es algo que depende de usted.
-
- Si usted siente que las copias múltiples causan trabajo
- inecesario a su impresora, puede deshabilitar la opción
- de &man.lpr.1;, al incluir la característica
- sc en su fichero /etc/printcap.
- Cuando los usuarios utilicen la opción al
- momento de imprimir, verán el siguiente aviso:
-
- lpr: multiple copies are not allowed
-
-
- Recuerde que si usted a configurado una impresora para su
- acceso de forma remota (vea la sección Impresoras
- Instaladas en Hosts Remotos), será necesario que
- también cuente con la característica sc
- en el fichero /etc/printcap del host remoto, o
- bien, los usuarios aun podrán hacer uso de la opción
- , al usar un host diferente.
-
- Aqui presentamos un ejemplo. Este es un ejemplo del fichero
- /etc/printcap, del host rose.
- La impresora rattan es de batalla
- por lo que permitiremos las copias múltiples, pero la
- impresora laser bamboo es más delicada por
- lo que vamos a deshabilitar las copias múltiples, al
- añadir la característica sc:
-
- #
-# Fichero /etc/printcap del host rose - restringe copias multiples en bamboo
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
-
- Ahora, tambié debemos añadir la característica
- sc en el fichero /etc/printcap
- del host orchid (y ya que estamos en eso,
- deshabiltemos las copias múltiples para la impresora
- teak):
-
- #
-# Fichero /etc/printcap del host orchid - sin copias multiples para la
-# impresora local teak o impresora remota bamboo
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\
- :if=/usr/local/libexec/ifhp:\
- :vf=/usr/local/libexec/vfhp:\
- :of=/usr/local/libexec/ofhp:
-
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:
-
- Al incluir la característica sc, hemos
- prevenido el uso de lpr -#, pero eso no previene
- el uso de &man.lpr.1; gran cantidad de veces, o el envío del
- mismo trabajo varias veces, tal como:
-
- &prompt.user; lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign
-
- Existen gran cantidad de formas para prevenir este abuso
- (incluyendo el ignorarlo), que usted queda en libertad de explorar.
-
-
-
-
- Restricción de Acceso a Impresoras
-
- Usted puede controlar quien puede imprimir y en que impresoras,
- haciendo uso del mecanismo de grupos de Unix y de la
- característica rg en el fichero
- /etc/printcap. Simplemente añada en un
- grupo determinado, a los usuarios que desea puedan imprimir en cierta
- impresora, y después añada el nombre del grupo a la
- característica rg.
-
- Todos los usuarios que no pertenezcan a este grupo (incluyendo al
- superusuario (root)), y que deseen imprimir en la
- impresora controlada, les aparecerá este mensaje:
-
- lpr: Not a member of the restricted group
-
- De la misma forma que hicimos con sc (la
- eliminación de copias múltiples), con
- rg deber´ indicarla en los hosts remotos que
- tengan acceso a sus impresoras si lo cree conveniente (vea la
- sección Impresoras Instaladas en
- Hosts Remotos).
-
- Por ejemplo, vamos a permitir que cualquiera imprima en
- rattan, pero solo aquellos que forman parte del
- grupo artistas podrán usar la impresora
- bamboo. Nuevamente tenemos el fichero
- /etc/printcap para el host
- rose:
-
- #
-# Fichero /etc/printcap del host rose - grupo restringido para bamboo
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:rg=artistas:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
-
- Vamos a dejar de lado el otro fichero
- /etc/printcap de ejemplo (el del host
- orchid). Claro esta, que cualquier usuario desde
- orchid puede imprimir en bamboo.
- En este caso podriamos aceptar sólo ciertos accesos desde
- orchid, y esto les daría acceso a la impresora.
- O no.
-
-
- Sólo puede haber un grupo restringido por impresora.
-
-
-
-
- Controlando el Tamaño de los Trabajos Enviados
-
- trabajos de impresión
- Si usted cuenta con gran cantidad de usuarios accesando sus
- impresoras, probablemente necesite establecer un límite
- máximo en el tamaño que deban tener los trabajos
- enviados a imprimir. Después de todo, sólo existe
- tanto espacio libre en el sistema de ficheros como el que se tiene
- en los directorios de cola, y también usted debe asegurarse
- de que exista el espacio suficiente para otros usuarios.
-
-
- trabajos de impresión
- controlando
-
- El sistema de LPD, le permite
- especificar un monto maximo de tamaño en bytes para un trabajo,
- con la característica mx. Las unidades
- están indicadas en blques BUFSIZ, que son
- de 1024 bytes. Si usted le agrega un cero a esta
- característica, no habrá límite en el
- tamaño de los trabajos que se puedan enviar a imprimir; por
- otro lado, si no se especifica la característica
- mx, el límite por default será de
- 1000 bloques.
-
-
- El límite es válido para los
- ficheros del trabajo, y no
- para el tamaño total del trabajo.
-
-
- El sistema de LPD no rehusará
- imprimir los trabajos que exceden el límite, en su lugar
- procederá con la impresión hasta el límite
- indicado. El resto del trabajo quedará descartado. El hecho
- de que este comportamiento sea correcto o no, aun es tema de
- debate.
-
- Ahora permitamonos incluir límites a nuestras impresoras
- de ejemplo rattan y bamboo. En
- virtud de que esos artistas tienden a imprimir grandes
- trabajos en PostScript, los vamos a limitar a cinco megabytes. En la
- impresora de línea no vamos a especificar límite:
-
- #
-# Fichero /etc/printcap del host rose
-#
-
-#
-# Sin limite de tamano en el trabajo:
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:mx#0:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:
-
-#
-# Con limite de cinco megabytes:
-#
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
-
- Nuevamente, los límites aplican sólo para los
- usuarios locales. Si se han configurado las impresoras para su
- acceso de forma remota, los usuarios que accesen remotamente no
- tendrán esta limitante. Para efecto de que esto sea
- válido en los usuarios remotos, deberá agregar la
- característica mx en el fichero
- /etc/printcap de los hosts remotos. Vea la
- sección Impresoras Instaladas en
- Hosts Remotos para mayor información sobre la
- instalación de impresoras en red.
-
- Existe otra forma especializada para limitar el tamaño
- de los trabajos, desde impresoras remotas, vea la sección Restricción de
- Trabajos de Impresoras Remotas.
-
-
-
- Restricción de Trabajos de Impresoras Remotas
-
- El sistema de cola de LPD cuenta con
- varios metodos para restringir la impresión de trabajos enviados
- por hosts remotos:
-
-
-
- Restricciones del Host
-
-
- Haciendo uso de los ficheros
- /etc/hosts.equiv y
- /etc/hosts.lpd, usted puede controlar
- el LPD local, para determinar
- de que hosts remotos se acepten conexiones. En este
- caso, LPD verifica, en caso de una
- petición, que el host remoto se encuentre listado en
- agluno de estos dos ficheros. Si no es así,
- LPD rechazará la
- petición.
-
- El formato de estos ficheros es simple: el nombre de un host
- por línea. Note que el fichero
- /etc/hosts.equiv también es usado por
- el protocolo &man.ruserok.3;, y afecta programas como &man.rsh.1;
- y &man.rcp.1;, así que tenga cuidado al editarlo.
-
- Por ejemplo, este es el fichero
- /etc/hosts.lpd del host
- rose:
-
- orchid
-violet
-madrigal.fishbaum.de
-
- Esto significa que rose aceptará
- peticiones de los hosts orchid,
- violet y
- madrigal.fishbaum.de. Si cualquier
- otro host intenta accesar el LPD de
- rose, el acceso será denegado.
-
-
-
-
- Restricciones de Tamaño
-
-
- Usted puede controlar cuanto espacio libre se requiere, en el
- sistema de fichero donde se localiza el directorio del sistema
- de impresión. Cree un fichero llamado
- minfree, en el directorio local de la cola
- de impresión. En ese fichero añada un numero que
- representa el numero de bloques libres que deben haber en el
- disco (512 bytes), para efecto de aceptar un trabajo de forma
- remota.
-
- Esto permite asegurarle que los usuarios remotos no llenaran
- su disco duro. Esto también puede usarse para dar cierta
- prioridad a los usuarios locales: ya que podrá colocar sus
- trabajos en espera en la cola de impresión, hasta que la
- cantidad de espacio libre sea inferior a la indicada en el
- fichero minfree.
-
- Por ejemplo, incluyamos a minfree en
- la impresora bamboo. Para esto, primero
- examinamos el fichero /etc/printcap, para
- encontrar los datos de la impresora; aqui tenemos la entrada de
- bamboo:
-
- bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\
- :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:mx#5000:\
- :if=/usr/local/libexec/psif:\
- :df=/usr/local/libexec/psdf:
-
- El directorio de la cola de impresión es indicado por
- la característica sd. Vamos a dejar
- tres megabytes (que son 6144 bloques de disco) como espacio libre
- que debe existir en el sistema de ficheros, para que
- LPD acepte trabajos remotos:
-
- &prompt.root; echo 6144 > /var/spool/lpd/bamboo/minfree
-
-
-
-
-
- Restricciones por Usuario
-
-
- Usted puede controlar que usuarios remotos pueden imprimir en
- impresoras locales, al incluir la característica
- rs en /etc/printcap.
- Cuando rs aparece en la entrada de una
- impresora que esta conectada localmente,
- LPD aceptará trabajos de
- usuarios remotos, siempre y cuando el
- usuario que ha enviado el trabajo, tenga alguna cuenta, con el
- mismo nombre de usuario en el host local. De otra forma
- LPD no hará el trabajo.
-
- Esta característica es particularmente útil en
- medios donde (por ejemplo) existen varias areas que comparten
- una red, y algunos usuarios traspasan las fronteras
- departamentales. Al otorgarles una cuenta en su sistema, pueden
- hacer uso de sus impresoras, desde su propio departamento de
- sistemas. Si solo desea permitirles hacer uso de sus impresoras
- y no de los recursos de su sistema, puede
- asignarles cuentas tontas (token accounts), que
- no cuentan con un directorio home y con un un shell inservible
- como /usr/bin/false.
-
-
-
-
-
-
-
- Contabilidad del Uso de la Impresora
-
-
- contabilidad
- impresora
-
- Así que usted requiere de cobrar por las impresiones.
- ¿Y por qué no?, el papel y la tinta cuestan dinero. Y
- también están los costos de mantenimiento—las
- impresoras estan llenas de partes móviles que tienden a
- descomponerse. Usted ha analizado sus impresoras, los patrones de
- uso, y costos de mantenimiento y ha llegado a un costo
- por-página (o por-pie, por-metro, o por-loquesea). Ahora bien,
- ¿Cómo empezar a llevar una contabilidad de las
- impresiones?.
-
- Bueno, la mala noticia es que LPD no
- provee de mucha ayuda en esta area. El conteo depende en gran parte
- en el tipo de impresora con que usted cuenta, el formato en que se
- imprime y de sus requerimientos para cobrar por
- el uso de la impresora.
-
- Para implementar un contador, deberá modificar el filtro de
- texto (para cobrar por impresiones en texto plano) y los filtros de
- conversión (para cobrar por impresiones en otro formato), para
- efecto de llevar un conteo de páginas o peticiones a la impresora
- para imprimir. Esto no podrá llevarse a cabo con un simple filtro
- de salida, dado que no puede llevar un conteo. Vea la sección
- Filtros.
-
- En términos generales existen dos formas de hacer esto:
-
-
-
- El contador periodico es la forma más
- comun, quizás por que es la más sencilla. Cuando
- alguien envia una impresión, el filtro registra el usuario,
- host y numero de páginas en un fichero contador. Cada mes,
- semestre, año o cualquier periodo de tiempo que prefiera,
- puede revisar estos ficheros, de tal forma que sepa cuantas
- impresiones ha realizado cada usuario y poder cobrar por las mismas.
- Después de limpiar estos ficheros puede empezar un nuevo
- periodo de cero.
-
-
-
- El contador por tiempo es menos conocido,
- quizás por su dificultad de uso. Este metodo hace que sus
- filtros cobren al usuario por sus impresiones, en cuanto hacen uso
- de las impresoras. Como las cuotas de disco, el conteo es inmediato.
- Con esto, usted puede prevenir que usuarios impriman cuando sus
- cuentas están en numeros rojos, y quizás en cierto modo
- proveer a sus usuarios de una forma de verificar sus cuotas de
- impresión. Pero este metodo requiere de uso de bases
- de datos, para dar seguimiento a los usuarios y sus cuotas.
-
-
-
- El sistema de cola de LPD cuenta con
- soporte para ambos metodos: en virtud de que usted debe proveer los
- filtros (bueno, casi todo el tiempo), también debe proveer del
- código para el contador. Pero hay un lado positivo: usted cuenta
- con una enorme flexibilidad en cuanto a metodos de contabilidad se
- refiere. Por ejemplo, puede utilizar un contador periodico o por
- tiempo. Usted selecciona que información debe quedar registrada:
- nombre de usuario, nombre del host, tipo de trabajo, páginas
- impresas, medidas del papel usado, tiempo que duro en imprimir el
- trabajo, y así sucesivamente. Y para hacer esto, sólo debe
- modificar sus filtros.
-
-
- Contabilidad de Impresiones Rápida y Sucia
-
- FreeBSD cuenta con dos programas que pueden auxiliarlo para
- instalar un simple contador periodico. Ellos son; el filtro de
- texto lpf, descrito en la sección lpf: un Filtro de Texto, y
- &man.pac.8;, un programa para reunir y totalizar la información
- de los ficheros de contador de impresiones.
-
- Como se menciono en la sección de filtros (Como Trabajan los Filtros),
- LPD inicia los filtros de texto y
- conversión con el nombre del fichero contador a usar en la
- línea de comando del filtro. Los filtros pueden usar este
- argumento para saber en donde registrar la información. El
- nombre de este fichero se indica en la característica
- af del fichero /etc/printcap,
- y si no se indica su ruta completa, se hará referencia al
- directorio de la cola de impresión.
-
- LPD inicia lpf con
- los argumentos de alto y ancho del papel (tomados de
- pw y pl). lpf
- usa estos argumentos para determinar cuanto papel será
- necesario. Una vez enviado el fichero a impresión, se escribe
- en el fichero contador un registro. Este registro es así:
-
- 2.00 rose:andy
-3.00 rose:kelly
-3.00 orchid:mary
-5.00 orchid:mary
-2.00 orchid:zhang
-
- Deberá usar un fichero contador para cada impresora, dado
- que lpf no cuenta con una lógica de
- bloqueo de ficheros incluida, y dos lpf escribiendo
- al mismo tiempo en un fichero podrian corromperlo. Una forma segura
- para garantizar el uso de ficheros distintos por impresora, es usar
- af=acct en el fichero
- /etc/printcap. De esta forma contaremos con el
- fichero contador de cada impresora por separado, en el directorio de la
- cola de impresión, en un fichero llamado
- acct.
-
- Cuando sea el momento de cobrar a los usuraios, ejecute el programa
- &man.pac.8;. Sólo dirijase al directorio de cola, del cual
- desea recabar la información y teclee pac.
- Usted obtendrá un resumen similar al siguiente:
-
- Login pages/feet runs price
-orchid:kelly 5.00 1 $ 0.10
-orchid:mary 31.00 3 $ 0.62
-orchid:zhang 9.00 1 $ 0.18
-rose:andy 2.00 1 $ 0.04
-rose:kelly 177.00 104 $ 3.54
-rose:mary 87.00 32 $ 1.74
-rose:root 26.00 12 $ 0.52
-
-total 337.00 154 $ 6.74
-
- Estos son los argumentos que puede pasar a &man.pac.8;:
-
-
-
-
-
-
- De que impresora hacer el resumen.
- Esta opción funciona, solo si existe una ruta absoluta, en la
- característcia af del fichero
- /etc/printcap.
-
-
-
-
-
-
-
- Ordenar la salida por costo en lugar de por usuario
- alfabeticamente.
-
-
-
-
-
-
-
- Ignorar el nombre de host. Con esta opción,
- el usuario smith del host
- alpha, es el mismo usuario
- smith del host gamma. Sin
- esta opción, se consideran usuarios diferentes.
-
-
-
-
-
-
-
- Computar cargos con tal precio
- en dólares por página o por pie, en lugar del
- precio tomado de la característica pc
- del fichero /etc/printcap, o dos centavos
- (precio por default). Puede indicar el
- precio como un numero de punto
- flotante.
-
-
-
-
-
-
-
- Invertir el orden de acomodo.
-
-
-
-
-
-
-
- Crear un fichero de resumen y reiniciar el fichero contador.
-
-
-
-
-
- nombre
- …
-
-
- Imprimir la información del usuario
- nombre unicamente.
-
-
-
-
- En el resumen que genera &man.pac.8; por default, podrá
- observar el numero de páginas impresas por cada usuario desde
- diferentes hosts. Si en su sitio, el host no es importante (por que
- los usuarios pueden usar cualquier host), ejecute
- pac -m, para producir el siguiente resumen:
-
- Login pages/feet runs price
-andy 2.00 1 $ 0.04
-kelly 182.00 105 $ 3.64
-mary 118.00 35 $ 2.36
-root 26.00 12 $ 0.52
-zhang 9.00 1 $ 0.18
-
-total 337.00 154 $ 6.74
-
-
- Para calcular el monto adeudado, &man.pac.8; utiliza la
- característica pc del fichero
- /etc/printcap (que por default utiliza 200, o
- 2 centavos por página). Especifique en cientos de centavos
- el precio a cobrar por página o por pie, que desea cobrar, en
- esta característica. Puede reemplazar este valor cuando ejecuta
- &man.pac.8; con la opción . Las unidades de
- esta opción estan expresadas en dólares, y no en cientos
- de centavos. Por ejemplo,
-
- &prompt.root; pac -p1.50
-
- hace que cada página tenga un costo de un dolar con cincuenta
- centavos. Realmente se puede exceder en las utilidades usando esta
- opción.
-
- Finalmente, ejecutando pac -s puede guardar la
- el resumen, en un fichero, que es nombrado al igual que el fichero
- contador de la impresora, pero con _sum al
- inicio del fichero. Posteriormente reinicia el fichero contador.
- Cuando ejecuta &man.pac.8; nuevamente, lee el fichero resumen, para
- obtener los totales y posteriormente añade la información
- del fichero contador normal.
-
-
-
- ¿Cómo Contabilizar las Páginas
- Impresas?
-
- Para efecto de que pueda obtener un conteo más cercano a la
- realidad, necesita poder determinar cuanto papel utiliza cada trabajo.
- Este es el problema esencial del conteo de impresiones.
-
- Para impresiones en texto, este problema no es tan difícil
- de resolver: puede contabilizar el numero de líneas que tiene un
- trabajo y dividirlas entre el numero de líneas totales por
- página que maneja la impresora. No olvide contabilizar los
- retrocesos del fichero que sobreimprimen líneas, o de las largas
- líneas lógicas que se justifican en en una o más
- líneas físicas.
-
- El filtro de texto lpf (introducido en lpf: un Filtro de Texto) toma
- en cuenta todas estas cosas cuando hace el conteo. Si usted esta
- escribiendo un filtro de texto que requiere contabilizar, quizás
- desee examinar el código fuente del lpf.
-
-
- Pero, ¿Cómo manejar otros formatos?
-
- Bueno, para conversiones DVI-a-LaserJet o DVI-a-PostScript, puede
- hacer que su filtro pase la información de salida a
- dvilj o dvips y ver cuantas
- páginas fueron convertidas. Puede hacer cosas similares con
- otros formatos y filtros de conversión.
-
- Pero estos metodos sufren del hecho de que la impresora puede no
- imprimir estas páginas. Po ejemplo, se pueden atorar, acabarse
- la tinta, o explotar—y el usuario de todas formas se le
- cobrará.
-
- Entonces, ¿qué puede hacer?
-
- Sólo existe una forma segura de llevar
- un conteo confiable. Adquiera una impresora que
- pueda indicarle cuanto papel utiliza, y conectela por medio de un
- puerto serial o en red. Casi todas las impresoras PostScript cuentan
- con soporte para esto. Existen otras marcas u modelos que
- también cuentan con el soporte (por ejemplo, las impresoras en
- red Imagen laser). Modifique los filtros de estas impresoras para que
- lleven un conteo de las oáginas impresas y que almacenen los
- registros basados en el valor only. No se
- requiere de un conteo de líneas o de examinar el fichero de
- errores.
-
- Claro esta que usted puede ser muy generoso y no cobrar por las
- impresiones.
-
-
-
-
- Uso de las Impresoras
+ Cómo utilizar impresoras
-
- impresora
- uso
-
- Esta sección le indica como usar las impresoras que ha instalado
- con FreeBSD. Aqui tenemos los comandos de usuario mas comunes:
-
-
-
- &man.lpr.1;
-
-
- Imprime trabajos
-
-
-
-
- &man.lpq.1;
-
-
- Verifica los trabajos pendientes
-
-
-
-
- &man.lprm.1;
-
-
- Elimina un trabajo de la cola de impresión
-
-
-
-
- También se cuenta con un comando de administración,
- &man.lpc.8;, descrito en la sección
- Administración de la Cola de Impresión de
- LPD, usado para controlar las
- impresoras y sus peticiones.
-
- Las tres opciones &man.lpr.1;, &man.lprm.1;, y &man.lpq.1;, aceptan el
- argumento para
- especificar en que impresora realizar la impresión/petición,
- de acuerdo a lo indicado en /etc/printcap. Esto le
- permite imprimir, remover o consultar los trabajos en varias impresoras.
- Si no usa el argumento , estos comandos haran uso de la
- impresora especificada en la variable de entorno PRINTER.
- Finalmente, si no cuenta con la variable de entorno PRINTER
- definida, estos comandos utilizarán la impresora por default, que
- es lp.
-
- Por lo tanto, el termino impresora por default,
- hace referencia a la impresora definida en la variable de entorno
- PRINTER, o en su defecto a la impresora nombrada
- lp, cuando no este definida la variable de entorno
- PRINTER.
-
-
- Trabajos de Impresión
-
- Para imprimir un fichero, teclee:
-
- &prompt.user; lpr fichero...
-
- imprimir
- Lo anterior imprimirá los ficheros nombrados, en la impresora
- por default. Si no indica el nombre del fichero, &man.lpr.1;
- leerá los datos a imprimir de la entrada estandar. Por ejemplo,
- este comando imprime algunos ficheros importantes del sistema:
-
- &prompt.user; lpr /etc/host.conf /etc/hosts.equiv
-
- Para seleccionar una impresora, teclee:
-
- &prompt.user; lpr -P nombre-de-la-impresorafichero...
-
- Este ejemplo imprime una larga lista del directorio actual, en la
- impresora nombrada rattan:
-
- &prompt.user; ls -l | lpr -P rattan
-
- En virtud de que no se le paso fichero alguno para imprimir a
- &man.lpr.1;, lpr toma los datos de la entrada
- estandar, que en este caso es la salida del comando ls
- -l.
-
- EL comando &man.lpr.1; también puede aceptar gran variedad de
- opciones para controlar el formato, aplicar conversiones a los ficheros,
- generar copias multiples, etc.. Para mayor información, vea la
- sección Opciones de
- Impresión.
-
-
-
- Verificando los Trabajos
-
- trabajos de impresión
- Cuando usted utiliza &man.lpr.1; para imprimir, los datos que desea
- imprimir se colocan juntos en un paquete llamado trabajo de
- impresión, el cual es enviado al sistema de cola de
- LPD. Cada impresora cuenta con un orden de
- impresión de trabajos, y su trabajo espera su turno en este orden,
- junto con otros trabajos suyos y de otros usuarios. El criterio del
- orden será los primeros-en-llegar son los primeros-en-salir.
-
-
- Para ver los trabajos pendientes de la impresora por default, teclee
- &man.lpq.1;. Para una impresora en especial, use la opción
- . Por ejemplo, el comando
-
- &prompt.user; lpq -P bamboo
-
- le muestra los trabajos pendientes de la impresora
- bamboo. Aqui tenemos un ejemplo de la salida del
- comando lpq:
-
- bamboo is ready and printing
-Rank Owner Job Files Total Size
-active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes
-2nd kelly 10 (standard input) 1635 bytes
-3rd mary 11 ... 78519 bytes
-
- Esto muestra que hay tres trabajos en espera, para
- bamboo. El primer trabajo enviado por el usuario
- kelly, tiene asignado en numero de trabajo 9. Cada
- trabajo en una impresora, se le asigna un numero único. La
- mayor parte del tiempo puede ignorar el numero de trabajo, pero este
- será necesario en caso de que desee cancelar el trabajo; vea
- la sección Eliminando
- Trabajos para mas detalles al respecto.
-
- El trabajo numero nueve consiste en dos ficheros; al pasar varios
- trabajos a &man.lpr.1;, estos son tratados como parte de un solo
- trabajo. Este es el trabajo actual, activo (note la palabra
- active bajo la columna Rank), que
- quiere decir, que la impresora debe estar imprimiendo este trabajo. El
- segundo trabajo consiste en datos pasados al comando &man.lpr.1; por la
- entrada estandar. El tercer trabajo proviene del usuario
- mary; que es un trabajo mucho mas grande. La ruta
- que esta tratando de ser descrita es muy larga, de tal forma que
- &man.lpq.1; solo lo representa con tres puntos.
-
- La primer línea de la salida de &man.lpq.1; también es
- de utilidad: esta le indica que esta haciendo la impresora en este
- momento (o cuando menos, que es lo que LPD
- piensa que la impresora esta haciendo).
-
- El comando &man.lpq.1; tambien cuenta con la opción
- , para generar una salida mas detallada. Aqui tenemos
- un ejemplo de lpq -l:
-
- waiting for bamboo to become ready (offline ?)
-kelly: 1st [job 009rose]
- /etc/host.conf 73 bytes
- /etc/hosts.equiv 15 bytes
-
-kelly: 2nd [job 010rose]
- (standard input) 1635 bytes
-
-mary: 3rd [job 011rose]
- /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes
-
-
-
- Eliminando Trabajos
-
- Si cambia de parecer con respecto a imprimir un trabajo, puede
- eliminarlo de los trabajos pendientes, con el comando &man.lprm.1;.
- Incluso puede usar el comando &man.lprm.1; para elminar un trabajo
- activo, pero algunos o todos los demas trabajos aun seran impresos.
-
-
- Para eliminar un trabajo de la impresoras por default, primero use
- &man.lpq.1; para saber el numero de trabajo. Despué teclee:
-
- &prompt.user; lprm numero-trabajo
-
- Para eliminar un trabajo de un a impresora especifica, utilice la
- opción . El siguiente comando elimina el
- trabajo numero 10 de los trabajos pendientes de la impresora
- bamboo:
-
- &prompt.user; lprm -P bamboo 10
-
- El comando &man.lprm.1; cuenta con algunas opciones:
-
-
-
- lprm -
-
-
- Elimina todos los trabajos (de la impresora por default) y que le
- pertenezcan a usted.
-
-
-
-
- lprm usuario
-
-
- Elimina todos los trabajos (de la impresora por default) que
- pertenecen a usuario. El superusuario puede
- eliminar trabajos de otros: usted solo puede eliminar sus trabajos.
-
-
-
-
- lprm
-
-
- Cuando no se pasa ningun nombre de usuario, o ,
- en la línea de comando, &man.lprm.1; elimina el trabajo
- activo de la impresora por default, si este le pertenece. El
- superusuario puede eliminar cualquier trabajo activo.
-
-
-
-
- Simplemente use la opción con las opciones
- comentadas, para que apliquen en una impresora especifica. Por ejemplo,
- el siguiente comando elimina todos los trabajos pendientes del usuario
- actual en la impresora rattan:
-
- &prompt.user; lprm -P rattan -
-
-
- SI usted esta trabajando en una red, el comando &man.lprm.1;, solo le
- permitira eliminar trabajos del host del cual se enviaron dichos trabajos,
- incluso si la impresora esta habilitada desde otros hosts. La siguiente
- secuencia de comandos demuestra esto:
-
- &prompt.user; lpr -P rattan mifichero
-&prompt.user; rlogin orchid
-&prompt.user; lpq -P rattan
-Rank Owner Job Files Total Size
-active seeyan 12 ... 49123 bytes
-2nd kelly 13 mifichero 12 bytes
-&prompt.user; lprm -P rattan 13
-rose: Permission denied
-&prompt.user; logout
-&prompt.user; lprm -P rattan 13
-dfA013rose dequeued
-cfA013rose dequeued
-
-
-
-
-
- Más alla del Texto Plano: Opciones de Impresión
-
- El comando &man.lpr.1; cuenta con soporte para multiples opciones que
- controlan el formato del texto, conversión de gráficos y
- otros formatos, producción de copias multiples, manejo de los
- trabajos, y más. Esta sección describe estas opciones.
-
-
-
- Opciones de Formato y Conversión
-
- Las siguientes opciones de &man.lpr.1; controlan el formato de los
- ficheros en el trabajo. Utilice estas opciones si el trabajo no es de
- texto plano o si desea dar formato al texto plano por medio de la
- utilidad &man.pr.1;.
-
- TeX
- Por ejemplo, el siguiente comando imprime un fichero DVI (desde un
- sistema de escritura TeX) llamado fish-report.dvi
- a la impresora bamboo:
-
- &prompt.user; lpr -P bamboo -d fish-report.dvi
-
- Estas opciones aplican para todos los ficheros dentro del trabajo, por
- lo que no debe mezclar (por decir) ficheros DVI y ditroff en el mismo
- trabajo. Para hacer esto, envie los trabajos a imprimir por separado,
- usando la opción que corresponda a cada trabajo.
-
-
- Todas estas opciones, excepto y requieren de filtros de conversión instalados para la
- impresora destino. Por ejemplo, la opción
- requiere de un filtro para DVI. La sección Filtros de Conversión
- le da más detalles al respecto.
-
-
-
-
-
-
-
- Imprimir ficheros cifplot.
-
-
-
-
-
-
-
- Imprimir ficheros DVI.
-
-
-
-
-
-
-
- Imprimir ficheros de texto FORTRAN.
-
-
-
-
-
-
-
- Imprimir datos plot.
-
-
-
-
-
-
-
- Sangrar la salida con el numero de
- columnas indicado; si omite numero, el
- numero será de 8 columnas. Esta opción trabaja bien
- solo con algunos filtros de conversión.
-
-
- No debe dejar espacios entre la opción
- y el numero.
-
-
-
-
-
-
-
-
- Imprimir datos de texto literal, incluyendo caracteres de
- control.
-
-
-
-
-
-
-
- Imprimir datos ditroff (troff independiente del dispositivo).
-
-
-
-
- -p
-
-
- Formatear el texto plano con &man.pr.1; antes de imprimir. Vea
- &man.pr.1; para más información.
-
-
-
-
-
-
-
- Use titulo en la cabecera de
- &man.pr.1;, en lugar del nombre del fichero. Esta opción solo
- tiene efecto cuando se usa con .
-
-
-
-
-
-
-
- Imprimir datos troff.
-
-
-
-
-
-
-
- Imprimir datos raster.
-
-
-
-
- Aqui tenemos un ejemplo: este comando imprime una bonita y formateada
- versión de la página de ayuda de &man.ls.1;, en la impresora
- por default:
-
- &prompt.user; zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t
-
- El comando &man.zcat.1; descomprime la fuente de la página de
- ayuda &man.ls.1; y lo pasa al comando &man.troff.1;, que le da formato y
- crea la salida GNU troff, la cual es pasada a &man.lpr.1;, que envia el
- trabajo a la cola de LPD. Como usamos la
- opción con &man.lpr.1;, el sistema de cola va
- a convertir la salida GNU troff a datos entendibles para la impresora,
- cuando se imprime.
-
-
-
- Opciones para Manejar los Trabajos
-
- Las siguientes opciones de &man.lpr.1;, le indican a
- LPD que debe manejar el trabajo de
- una forma especial:
-
-
-
- -# copias
-
-
- Producir un numero de copias de cada
- fichero en el trabajo, en vez de una sola copia. Un administrador
- puede inhabilitar esta oprción para reducir el desgaste de la
- impresora y alentar el uso de la fotocopiadora. Vea la sección
- Restriccón
- de Copias Multiples.
-
- Este ejemplo imprime tres copias de
- parser.c seguido de tres copias de
- parser.h en la impresora por default:
-
- &prompt.user; lpr -#3 parser.c parser.h
-
-
-
-
- -m
-
-
- Enviar correo después de completar el trabajo. Con esta
- opción, el sistema LPD enviara un
- correo a su cuenta cuando termina de imprimir. En su mensaje, le
- informará si el trabajo termino con exito o si hubo algun
- error, y (normalmente) que tipo de error fué.
-
-
-
-
- -s
-
-
- No copie el fichero al directorio de la cola, en su lugar crear
- un enlace simbolico.
-
- Si usted esta imprimiendo un trabajo de gran tamaño,
- quizás esta es una buena opción. Esta opción le
- ahorra espacio en el directorio de cola (donde su trabajo puede
- terminar con el espacio libre donde reside su directorio). Esta
- opción también le ahorra tiempo, en virtud de que
- LPD no tendrá que copiar todos y
- cada uno de los bytes del trabajo al directorio.
-
- Aunque esto tiene su inconveniente: dado que
- LPD estará haciendo uso del fichero
- original, no lo podrá modificar o eliminar hasta que termine
- la impresión.
-
-
- Si usted esta en un entorno de red, LPD
- eventualmente copiará ficheros del host local al host remoto,
- así que la opción le puede ahorrar
- espacio solo en el directorio del host local, no en los remotos.
- Aun con esto, la opcion es de gran utilidad.
-
-
-
-
-
- -r
-
-
- Eliminar los ficheros del trabajo, una vez que hayan sido
- copiados al directorio de la cola, o después de que hayan sido
- impresos, cuando se use la opción . Tenga
- cuidado con esta opción!
-
-
-
-
-
-
- Opciones de Páginas de Encabezado
-
- Cuando alguna de las siguientes opciones son pasadas a &man.lpr.1;,
- ajustan el texto que normalmente aparece en la página encabezado
- del trabajo. Si las páginas de encabezado son suprimidas, estas
- opciones no tendrán efecto alguno. Vea la sección Páginas de
- Encabezado para más información sobre la
- configuración de las Páginas de Encabezado.
-
-
-
- -C texto
-
-
- Reemplazar el nombre del host del encabezado con este
- texto. Normalmente el nombre del host es el
- nombre del host del cual se esta imprimiendo.
-
-
-
-
- -J texto
-
-
- Reemplazar el nombre del trabajo en el encabezado con este
- texto. Normalmente el nombre del trabajo es
- el nombre del primer fichero del trabajo, o stdin si
- esta imprimendo de la entrada estandar.
-
-
-
-
- -h
-
-
- No imprimir página de encabezado.
-
-
- En algunos sitios esta opción puede no tenere efecto alguno,
- debido al metodo usado para generar las páginas de encabezado.
- Vea la sección Páginas de
- Encabezado para más detalles.
-
-
-
-
-
-
-
-
- Administración de la Cola de Impresión de
- LPD
-
- Como administrador de sus impresoras, usted deberá
- instalarlas, configurarlas, y probarlas. Con el comando &man.lpc.8;
- usted podrá interactuar con las impresoras de una forma más
- completa. Con &man.lpc.8; usted podrá
-
-
-
- Iniciar y detener las impresoras
-
-
-
- Habilitar y deshabilitar sus trabajos pendientes
-
-
-
- Modificar el orden de los trabajos pendientes.
-
-
-
- Primero, una nota de terminología: si una impresora es
- detenida, no podrá contar con una cola de
- trabajos pendientes. Los usuarios podrán enviar sus trabajos,
- que quedarán en espera hasta que la impresora se
- iniciada o su cola de trabajos pendientes sea
- purgada.
-
- Si la cola de trabajos pendientes es
- deshabilitada, ningun usuario (excepto
- root) podrá enviar trabajos a la impresora.
- Una cola de trabajos pendientes habilitada,
- permitirá el envio de trabajos. Una impresora puede ser
- iniciada para una cola de trabajos que esta
- deshabilitada, en cuyo caso continuará imprimiendo los trabajos de
- la cola de trabajos pendientes, hasta que ya no exista ninguno.
-
- En general, usted debe de contar con privilegios de
- root para hacer uso del comando &man.lpc.8;. Los
- usuarios comunes solo pueden usar &man.lpc.8; para verificar el
- estatus de una impresora y para reiniciar una impresora detenida.
-
- Aqui tenemos un resumen de los comandos de &man.lpc.8;. La mayor
- parte de estos comandos usan el argumento
- nombre-impresora para indicarle en cual debe
- operar. Como este argumento puede usar all, para
- indicarle que opere en todas las impresoras listadas en el fichero
- /etc/printcap.
-
-
-
- abort
- nombre-impresora
-
-
- Cancelar el trabajo actual y detener la impresora. Los usuarios
- podrán aun enviar sus trabajos si la cola de pendientes esta
- habilitada.
-
-
-
-
- clean
- nombre-impresora
-
-
- Eliminar ficheros viejos del directorio de cola de
- impresión. Ocasionalmente, los ficheros que ya han sido
- impresos no son eliminados correctamente por
- LPD, particularmente si hubo errores durante
- la impresión o si se realizaron otros trabajos administrativos
- durante la misma. Este comando localiza ficheros que no pertenecen al
- directorio y los elimina.
-
-
-
-
- disable
- nombre-impresora
-
-
- Deshabilita la cola de pendientes para nuevos trabajos. Si la
- impresora esta activa, se continuan imprimiendo los trabajos en la
- cola de pendientes. El superusuario (root)
- siempre podrá enviar trabajos, incluso cuando se use esta
- opción.
-
- Este es un comando útil cuando se esta probando una nueva
- impresora o instalando un filtro: deshabilitar la cola de pendientes y
- enviar los trabajos como root. Otros usuarios no
- podrán enviar trabajos, hasta que la impresora haya sido
- configurada correctamente y se re-habilite la cola de pendientes, con
- el comando enable.
-
-
-
-
- down nombre-impresora
- mensaje
-
-
- Usar el comando down para una impresora, equivale a usar el comando
- disable seguido del comando stop.
- El mensaje que se ingrese, aparecerá
- como el estatus de la impresora, cada vez que un usuario verifique su
- estatus con &man.lpq.1; o con lpc status.
-
-
-
-
- enable
- nombre-impresora
-
-
- Habilitar la cola de pendientes. Los usuarios pueden enviar sus
- trabajos pero la impresora no imprimira nada hasta que se
- inicializada.
-
-
-
-
- help
- nombre-del-comando
-
-
- Mostrar la ayuda del comando
- nombre-del-comando. Si no se indica el
- nombre-del-comando, se muestra un resumen
- de los comandos disponibles.
-
-
-
-
- restart
- nombre-impresora
-
-
- ReIniciar la impresora. Los usuarios comunes pueden usar esta
- opción en caso de que por alguna razón
- LPD se paralice, pero no pueden iniciar una
- impresora detenida con algunos de los comandos stop
- o down. El comando restart es
- equivalente a ejecutar abort seguido del comando
- start.
-
-
-
-
- start
- nombre-impresora
-
-
- Iniciar la impresora. La impresora comenzará a imprimir
- los trabajos en la cola de pendientes.
-
-
-
-
- stop
- nombre-impresora
-
-
- Detiene la impresora. La impresora terminará el trabajo
- actual y dejará de imprimir. Aun cuando la impresora esta
- detenida, los usuarios pueden enviar sus trabajos a la cola de
- pendientes de la impresora.
-
-
-
-
- topq nombre-impresora
- trabajo-o-usuario
-
-
- Modificar el orden de la cola de pendientes de la impresora
- nombre-impresora, colocando los trabajos con
- el identificador trabajo o que pertenecen al
- usuario usuario, en primer lugar de la cola.
- Para este comando no puede hacer uso de la opción
- all en lugar de
- nombre-impresora.
-
-
-
-
- up
- nombre-impresora
-
-
- Usar el comando up en una impresora; es lo opuesto al comando
- down. Equivalente a start
- seguido del comando enable.
-
-
-
-
- &man.lpc.8; acepta estos comandos desde la línea de comandos.
- Si no ingresa aglun comando, &man.lpc.8; entra en modo interactivo, donde
- puede ingresar los comandos hasta que teclee exit,
- quit o fin-del-archivo (EOF).
-
+ Pendiente de traducción.
-
+
- Alternativas al Sistema de Impresión Estándar
-
- Si ha estado leyendo este manual desde el principio, para este momento
- usted ha aprendido practicamente todo lo que debe saber del sistema
- LPD que viene con FreeBSD. Y ha podido observar
- algunas de sus debilidades, lo que naturalmente nos lleva a la pregunta:
- ¿Qué otros sistema de impresión existen (y que
- trabajen bajo FreeBSD)?.
+ Alternativas a LPD
-
-
- LPRng
+ Pendiente de traducción
- LPRng
-
- LPRng, que presumiblemente significa
- LPR: the Next Generation (LPR: la Siguiente
- Generación), es PLP completamente hecho de nuevo. Patrick Powell
- y Justin Mason (el encargado principal de PLP) colaboraron en crear
- LPRng. El principal sitio de
- LPRng es http://www.astart.com/lprng/LPRng.html.
-
-
-
+
- Resolución de Problemas
+ Solución de problemas
- Una vez que hizo la simple prueba con &man.lptest.1;, puede ser que
- haya obtenido uno de los siguientes resultados, en vez de la correcta
- impresión:
+ Pendiente de traducción
-
-
- Trabajo, después de un tiempo; o no expulso completamente
- la hoja.
-
-
- La impresora llevo a cabo la impresión, pero espero bastante
- o bien finalmente no hizo nada. De hecho, es posible que haya sido
- necesario presionar en su impresora el botón para poner a la
- impresora EN LINEA o bien de ALIMENTACION DE PAGINA.
-
- Si este es el caso, su impresora esperaba a ver si exisitian
- más datos para imprimir, antes de comenzar con la
- impresión. Para arreglar este problema puede hacer que su
- filtro de texto envie al final un caracter de ALIMENTACION DE PAGINA o
- cualquiera que sea necesario para la impresora. Esto normalmente es
- suficiente para que la impresora imprima todos los datos restantes
- en su buffer interno. También es recomendable verificar que cada
- trabajo enviado se haya impreso en una página completa, de tal
- forma que el siguiente trabajo no comience en la mitad de la
- última página del trabajo previo.
-
- El siguiente ShellScript se puede utilizar como reemplazo de
- /usr/local/libexec/if-simple, para imprimir un
- caracter de alimentación de página:
-
- #!/bin/sh
-#
-# if-simple - Filtro de texto simple para lpd
-# Instalado en /usr/local/libexec/if-simple
-#
-# Simplemente manda la entrada a la salida estandar.
-# Ignora los argumentos del filtro.
-# Escribe un caracter de alimentacion de pagina (\f) despues de imprimir.
-
-/bin/cat && printf "\f" && exit 0
-exit 2
-
-
-
-
- Se produce un efecto de escalera.
-
-
- Usted obtiene la siguiente impresión:
-
- !"#$%&'()*+,-./01234
- "#$%&'()*+,-./012345
- #$%&'()*+,-./0123456
-
- MS-DOS
- OS/2
- ASCII
- Usted es otra víctima del efecto de
- escalera, causada por el conflicto de interpretación,
- sobre cual caracter indica la nueva línea. Los sistemas
- operativos estilo-Unix, usan un caracter sencillo: código
- ASCII 10, alimentación de línea (LF). MS-DOS, OS/2 y
- otros utilizan un par de caracteres, código ASCII 10
- y código ASCII 13 (retorno de carrete o
- CR). Muchas impresoras usan la forma de MS-DOS, para representar los
- saltos de líneas.
-
- Cuando usted imprime con FreeBSD, su texto hace uso del caracter de
- nueva línea. La impresora, una vez que detecta el caracter de
- nueva línea, avanza el papel una línea, pero manteniendo
- la misma posición horizontal, para la impresión del
- siguiente caracter. Para eso es el caracter de retorno de carrete: para
- mover la posición horizontal al borde izquierdo del papel.
-
- Aqui tenemos lo que FreeBSD desea que haga su impresora:
-
-
-
-
-
- Impresora recibe CR
- Impresora imprime CR
-
-
-
- Impresora recibe LF
- Impresora imprime CR + LF
-
-
-
-
-
- Aqui tenemos algunas formas de llevar esto a cabo:
-
-
-
- Usar los botones de configuración de la impresora o el
- panel de control, para modificar su interpretación de estos
- caracteres. Verifique el manual de su impresora para ver como
- hacer esto.
-
-
- Si cuenta con otro sistema operativo en su maquina, ademas de
- FreeBSD, quizás sea necesario
- reconfigurar la impresora, para usar la
- interpretación de los caracteres de CR y LF del otro sistema
- operativo. Puede escoger una de las otras soluciones que se
- comentan más adelante.
-
-
-
-
- Puede hacer que el controlador serial de FreeBSD,
- automáticamente convierta LF en CR+LF. Claro esta, que esta
- alternativa funciona solo en impresoras
- seriales. Para habilitar esta habilidad, establezca el bit
- CRMOD, en la característica
- fs del fichero /etc/printcap
- para la impresora.
-
-
-
- Envie un código de escape a la
- impresora para que temporalmente de un tratamiento diferente a
- los caracteres LF. Consulte el manual de su impresora para ver
- los códigos de escape soportados por su impresora. Una vez
- que localice el código correcto, modifique su filtro de
- texto, para que se envie este código primero y después
- el trabajo a imprimir.
-
- PCL
- Aqui tenemos un ejemplo de un filtro de texto, para impresoras
- compatibles con PCL de Hewlett-Packard. Este filtro hace que la
- impresora trate a LF como LF + CR; posteriormente envia el trabajo
- de impresión; y por último envia un caracter de
- alimentación de página, para expulsar la última
- página del trabajo. Este filtro debiese funcionar con casi
- todas las impresoras Hewlett Packard.
-
- #!/bin/sh
-#
-# hpif - Filtro de texto simple para lpd e impresoras compatibles con HP-PCL
-# Instalado en /usr/local/libexec/hpif
-#
-# Pasa la entrada estandar a la salida estandar.
-# Ignora todos los argumentos del filtro.
-# Le indica a la impresora que debe tratar a LF como si fuera CR+LF.
-# Expulsa la ultima pagina cuando ha terminado.
-
-printf "\033&k2G" && cat && printf "\033&l0H" && exit 0
-exit 2
-
- Aqui tenemos un ejemplo de /etc/printcap
- para un host llamado orchid. Solo cuenta con una
- impresora conectada al puerto paralelo, una Hewlett Packard LaserJet
- 3Si, llamada teak. Se esta usando el script
- anterior como filtro de texto:
-
- #
-# Fichero /etc/printcap del host orchid
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\
- :if=/usr/local/libexec/hpif:
-
-
-
-
-
-
- Cada línea se sobreescribe.
-
-
- La impresora no avanza ninguna línea. Todas las líneas
- son impresas una sobre otra en un solo renglón.
-
- Este problema es lo opuesto al efecto de escalera,
- descrito anteriormente, y es poco común. En algun lugar, los
- caracteres de LF, que usa FreeBSD para indicar un salto de línea,
- la impresora los identifica como CR, de tal forma que regresa el punto
- de impresión al borde del papel, pero sin saltar al siguiente
- renglón.
-
- Utilice los botones de la impresora o el panel de control, para
- forzar a que la impresora interprete de la siguiente manera los
- caracteres LF y CR:
-
-
-
-
-
- Impresora recibe
- Impresora imprime
-
-
-
-
-
- CR
- CR
-
-
-
- LF
- CR + LF
-
-
-
-
-
-
-
-
- Al imprimir se pierden caracteres.
-
-
- Mientras imprime, algunos caracteres no son impresos en cada
- línea. El problema puede agravarse conforme se usa la
- impresora, perdiendo más y más caracteres.
-
- El problema es que la impresora no puede mantener el ritmo al cual
- la computadora envia los datos por medio de la línea serial
- (este problema no se debiese presentarse en impresoras conectadas al
- puerto paralelo). Existen dos formas de solucionar este problema:
-
-
-
- Si la impresora cuenta con soporte para el control de flujo
- XON/XOFF, haga que FreeBSD lo utilice, al especificar el bit TANDEM
- en la característica fs.
-
-
-
- Si la impresora cuenta con soporte para el control de flujo
- externo (carrier), especifique el bit MDMBUF en
- la característica fs. Asegurese de que
- el cable utilizado para conectar la impresora a la computadora cuenta
- con soporte para este tipo de control de flujo.
-
-
-
- Si la impresora no cuenta con soporte para el control de flujo,
- use una combinación de los bits NLDELAY,
- TBDELAY, CRDELAY,
- VTDELAY y BSDELAY en la
- característica fs, para añadir el
- retraso apropiado en la cadena de información enviada a la
- impresora.
-
-
-
-
-
-
- Solo imprime basura.
-
-
- La impresora imprime lo que parece ser basura al azar, pero no el
- texto deseado.
-
- Esto normalmente es otro síntoma de una configuración
- incorrecta en los parámetros de comunicación de una
- impresora serial. Verifique el rango de bps en la característica
- br y la paridad de bits en fs y
- fc; asegurese de que la impresora use los mismos datos
- especificados en el fichero /etc/printcap.
-
-
-
-
- No sucede nada.
-
-
- Si no sucede nada, probablemente el problema es con FreeBSD y no con
- su hardware. Incluya un fichero de registros (log), con la
- característica lf, en la entrada de su
- impresora en el fichero /etc/printcap. Por ejemplo,
- aqui esta la entrada de rattan, con la
- característica lf :
-
- rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=/var/spool/lpd/rattan:\
- :lp=/dev/lpt0:\
- :if=/usr/local/libexec/if-simple:\
- :lf=/var/log/rattan.log
-
- Posteriormente, intente imprimir de nuevo. Verifique el fichero de
- registros (en nuestro ejemplo, /var/log/rattan.log)
- para buscar cualquier mensaje de error que aparezca. Basado en ese
- mensaje trate de resolver el problema.
-
- Si no especifica la característica lf,
- entonces LPD utilizará
- /dev/console como la salida por default.
-
-
-
+
+
+