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 @@ Sean Kelly - Aportado por + Escrito por @@ -35,70 +35,71 @@ Sistema de cola LPD imprimir - 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 - <filename>/dev</filename> - - 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 - <filename>/etc/printcap</filename> - - 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 <application>LPD</application> - - &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. - - - - <command>lpf</command>: 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-impresora fichero ... - - 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 - <application>LPD</application> - - 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. - - - + + +