aboutsummaryrefslogtreecommitdiff
path: root/es_ES.ISO8859-1/books/handbook
diff options
context:
space:
mode:
authorJ. Vicente Carrasco <carvay@FreeBSD.org>2008-11-22 21:01:35 +0000
committerJ. Vicente Carrasco <carvay@FreeBSD.org>2008-11-22 21:01:35 +0000
commitba0c747d204bf22437149d4be037ea443afb0150 (patch)
tree9909b4cb7163f5ad24b76790c6cb4583308b5661 /es_ES.ISO8859-1/books/handbook
parentca1745d9e6c974d9ebd4eb5b20a8d932942bd990 (diff)
downloaddoc-ba0c747d204bf22437149d4be037ea443afb0150.tar.gz
doc-ba0c747d204bf22437149d4be037ea443afb0150.zip
- Update 'Sinopsis' and 'Introduction' sections.
- Other sections deleted. The translation will be redone from scratch.
Notes
Notes: svn path=/head/; revision=33275
Diffstat (limited to 'es_ES.ISO8859-1/books/handbook')
-rwxr-xr-xes_ES.ISO8859-1/books/handbook/printing/chapter.sgml5088
1 files changed, 115 insertions, 4973 deletions
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 @@
<author>
<firstname>Sean</firstname>
<surname>Kelly</surname>
- <contrib>Aportado por </contrib>
+ <contrib>Escrito por </contrib>
</author>
<!-- 30 Sept 1995 -->
</authorgroup>
@@ -35,70 +35,71 @@
<indexterm><primary>Sistema de cola LPD</primary></indexterm>
<indexterm><primary>imprimir</primary></indexterm>
- <para>FreeBSD puede ser utilizado para imprimir en una gran variedad
- de impresoras, desde las antiguas impresoras de matriz de punto, hasta
- las m&aacute;s modernas impresoras laser, y todo lo que existe en
- medio de estas, permitiendole crear impresiones de alta calidad, desde
- cualquier aplicaci&oacute;n que este utilizando.</para>
+ <para>&os; puede utilizarse para imprimir en una gran variedad
+ de impresoras, desde las antiguas impresoras de matriciales hasta
+ las m&aacute;s modernas impresoras laser y todo lo que existe entre
+ unas y otras, con lo que podr&aacute; imprimir con una calidad muy
+ alta desde cualquier aplicaci&oacute;n.</para>
- <para>FreeBSD tambi&eacute;n puede ser configurado para actuar como
- servidor de impresi&oacute;n en una red; en esta modalidad, FreeBSD puede
+ <para>&os; puede usarse tambi&eacute;n como
+ servidor de impresi&oacute;n en red; &os; puede
recibir peticiones de impresi&oacute;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&iacute;sticas sobre que usuario y maquina son los que m&aacute;s
- imprimen, insertar una p&aacute;gina de aviso (<quote>titulares</quote>
- o <quote>p&aacute;ginas de encabezado</quote>),
- antes de cada trabajo para verificar de quien es cada impresi&oacute;n,
- y m&aacute;s.</para>
+ sistemas, bien sean &os;, &windows; y &macos;.
+ &os; se encarga de los trabajos se vayan imprimiendo uno tras
+ otro y puede mantener estad&iacute;sticas sobre qu&eacute;
+ usuarios y qu&eacute; m&aacute;quinas est&aacute;n imprimiendo
+ m&aacute;s, generar p&aacute;ginas de &laquo;encabezado&raquo;
+ para colocarlas antes de cada trabajo y distinguir as&iacute;
+ de qui&eacute;n es la impresi&oacute;n, etc.</para>
- <para>Al concluir el presente cap&iacute;tulo, usted sabr&aacute;:</para>
+ <para>Tras leer el presente cap&iacute;tulo sabr&aacute; usted:</para>
<itemizedlist>
<listitem>
- <para>Como configurar la cola de impresi&oacute;n en FreeBSD.</para>
+ <para>C&oacute;mo configurar la cola de impresi&oacute;n en &os;.</para>
</listitem>
<listitem>
- <para>Como instalar filtros de impresi&oacute;n, para manejar diferentes
- trabajos especiales, incluyendo la conversi&oacute;n de documentos a
- formatos aptos para la impresora.</para>
+ <para>C&oacute;mo instalar filtros de impresi&oacute;n para gestionar
+ diversos trabajos especiales como la conversi&oacute;n de documentos
+ a formatos aptos para su impresora.</para>
</listitem>
<listitem>
- <para>Como habilitar encabezados, o titularess en sus impresiones.</para>
+ <para>C&oacute;mo habilitar encabezados en sus impresiones.</para>
</listitem>
<listitem>
- <para>Como imprimir en impresoras conectadas a otras computadoras</para>
+ <para>C&oacute;mo imprimir en impresoras conectadas a otras m&aacute;quinas.</para>
</listitem>
<listitem>
- <para>Como imprimir en impresoras conectadas directamente a la red.</para>
+ <para>C&oacute;mo imprimir en impresoras conectadas directamente a la red.</para>
</listitem>
<listitem>
- <para>Como controlar restricciones de impresi&oacute;n, incluyendo
- limitantes en el tama&ntilde;o de los trabajos de impresi&oacute;n, y
- restringiendo la impresi&oacute;n a ciertos usuarios.</para>
+ <para>C&oacute;mo controlar restricciones de impresi&oacute;n,
+ como por ejemplo limitaciones del tama&ntilde;o de trabajos o
+ evitar que ciertos usuarios puedan imprimir.</para>
</listitem>
<listitem>
- <para>Como mantener estad&iacute;sticas de impresi&oacute;n, y cuentas
- para el uso de la impresora.</para>
+ <para>C&oacute;mo mantener estad&iacute;sticas de impresi&oacute;n
+ y cuentas de usuario de impresi&oacute;n.</para>
</listitem>
<listitem>
- <para>Como solucionar problemas de impresi&oacute;n comunes.</para>
+ <para>C&oacute;mo solucionar los problemas de impresi&oacute;n
+ m&aacute;s comunes.</para>
</listitem>
</itemizedlist>
- <para>Antes de leer este cap&iacute;tulo, usted deber&iacute;a:</para>
+ <para>Antes de leer este cap&iacute;tulo usted deber&iacute;a:</para>
<itemizedlist>
<listitem>
- <para>Saber como compilar e instalar un nuevo kernel
- (<xref linkend="kernelconfig">).</para>
+ <para>Saber c&oacute;mo compilar e instalar un kernel
+ personalizado (<xref linkend="kernelconfig">).</para>
</listitem>
</itemizedlist>
</sect1>
@@ -106,5023 +107,164 @@
<sect1 id="printing-intro-spooler">
<title>Introducci&oacute;n</title>
- <para>Para efecto de poder utilizar impresoras con FreeBSD, es necesario
- que configure estas, para trabajar con el sistema de cola de
- impresi&oacute;n de Berkeley, tambi&eacute;n conocido como
- Sistema de Cola <application>LPD</application>. Este es el sistema
- de control de impresi&oacute;n est&aacute;ndar en FreeBSD. Este
- cap&iacute;tulo introduce en el sistema <application>LPD</application>,
- llamado comunmente s&oacute;lo <application>LPD</application>, e
- introduce en la configuraci&oacute;n del mismo.</para>
-
- <para>Si usted esta familiarizado con el sistema de cola de
- impresi&oacute;n <application>LPD</application>, o bien, con
- algun otro sistema de impresi&oacute;n, puede saltar a la
+ <para>Si quiere utilizar impresoras con &os; debe
+ configurarlas de forma que funcionen con el sistema de cola de
+ impresi&oacute;n de Berkeley, tambi&eacute;n conocido como
+ sistema de cola <application>LPD</application>. Es el sistema
+ de control de impresi&oacute;n est&aacute;ndar en &os;. Este
+ cap&iacute;tulo trata sobre el sistema <application>LPD</application>,
+ al que en adelante nos referiremos simplemente como
+ <application>LPD</application>, y le introducir&aacute;
+ en la configuraci&oacute;n del mismo.</para>
+
+ <para>Si est&aacute; familiarizado con el sistema de cola de
+ impresi&oacute;n <application>LPD</application>, o bien con
+ alg&uacute;n otro sistema de impresi&oacute;n, puede pasar a la
secci&oacute;n <link
- linkend="printing-intro-setup">Configurando el sistema de
- Cola de Impresi&oacute;n</link>.</para>
+ linkend="printing-intro-setup">Configuraci&oacute;n del sistema de
+ cola de impresi&oacute;n</link>.</para>
- <para>La aplicaci&oacute;n <application>LPD</application> es
- responsable de controlar todo lo que se refiere a impresi&oacute;n.
- Es responsable de un gran numero de cosas, tales como:</para>
+ <para><application>LPD</application> se encarga de controlar
+ todo lo relacionado con la impresi&oacute;n, lo que en consecuencia
+ implica encargarse de lo siguiente:</para>
<itemizedlist>
<listitem>
- <para>Controla el acceso a las impresoras conectadas directamente
- al ordenador y las impresoras conectadas a otras
+ <para>Controlar el acceso a las impresoras conectadas directamente
+ al sistema y a impresoras conectadas a otras
m&aacute;quinas de la red.</para>
</listitem>
<indexterm><primary>trabajos de impresi&oacute;n</primary></indexterm>
<listitem>
- <para>Habilita a usuarios, para efecto de que puedan enviar ficheros
- a imprimir; estos envios se conocen como <emphasis>trabajos</emphasis>
+ <para>Permitir que ciertos usuarios puedan enviar ficheros para
+ su impresi&oacute;n; estos env&iacute;os reciben el nombre de
+ <emphasis>trabajos</emphasis>
(<quote>jobs</quote>).</para>
</listitem>
<listitem>
- <para>Previene el hecho de que varios usuarios accesen a la impresora
- al mismo tiempo, al mantener un orden en la cola de impresi&oacute;n
- (<quote>queue</quote>) para cada impresora.</para>
+ <para>Evita que usuarios diferentes accedan a la impresora al
+ mismo tiempo manteniendo un orden estricto en la cola de
+ impresi&oacute;n de cada impresora.</para>
</listitem>
<listitem>
- <para>Puede imprimir <emphasis>encabezados</emphasis> (<quote>header</quote>)
- (tambi&eacute;n conocidos como <emphasis>titularess</emphasis> o
- p&aacute;ginas de <emphasis>aviso</emphasis>), de tal forma que los
- usuarios identifiquen f&aacute;cilmente sus impresiones, de una pila
- de impresiones.</para>
+ <para>Imprimir <emphasis>encabezados</emphasis>
+ de forma que los usuarios puedan distinguir
+ f&aacute;cilmente los trabajos que han impreso.</para>
</listitem>
<listitem>
<para>Se ocupa de los par&aacute;metros para impresoras
- conectadas a puertos seriales.</para>
+ conectadas a puertos serie.</para>
</listitem>
<listitem>
- <para>Puede enviar trabajos de impresi&oacute;n por medio de
- una red, a una cola <application>LPD</application> de una
- maquina remota.</para>
+ <para>Enviar trabajos de impresi&oacute;n a trav&eacute;s
+ de una red a la cola <application>LPD</application> de una
+ m&aacute;quina remota.</para>
</listitem>
<listitem>
- <para>Puede ejecutar filtros especiales para dar formato a
- trabajos que requieren de un manejo de lenguaje de impresi&oacute;n
- diferente o impresoras de diferentes capacidades.</para>
+ <para>Ejecutar filtros especiales para formatear
+ trabajos que requieren la gesti&oacute;n de lenguajes
+ de impresi&oacute;n o impresoras de diferentes
+ caracter&iacute;sticas.</para>
</listitem>
<listitem>
- <para>Puede mantener un registro por uso de la impresora.</para>
+ <para>Mantener un registro del uso de la impresora.</para>
</listitem>
</itemizedlist>
- <para>Por medio de un fichero de configuraci&oacute;n
- (<filename>/etc/printcap</filename>), y por medio de programas
- especiales de filtraje, usted puede habilitar al sistema
- <application>LPD</application> para hacer todo o una parte de
- lo mencionado anteriormente, para una gran variedad de
- impresoras.</para>
+ <para>Gracias al fichero de configuraci&oacute;n
+ (<filename>/etc/printcap</filename>) y mediante programas
+ especiales de filtrado puede hacerse que el sistema
+ <application>LPD</application> cumpla todas las tareas citadas o
+ si lo prefiere solo unas cuantas; adem&aacute;s puede hacerlo
+ en una gran variedad de impresoras.</para>
<sect2 id="printing-intro-why">
- <title>&iquest;Por qu&eacute; utilizar una Cola de Impresi&oacute;n?</title>
+ <title>&iquest;Por qu&eacute; utilizar una cola de impresi&oacute;n?</title>
- <para>Si usted es la &uacute;nica persona que hace uso de su sistema,
- probablemente se pregunte por que preocuparse por utilizar un sistema
- de cola de impresi&oacute;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&oacute;n, por las siguientes razones:</para>
+ <para>Si es usted la &uacute;nica persona que usa el sistema
+ se estar&aacute; por qu&eacute; preocuparse de utilizar un sistema
+ de cola de impresi&oacute;n si es evidente que no necesita
+ restricciones de acceso, encabezados ni cuentas de
+ impresi&oacute;n. Puede utilizar el acceso directo a
+ impresi&oacute;n, pero deber&iacute;a utilizar una cola
+ de impresi&oacute;n por las siguientes razones:</para>
<itemizedlist>
<listitem>
- <para>El sistema <application>LPD</application> opera los trabajos de
- impresi&oacute;n es segundo plano; esto es, que usted no tiene que
- esperar a que los datos sean pasados a la impresora para continuar
- trabajando.</para>
+ <para>El sistema <application>LPD</application> ejecuta los trabajos
+ en segundo plano, esto es, no tiene que esperar a que la
+ impresora procese los datos para seguir trabajando.</para>
</listitem>
<indexterm><primary>TeX</primary></indexterm>
<listitem>
- <para>Convenientemente <application>LPD</application> puede ejecutar
- un trabajo para que sea filtrado, para a&ntilde;adir caracteres de
- d&iacute;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.
- </para>
+ <para><application>LPD</application> puede procesar un
+ trabajo de forma que pase por filtros, a&ntilde;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.</para>
</listitem>
<listitem>
- <para>Muchos programas, libres y comerciales, proveen de un sistema
- de impresi&oacute;n que esta basado en el sistema de cola de
- impresi&oacute;n. Al configurar su sistema de cola de
- impresi&oacute;n, usted podr&aacute; soportar otro software que
- instale en el futuro o el que tiene actualmente.</para>
+ <para>Muchos programas, tanto libres como comerciales,
+ desde los que se puede imprimir est&aacute;n hechos pensando
+ en que haya disponible un sistema de impresi&oacute;n.
+ Una vez que configure un sistema de colas podr&aacute; utilizar
+ software que ya tiene instalado y preparar el campo para
+ el que instale en el futuro.</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="printing-intro-setup">
- <title>Configuraci&oacute;n B&aacute;sica</title>
-
- <para>Para efecto de utilizar impresoras con el sistema de
- cola <application>LPD</application>, es necesario que se instale
- f&iacute;sicamente la impresora y el software de
- <application>LPD</application>. Este documento describe estos dos
- niveles de configuraci&oacute;n:</para>
-
- <itemizedlist>
- <listitem>
- <para>Vea la secci&oacute;n <link linkend="printing-simple">
- Configuraci&oacute;n Simple de una Impresora</link>, para aprender
- a conectar una impresora, indicarle a <application>LPD</application>
- como comunicarse con ella, e imprimir ficheros de texto plano en
- dicha impresora.</para>
- </listitem>
-
- <listitem>
- <para>Vea la secci&oacute;n <link linkend="printing-advanced">
- Configuraci&oacute;n Avanzada de una Impresora</link>, 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&oacute;n.</para>
- </listitem>
- </itemizedlist>
-
- <sect2 id="printing-simple">
- <title>Configuraci&oacute;n Simple de una Impresora</title>
-
- <para>La presente secci&oacute;n le mostrar&aacute; como instalar
- f&iacute;sicamente la impresora, as&iacute; como el software de
- <application>LPD</application> para usar dicha impresora.
- Le mostrar&aacute; lo b&aacute;sico de:</para>
-
- <itemizedlist>
- <listitem>
- <para>La secci&oacute;n <link linkend="printing-hardware">
- Instalaci&oacute;n F&iacute;sica</link>, le da algunos consejos
- sobre como instalar su impresora a los puertos de su
- computadora.</para>
- </listitem>
-
- <listitem>
- <para>La secci&oacute;n <link linkend="printing-software">
- Instalaci&oacute;n de Software</link>, le muestra como instalar
- y configurar el fichero de configuraci&oacute;n de
- <application>LPD</application> (<filename>/etc/printcap</filename>).
- </para>
- </listitem>
- </itemizedlist>
-
- <para>Si usted esta instalando una impresora que utiliza protocolos de
- red para imprimir en lugar de una conexi&oacute;n directa a su
- puerto serial o paralelo, vea la secci&oacute;n <link
- linkend="printing-advanced-network-net-if">Impresoras con Interfaces
- de Red para Secuencia de Datos</link>.</para>
-
- <para>Aun cuando esta secci&oacute;n se llama <quote>Configuraci&oacute;n
- Simple de una Impresora</quote>, puede resultar un tanto
- complicada. Conseguir que su impresora trabaje con su ordenador y con
- la cola de impresi&oacute;n <application>LPD</application> es la parte
- m&aacute;s compleja. Las opciones avanzadas, tal como imprimir
- encabezados y crear cuentas, son sencillas una vez que su impresora
- est&aacute; trabajando.</para>
-
- <sect3 id="printing-hardware">
- <title>Instalaci&oacute;n F&iacute;sica</title>
-
- <para>Esta secci&oacute;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&iacute; como la configuraci&oacute;n que
- debe tener en su kernel, para permitir que FreeBSD se pueda
- comunicar con su impresora.</para>
-
- <para>Si ya ha conectado su impresora y ha impreso exitosamente
- trabajando en otro sistema operativo, probablemente desee brincar
- a la secci&oacute;n <link linkend="printing-software">Configuraci&oacute;n
- del Software</link>.</para>
-
- <sect4 id="printing-ports">
- <title>Puertos y Cables</title>
-
- <para>Practicamente cualquier impresora que adquiera hoy en d&iacute;a
- para PC, cuenta con soporte para una o ambas interfaces que se
- presentan a continuaci&oacute;n:</para>
-
- <itemizedlist>
- <indexterm>
- <primary>impresora</primary>
- <secondary>serial</secondary>
- </indexterm>
- <listitem>
- <para>La interfaz <emphasis>serial</emphasis>, utiliza el puerto
- serial de su computadora para enviar datos a la impresora. La
- interfaz serial es com&uacute;n en la industria de la
- computaci&oacute;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&oacute;n compleja de opciones de comunicaci&oacute;n.
- </para>
- </listitem>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>en paralelo</secondary>
- </indexterm>
- <listitem>
- <para>La interfaz en <emphasis>paralelo</emphasis> 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&aacute;ciles de conseguir, pero un poco m&aacute;s
- complicados de hacer a mano. Normalmente no existen opciones de
- comunicaci&oacute;n, haciendo su configuraci&oacute;n mucho
- m&aacute;s sencilla.</para>
-
- <indexterm>
- <primary>centronics</primary>
- <see>impresoras en paralelo</see>
- </indexterm>
- <para>En ocasiones las interfaces en paralelo son conocidas como
- interfaces <quote>Centronics</quote>, en virtud del tipo de
- conector en la impresora.</para>
- </listitem>
- </itemizedlist>
-
- <para>En t&eacute;rminos generales los interfaces seriales son m&aacute;s
- lentos que las interfaces en paralelo. Por otro lado los interfaces en
- paralelo s&oacute;lo ofrecen comunicaci&oacute;n de una v&iacute;a (de
- la computadora a la impresora), mientras que los seriales ofrecen de
- dos v&iacute;as. Gran cantidad de recientes impresoras y puertos
- paralelos, pueden comunicarse en ambas direcciones bajo FreeBSD,
- cuando se utiliza un cable compatible con IEEE1284.</para>
-
- <indexterm><primary>PostScript</primary></indexterm>
- <para>Normalmente, el &uacute;nico escenario donde requiere de una
- comunicaci&oacute;n de ambas v&iacute;as con la impresora, es
- cuando la impresora maneja PostScript. Las impresoras que manejan
- PostScript detallan gran cantidad de informaci&oacute;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&oacute;n de dos
- v&iacute;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&oacute;n. M&aacute;s all&aacute; de esto, la mejor forma
- de contabilizar con impresoras PostScript, es utilizando dos v&iacute;as
- de comunicaci&oacute;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.</para>
- </sect4>
-
- <sect4 id="printing-parallel">
- <title>Puertos Paralelos</title>
-
- <para>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&iacute;a
- para llevar esto a cabo.</para>
-
- <para>Recuerde cual es el puerto en paralelo que utiliz&oacute; en
- su computadora. Para FreeBSD, el primer puerto paralelo es
- <filename>/dev/lpt0</filename>, el segundo puerto es
- <filename>/dev/lpt1</filename> y as&iacute; sucesivamente.</para>
- </sect4>
-
- <sect4 id="printing-serial">
- <title>Puertos Seriales</title>
-
- <para>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.</para>
-
- <para>Si usted no esta seguro de cual es el <quote>cable serial
- apropiado</quote>, puede intentar alguna de las siguientes
- alternativas:</para>
-
- <itemizedlist>
- <listitem>
- <para>Un cable de <emphasis>m&oacute;dem</emphasis> conecta cada pin del
- conector de un extremo, con el conector del otro extremo, de manera
- directa. Este tipo de cable tambi&eacute;n se le conoce como cable
- <quote>DTE-a-DCE</quote>.</para>
- </listitem>
-
- <indexterm><primary>cable de m&oacute;dem-nulo</primary></indexterm>
- <listitem>
- <para>Un cablde de <emphasis>m&oacute;dem-nulo</emphasis> 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&eacute;n se le conoce como cable <quote>DTE-a-DTE</quote>.</para>
- </listitem>
-
- <listitem>
- <para>Un cable de <emphasis>impresora serial</emphasis>, s&oacute;lo
- es requerido por algunas impresoras poco comunes, es similar al
- cable de m&oacute;dem-nulo, pero este envia se&ntilde;ales a su
- contraparte, en lugar de que internamente se deshabilite.</para>
- </listitem>
- </itemizedlist>
-
- <indexterm><primary>velocidad de baudio</primary></indexterm>
- <indexterm><primary>paridad</primary></indexterm>
- <indexterm><primary>protocolo de control de flujo</primary></indexterm>
- <para>Tambi&eacute;n es necesario que configure los par&aacute;metros de
- comunicaci&oacute;n para la impresora, nomralmente esto lo realiza
- desde los controles de la misma o interruptores DIP en la impresora.
- Selecciones el <literal>bps</literal> (bits por segundo y en ocasiones
- llamado <emphasis>velocidad de baudio</emphasis>) m&aacute;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&eacute;n seleccione un protocolo para el
- control de flujo, que puede ser: ninguno o XON/XOFF (tambi&eacute;n
- conocido como <quote>in-band</quote> o <quote>software</quote>).
- Recuerde las opciones que haya seleccionado en esta parte,
- para la configuraci&oacute;n del software, que veremos en la
- siguiente secci&oacute;n.</para>
- </sect4>
- </sect3>
-
- <sect3 id="printing-software">
- <title>Configuraci&oacute;n del Software</title>
-
- <para>La presente secci&oacute;n describe la configuraci&oacute;n necesaria
- para poder imprimir usando el sistema de cola
- <application>LPD</application>, bajo FreeBSD.</para>
-
- <para>Aqui presentamos un resumen de los pasos necesarios:</para>
-
- <procedure>
- <step>
- <para>Configure su kernel, si es necesario, para habilitar el uso del
- puerto al que esta conectado su impresora. En la secci&oacute;n
- <link linkend="printing-kernel">Configuraci&oacute;n del Kernel</link>
- encontrar&aacute; toda la informaci&oacute;n necesaria, para llevar
- esto a cabo.</para>
- </step>
-
- <step>
- <para>Establecer en modo de comunicaci&oacute;n el puerto en paralelo,
- si es que esta usando dicho puerto. La secci&oacute;n <link
- linkend="printing-parallel-port-mode">Estableciendo el Modo de
- Comunicaci&oacute;n en el Puerto en Paralelo</link> le da detalles
- al respecto.</para>
- </step>
-
- <step>
- <para>Compruebe si el sistema operativo puede enviar datos a la
- impresora. La secci&oacute;n <link
- linkend="printing-testing">Verificando la Comunicaci&oacute;n con la
- Impresora</link> le puede dar detalles sobre como hacer esto.</para>
- </step>
-
- <step>
- <para>Configurar <application>LPD</application> para su uso con la
- impresora, modificando el fichero <filename>/etc/printcap</filename>.
- Posteriormente en este cap&iacute;tulo, veremos como se lleva a
- cabo esto.</para>
- </step>
- </procedure>
-
- <sect4 id="printing-kernel">
- <title>Configuraci&oacute;n del Kernel</title>
-
- <para>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&oacute;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>
-
- <para>Para averiguar si el kernel que tiene instalado actualmente, cuenta
- con soporte para el puerto serial, teclee lo siguiente:</para>
-
- <screen>&prompt.root; <userinput>dmesg | grep sio<replaceable>N</replaceable></userinput></screen>
-
- <para>Donde <replaceable>N</replaceable> es el numero de puerto serial,
- comenzando desde cero. Si observa una salida similar a la
- siguiente:</para>
-
- <screen>sio2 at 0x3e8-0x3ef irq 5 on isa
-sio2: type 16550A</screen>
-
- <para>entonces su kernel ya cuenta con soporte para el puerto.</para>
-
- <para>Para averiguar si su kernel cuenta con soporte para el puerto en
- paralelo, teclee:</para>
-
- <screen>&prompt.root; <userinput>dmesg | grep lpt<replaceable>N</replaceable></userinput></screen>
-
- <para>Donde <replaceable>N</replaceable> es el numero de puerto serial,
- comenzando desde cero. Si observa una salida similar a la
- siguiente:</para>
-
- <screen>lpt0 at 0x378-0x37f on isa</screen>
-
- <para>entonces su kernel cuenta con soporte para el puerto.</para>
-
- <para>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>
-
- <para>Para a&ntilde;adir soporte para el puerto serial, vea la
- secci&oacute;n en Configuraci&oacute;n del Kernel. Para a&ntilde;adir
- soporte para el puerto paralelo, vea esa secci&oacute;n
- <emphasis>y</emphasis> la siguiente secci&oacute;n.</para>
- </sect4>
- </sect3>
-
- <sect3 id="printing-dev-ports">
- <title>A&ntilde;adiendo Dispositivos de Puertos en
- <filename>/dev</filename></title>
-
- <para>Aun cuando el kernel cuente con el soporte de comunicaciones para
- puertos seriales o en paralelo, aun deber&aacute; 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
- <filename>/dev</filename> es donde encontrar&aacute; dichas interfaces
- en su sistema.</para>
-
- <para>Para <emphasis>a&ntilde;adir una entrada, para sus puertos, en el
- directorio <filename>/dev</filename></emphasis> deber&aacute;:</para>
-
- <procedure>
- <step>
- <para>Cambiar de usuario a <username>root</username> con el comando
- &man.su.1;. Ingresar la contrase&ntilde;a de <username>root</username>
- cuando le sea solicitada.</para>
- </step>
-
- <step>
- <para>Cambiar su posici&oacute;n al directorio <filename>/dev</filename>
- de la siguiente forma:</para>
-
- <screen>&prompt.root; cd <filename>/dev</filename></screen>
- </step>
-
- <step>
- <para>Teclear:</para>
-
- <screen>&prompt.root; <userinput>./MAKEDEV <replaceable>PUERTO</replaceable></userinput></screen>
-
- <para>Donde <replaceable>PUERTO</replaceable> es la entrada del
- dispositivo que desea crear. Puede utilizar
- <literal>lpt0</literal> para el primer puerto en paralelo,
- <literal>lpt1</literal> para el segundo puerto, y as&iacute;
- sucesivamente, para el primer puerto serial puede utilizar
- <literal>ttyd0</literal>, y para el segundo
- <literal>ttyd1</literal> y as&iacute; sucesivamente.</para>
- </step>
-
- <step>
- <para>Teclee:</para>
-
- <screen>&prompt.root; <userinput>ls -l <replaceable>PUERTO</replaceable></userinput></screen>
-
- <para>para asegurarase de que la entrada del dispositivo correspondiente
- se ha creado.</para>
- </step>
- </procedure>
-
- <sect4 id="printing-parallel-port-mode">
- <title>Configurando el modo de Comunicaci&oacute;n para el
- Puerto Paralelo</title>
-
- <para>Cuando utiliza el puerto paralelo, puede seleccionar si FreeBSD va
- a utilizar un modo de comunicaci&oacute;n por medio de interruptores
- o a petici&oacute;n, con la impresora.</para>
-
- <itemizedlist>
- <listitem>
- <para>El m&eacute;todo por medio de <emphasis>interruptores</emphasis>
- es el m&eacute;todo que utiliza el kernel GENERICO de FreeBSD. Con
- este m&eacute;todo el sistema operativo utiliza un IRQ para
- determinar si la impresora esta lista para recibir datos.</para>
- </listitem>
-
- <listitem>
- <para>El m&eacute;todo a <emphasis>petici&oacute;n</emphasis> 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.</para>
- </listitem>
- </itemizedlist>
-
- <para>Normalmente el m&eacute;todo por medio de interruptores es m&aacute;s
- r&aacute;pido, pero nos ocupa un preciado IRQ. Se sabe que algunas
- impresoras nuevas de HP no funcionan muy bien con este m&eacute;todo
- aparentemente debido (sin que aun se entienda el por que) a un
- problema de tiempos. Estas impresoras necesitan el m&eacute;todo a
- petici&oacute;n. Es conveniente que utilice el m&eacute;todo que
- se ajuste a sus necesidades. Algunas impresoras funcionan en ambos
- m&eacute;todos, pero son dolorosamente lentas usando el m&eacute;todo
- por medio de interruptores.</para>
-
- <para>Para establecer el m&eacute;todo de comunicaci&oacute;n, puede
- hacerlo de dos formas: configurando su kernel o bien, utilizando
- el programa &man.lptcontrol.8;.</para>
-
- <para><emphasis>Para establecerlo configurando su kernel,
- deber&aacute;:</emphasis></para>
-
- <procedure>
- <step>
- <para>Editar su fichero de configuraci&oacute;n del kernel. Busque
- una l&iacute;nea que contenga <literal>lpt0</literal>, si esta
- no existe a&ntilde;adala. Si esta configurando su segundo puerto
- en paralelo, use <literal>lpt1</literal>. Para un tercer puerto
- paralelo utilice <literal>lpt2</literal> y as&iacute;
- sucesivamente.</para>
-
- <itemizedlist>
- <listitem>
- <para>Si desea utilizar el modo por medio de interruptor, a&ntilde;ada
- el especificador de <literal>irq</literal>:</para>
-
- <programlisting>device lpt0 at isa? port? tty irq <replaceable>N</replaceable> vector lptintr</programlisting>
-
- <para>Donde <replaceable>N</replaceable> es el numero de IRQ del puerto
- paralelo de su computadora.</para>
- </listitem>
-
- <listitem>
- <para>Si desea utilizar el modo a petici&oacute;n, no necesita agregar
- el especificador de <literal>irq</literal>:</para>
-
- <programlisting>device lpt0 at isa? port? tty vector lptintr</programlisting>
- </listitem>
- </itemizedlist>
- </step>
-
- <step>
- <para>Guarde el fichero. Posteriormente termine el proceso de
- configuraci&oacute;n, recompilaci&oacute;n e instalaci&oacute;n del
- kernel, despu&eacute;s reinicie el sistema. Vea <link
- linkend="kernelconfig">Configuraci&oacute;n del Kernel</link> para
- m&aacute;s informaci&oacute;n al respecto.</para>
- </step>
- </procedure>
-
- <para><emphasis>Para establecer el modo de comunicaci&oacute;n</emphasis>
- usando &man.lptcontrol.8;:</para>
-
- <procedure>
- <step>
- <para>Teclee:</para>
-
- <screen>&prompt.root; <userinput>lptcontrol -i -d <filename>/dev/lpt<replaceable>N</replaceable></filename></userinput></screen>
-
- <para>para indicar el modo por medio de interruptor para
- <literal>lpt<replaceable>N</replaceable></literal>.</para>
- </step>
-
- <step>
- <para>Teclee:</para>
-
- <screen>&prompt.root; <userinput>lptcontrol -p -d <filename>/dev/lpt<replaceable>N</replaceable></filename></userinput></screen>
-
- <para>para establecer el modo a petici&oacute;n para
- <literal>lpt<replaceable>N</replaceable></literal>.</para>
- </step>
- </procedure>
-
- <para>Estos comandos los podr&iacute;a incluir en su fichero
- <filename>/etc/rc.local</filename> para que el sistema reconozca
- estos modos cada vez que inicia el sistema. Vea &man.lptcontrol.8; para
- m&aacute;s informaci&oacute;n al respecto.</para>
- </sect4>
-
- <sect4 id="printing-testing">
- <title>Verificando la Comunicaci&oacute;n de la Impresora</title>
-
- <para>Antes de proceder a configurar el sistema de cola de
- impresi&oacute;n, es conveniente verificar que nuestro sistema
- operativo pueda enviar datos exitosamente a nuestra impresora. Es
- mucho m&aacute;s sencillo detectar errores cuando se configura por
- separado el m&eacute;todo de comunicaci&oacute;n y el sistema de
- cola de impresi&oacute;n.</para>
-
- <para>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&iacute;neas.</para>
-
- <indexterm><primary>PostScript</primary></indexterm>
- <para>Para impresoras PostScript (o de otro lenguaje de impresi&oacute;n),
- vamos a necesitar una prueba m&aacute;s sofisticada. Un peque&ntilde;o
- programa PostScript, como el siguiente, ser&aacute; suficiente:</para>
-
- <programlisting>%!PS
-100 100 moveto 300 300 lineto stroke
-310 310 moveto /Helvetica findfont 12 scalefont setfont
-(Is this thing working?) show
-showpage</programlisting>
-
- <para>El c&oacute;digo PostScript descrito puede guardarse en un fichero y
- usarse en el ejemplo que aparece en la siguiente secci&oacute;n.</para>
-
- <indexterm><primary>PCL</primary></indexterm>
- <note>
- <para>Cuando este documento se refiere a lenguaje de impresi&oacute;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&oacute;n, para el cual necesitaremos realizar ajustes
- especiales.</para>
- </note>
-
- <sect5 id="printing-checking-parallel">
- <title>Verificando Impresoras en Paralelo</title>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>paralelo</secondary>
- </indexterm>
- <para>Esta secci&oacute;n le indica como comprobar la comunicaci&oacute;n
- de una impresora en paralelo, bajo FreeBSD.</para>
-
- <para><emphasis>Para probar una impresora en paralelo:</emphasis></para>
-
- <procedure>
- <step>
- <para>Cambiar a <username>root</username> con el comando &man.su.1;</para>
- </step>
-
- <step>
- <para>Enviar datos a la impresora.</para>
-
- <itemizedlist>
- <listitem>
- <para>Si la impresora puede imprimir texto plano, usar el comando
- &man.lptest.1;. Teclee:</para>
-
- <screen>&prompt.root; <userinput>lptest &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
-
- <para>Donde <replaceable>N</replaceable> es el numero del puerto en
- paralelo, comenzando desde cero.</para>
- </listitem>
-
- <listitem>
- <para>Si la impresora utiliza PostScript u otro lenguaje de
- impresi&oacute;n, entonces envie un peque&ntilde;o programa a
- la impresora. Teclee:</para>
-
- <screen>&prompt.root; <userinput>cat &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
-
- <para>Posteriormente, l&iacute;nea por l&iacute;nea teclee el
- programa, <emphasis>cuidadosamente</emphasis> en virtud de que no
- puede editar una l&iacute;nea ya que presionado la tecla
- <literal>RETURN</literal> o <literal>ENTER</literal>. Una vez que
- ha terminado de introducir el programa, presiona las teclas
- <literal>CONTROL+D</literal>, o cualquier tecla que funcione para
- efecto de especificar un fin de fichero.</para>
-
- <para>Otra manera de hacer esto, es guardar el programa en un
- fichero y teclear:</para>
-
- <screen>&prompt.root; <userinput>cat <replaceable>fcihero</replaceable> &gt; /dev/lpt<replaceable>N</replaceable></userinput></screen>
-
- <para>Donde <replaceable>fichero</replaceable> es el nombre del
- fichero que le dio al programa, que desea enviar a imprimir.</para>
- </listitem>
- </itemizedlist>
- </step>
- </procedure>
-
- <para>En este punto debe ver alguna impresi&oacute;n. No se preocupe si
- el texto no aparece bien; es algo que arreglaremos m&aacute;s
- adelante.</para>
- </sect5>
-
- <sect5 id="printing-checking-serial">
- <title>Verificando una Impresora Serial</title>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>serial</secondary>
- </indexterm>
- <para>Esta secci&oacute;n explica como verificar la comunicaci&oacute;n,
- bajo FreeBSD, de una impresora conectada al puerto serial.</para>
-
- <para><emphasis>Para probar una impresora conectada el puerto
- serial:</emphasis></para>
-
- <procedure>
- <step>
- <para>Cambiar a <username>root</username> usando &man.su.1;.</para>
- </step>
-
- <step>
- <para>Edite el fichero <filename>/etc/remote</filename>.
- A&ntilde;adiendo la siguiente entrada:</para>
-
- <programlisting>printer:dv=/dev/<replaceable>puerto</replaceable>:br#<replaceable>bps</replaceable>:pa=<replaceable>paridad</replaceable></programlisting>
-
- <indexterm><primary>bits-por-segundo</primary></indexterm>
- <indexterm><primary>puerto serial</primary></indexterm>
- <indexterm><primary>paridad</primary></indexterm>
- <para>Donde <replaceable>puerto</replaceable> es el dispositivo usado
- por el puerto serial (<literal>ttyd0</literal>,
- <literal>ttyd1</literal>, etc.), <replaceable>bps</replaceable> se
- refiere a la velocidad, en bits-por-segundo, a la que se comunica la
- impresora, y <replaceable>paridad</replaceable> es la paridad
- requerida por la impresora (ya sea <literal>even</literal>,
- <literal>odd</literal>, <literal>none</literal> o
- <literal>zero</literal>).</para>
-
- <note>
- <para>N de T: Las opciones de paridad se han dejado en ingl&eacute;s,
- en virtud de que as&iacute; deber&aacute;n especificarse en la
- configuraci&oacute;n.</para>
- </note>
-
- <para>He aqui un ejemplo para una impresora conectada por medio de un
- puerto serial, el tercer puerto a 19200 bps, sin paridad:</para>
-
- <programlisting>printer:dv=/dev/ttyd2:br#19200:pa=none</programlisting>
- </step>
-
- <step>
- <para>Conectarse a la impresora por medio de &man.tip.1;.
- Teclee:</para>
-
- <screen>&prompt.root; <userinput>tip printer</userinput></screen>
-
- <para>Si este paso no funciona, edite nuevamente el fichero
- <filename>/etc/remote</filename> e intente utilizando
- <filename>/dev/cuaa<replaceable>N</replaceable></filename>
- en lugar de utilizar
- <filename>/dev/ttyd<replaceable>N</replaceable></filename>.</para>
- </step>
-
- <step>
- <para>Envio de datos a la impresora.</para>
-
- <itemizedlist>
- <listitem>
- <para>Si la impresora puede imprimir texto plano, entonces utilice
- &man.lptest.1;. Teclee:</para>
-
- <screen>&prompt.user; <userinput>$lptest</userinput></screen>
- </listitem>
-
- <listitem>
- <para>Si es una impresora PostScript o que utilice otro lenguaje,
- entonces envie un peque&ntilde;o programa a la impresora. Teclee
- el programa, l&iacute;nea por l&iacute;nea,
- <emphasis>muy cuidadosamente</emphasis> ya que algunas teclas, como
- la de retroceso son significativas para la impresora. Puede ser
- que tambi&eacute;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
- <literal>CONTROL+D</literal>.</para>
-
- <para>Otra variante es, guardar el programa en un fichero y teclear:
- </para>
-
- <screen>&prompt.user; <userinput>&gt;<replaceable>fichero</replaceable></userinput></screen>
-
- <para>Donde <replaceable>fichero</replaceable> 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.</para>
- </listitem>
- </itemizedlist>
- </step>
- </procedure>
-
- <para>Usted debe ver algo de impresi&oacute;n. No se preocupe si el
- texto no se ve del todo bien; posteriormente arreglaremos esto.</para>
- </sect5>
- </sect4>
- </sect3>
+ <title>Configuraci&oacute;n b&aacute;sica</title>
- <sect3 id="printing-printcap">
- <title>Habilitando la Cola de Impresi&oacute;n: El fichero
- <filename>/etc/printcap</filename></title>
+ <para>Pendiente de traducci&oacute;n.</para>
- <para>En este punto, su impresora debe estar conectada, su kernel
- configurado con el soporte de comunicaci&oacute;n, y debe haber podido
- enviar datos a su impresora. Ahora estamos listos para configurar
- <application>LPD</application> para controlar el accesos a nuestra
- impresora.</para>
- <para>Para efecto de configurar <application>LPD</application>, es
- necesario editar el fichero <filename>/etc/printcap</filename>. El
- sistema de cola de <application>LPD</application> lee este fichero
- cada vez que se utiliza, de tal forma que los cambios que se realicen
- en este fichero, surten efecto inmediatamente.</para>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>caracter&iacute;sticas</secondary>
- </indexterm>
- <para>El formato que mantiene el fichero &man.printcap.5; es muy
- concreto. Utilice su editor de texto favorito para hacer cambios
- en <filename>/etc/printcap</filename>. El formato es id&eacute;ntico
- al que guardan los ficheros que describen capacidades, tal como
- <filename>/usr/share/misc/termcap</filename> y
- <filename>/etc/remote</filename>. Para ver mayor informaci&oacute;n
- con respecto al formato, vea la p&aacute;gina de ayuda &man.cgetent.3;.
- </para>
-
- <para>De un modo simple, la configuraci&oacute;n de una cola consiste en
- los siguientes pasos:</para>
-
- <procedure>
- <step>
- <para>Seleccione un nombre (y algunos alias convenientes) para la
- impresora, y especif&iacute;quelos en el fichero
- <filename>/etc/printcap</filename> ; vea la secci&oacute;n
- <link linkend="printing-naming">Nombrando la Impresora</link>
- para m&aacute;s informaci&oacute;n al respecto.</para>
- </step>
-
- <indexterm><primary>p&aacute;ginas encabezado</primary></indexterm>
- <step>
- <para>Desactive el encabezado de p&aacute;ginas (el cual esta
- activado por default), al insertar la caracter&iacute;stica
- <literal>sh</literal>; vea la secci&oacute;n <link
- linkend="printing-no-header-pages">Eliminando las P&aacute;ginas
- de Encabezados</link> para m&aacute;s informaci&oacute;n al
- respecto.</para>
- </step>
-
- <step>
- <para>Cree un directorio para la cola, y especifique su
- ubicaci&oacute;n con la caracter&iacute;stica
- <literal>sd</literal>; vea la secci&oacute;n <link
- linkend="printing-spooldir">Creando el Directorio de
- la Cola</link> para mayor informaci&oacute;n.</para>
- </step>
-
- <step>
- <para>Ubique el dispositivo <filename>/dev</filename> a
- usar por la impresora e indiquelo en el fichero
- <filename>/etc/printcap</filename> con la caracter&iacute;stica
- <literal>lp</literal>; vea la secci&oacute;n <link
- linkend="printing-device">Identificando el Dispositivo de
- Impresi&oacute;n</link> para mayor informaci&oacute;n. As&iacute;
- mismo, si la impresora esta conectada a un dispositivo serial,
- utilice las caracter&iacute;sticas <literal>fs</literal>,
- <literal>fc</literal>, <literal>xs</literal> y <literal>xc</literal>
- para establecer los par&aacute;metros de comunicaci&oacute;n; esto
- se detalla en la secci&oacute;n <link
- linkend="printing-commparam">Configurando los Par&aacute;metros de
- Comunicaci&oacute;n de la Cola de Impresi&oacute;n</link>.</para>
- </step>
-
- <step>
- <para>Instalar un filtro de entrada de texto plano; vea la
- secci&oacute;n <link linkend="printing-textfilter">Instalando un
- Filtro de Texto</link> para m&aacute;s detalles.</para>
- </step>
-
- <step>
- <para>Probar la configuraci&oacute;n, al imprimir algo con el comando
- &man.lpr.1;. Para m&aacute;s detalles vea las secciones <link
- linkend="printing-trying">Probando la Configuraci&oacute;n</link> y
- <link linkend="printing-troubleshooting">Resoluci&oacute;n de
- Problemas</link>.
- </para>
- </step>
- </procedure>
-
- <note>
- <para>Las impresoras basadas en un lenjuaje, tal como PostScript, no
- pueden imprimir texto plano directamente. Los pasos de
- configuraci&oacute;n mencionados anteriormente, as&iacute; como las
- siguientes secciones, asumen que si usted cuenta con una impresora
- de este tipo, s&oacute;lo va a imprimir ficheros que la impresora
- puede manejar.</para>
- </note>
-
- <para>Normalmente los usuarios esperan poder imprimir texto plano a
- cualquier impresora conectada al sistema. Los programas que usan como
- interfaz de impresi&oacute;n a <application>LPD</application>, asumen
- lo mismo. Si usted cuenta con una impresora basada en lenguaje y desea
- poder imprimir en el lenguaje de la impresora <emphasis>as&iacute; como
- </emphasis> texto plano, es importante considerar que debe a&ntilde;adir
- un paso adicional a los mencionados anteriormente: instalar un programa
- de conversi&oacute;n detexto-plano-a-PostScript (u otro lenguaje). La
- secci&oacute;n <link linkend="printing-advanced-if-conversion">Acomodando
- Trabajos de Texto Plano en Impresoras PostScript</link> le indica como
- debe hacerse esto.</para>
-
- <sect4 id="printing-naming">
- <title>Nombrando la Impresora</title>
-
- <para>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&aacute; asignar alias para la
- impresora.</para>
-
- <para>Cuando menos una de las impresoras se&ntilde;aladas en el fichero
- <filename>/etc/printcap</filename> debe contar con el alias
- <literal>lp</literal>. Este es el nombre de la impresora por default.
- Si los usuarios del sistema no cuentan con la variable de entorno
- <envar>PRINTER</envar> o bien no especifican en la l&iacute;nea de
- comando, al ejecutar cualquier comando de <application>LPD</application>,
- el nombre de la impresora a utilizar, entonces <literal>lp</literal>
- ser&aacute; la impresora por default a utilizar.</para>
-
- <para>Tambi&eacute;n, como pr&aacute;ctica com&uacute;n, se suele asignar
- el &uacute;ltimo alias a la descripci&oacute;n completa de la
- impresora, incluyendo marca y modelo.</para>
-
- <para>Una vez que ha seleccionado un nombre y algunos aliases, ingreselos
- en el fichero <filename>/etc/printcap</filename>. El nombre de la
- impresora deber&aacute; colocarse en la columna izquierda
- m&aacute;xima. Separe cada alias con una barra vertical e incluya
- dos puntos despu&eacute;s del &uacute;ltimo alias.</para>
-
- <para>En el siguiente ejemplo, comenzaremos con el esqueleto del
- fichero <filename>/etc/printcap</filename>, que define dos
- impresoras (una de matriz Diablo 630 y una impresora laser
- PostScript Panasonic KX-P4455):</para>
-
- <programlisting>#
-# 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:</programlisting>
-
- <para>En este caso, la primer impresora se llama
- <literal>rattan</literal> y tiene como aliases
- <literal>line</literal>, <literal>diablo</literal>,
- <literal>lp</literal>, y <literal>Diablo 630 Line
- Printer</literal>. Dado que tiene el alias
- <literal>lp</literal>, tambi&eacute; se considera la impresora por
- default. La segunda impresora se llama
- <literal>bamboo</literal>, y cuenta con los aliases
- <literal>ps</literal>, <literal>PS</literal>,
- <literal>S</literal>, <literal>panasonic</literal>, y
- <literal>Panasonic KX-P4455 PostScript v51.4</literal>.</para>
- </sect4>
-
- <sect4 id="printing-no-header-pages">
- <title>Eliminando las P&aacute;ginas de Encabezados</title>
- <indexterm>
- <primary>imprimir</primary>
- <secondary>p&aacute;ginas de encabezado</secondary>
- </indexterm>
-
- <para>El sistema de cola de impresi&oacute;n
- <application>LPD</application>, por default, imprimir&aacute; una
- <emphasis>p&aacute;gina de encabezado</emphasis> para cada trabajo. Esta
- p&aacute;gina contiene el nombre del usuario que solicit&oacute; la
- impresi&oacute;n, el host del cual se envio el trabajo y el nombre
- del trabajo, todo en letras grandes. Desafortunadamente, todo esta
- impresi&oacute;n extra, interfiere con el trabajo de depuraci&oacute;n
- de la configuraci&oacute;n b&aacute;sica de la impresora, por lo que
- vamos a deshabilitar esta opci&oacute;n.</para>
-
- <para>Para eliminar las p&aacute;ginas de encabezado, a&ntilde;ada
- <literal>sh</literal>en la entrada de la impresora del fichero
- <filename>/etc/printcap</filename>. He aqui un ejemplo del fichero
- <filename>/etc/printcap</filename> con <literal>sh</literal>
- incluida en &eacute;l:</para>
-
- <programlisting>#
-# 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:</programlisting>
-
- <para>Note como hemos utilizado el formato correcto: donde la primer
- l&iacute;nea comienza en la primer columna de la izquierda y las
- l&iacute;neas subsecuentes estan cuentan con sangr&iacute;a de un
- solo tabulador (<keycap>TAB</keycap>). Cada l&iacute;nea termina con
- una diagonal invertida, excepto la &uacute;ltima.</para>
- </sect4>
-
- <sect4 id="printing-spooldir">
- <title>Creando el Directorio de la Cola</title>
- <indexterm><primary>cola de impresi&oacute;n</primary></indexterm>
- <indexterm><primary>trabajos de impresi&oacute;n</primary></indexterm>
-
- <para>El siguiente paso en la configuraci&oacute;n de la cola, es crear el
- <emphasis>directorio de cola de impresi&oacute;n</emphasis>, un
- directorio en el cual residen los trabajos de impresi&oacute;n hasta que
- son llevados a cabo, y donde otros ficheros de soporte se
- localizan.</para>
-
- <para>Dada la naturaleza variante de los directorios de cola, es costumbre
- que estos se localicen en <filename>/var/spool</filename>. No es
- necesario respaldar el contenido de estos directorios, ya que rehacerlos
- es tan simple como ejecutar &man.mkdir.1;.</para>
-
- <para>Tambi&eacute;n es una buena costumbre crear el directorio con el
- mismo nombre que tenga la impresora, como se muestra a
- continuaci&oacute;n:</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/spool/<replaceable>nombre-impresora</replaceable></userinput></screen>
-
- <para>Aunque si cuenta con bastantes impresoras en su red, puede que
- desee crear todos los directorios de cola, bajo un s&oacute;lo
- directorio reservado para todas aquellas que imprimen usando
- <application>LPD</application>. En nuestro ejemplo haremos esto con
- nuestras dos impresoras de ejemplo
- <literal>rattan</literal> y
- <literal>bamboo</literal>:</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/spool/lpd</userinput>
-&prompt.root; <userinput>mkdir /var/spool/lpd/rattan</userinput>
-&prompt.root; <userinput>mkdir /var/spool/lpd/bamboo</userinput></screen>
-
- <note>
- <para>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&uacute;blico. Los
- directorios de cola deben pertenecer
- al usuario daemon y grupo daemon, y debe contar con permisos de
- lectura, escritura y navegaci&oacute;n por estos y nadie
- m&aacute;s. Haremos esto para nuestros ejemplos:</para>
-
- <screen>&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/rattan</userinput>
-&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/bamboo</userinput></screen>
- </note>
-
- <para>Finalmente, debe indicar a <application>LPD</application> acerca
- de estos directorios, en el fichero
- <filename>/etc/printcap</filename>. Esta indicaci&oacute;n se hace
- por medio de la caracter&iacute;stica <literal>sd</literal> :</para>
-
- <programlisting>#
-# 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:</programlisting>
-
- <para>Notese que el nombre de la impresora inicia en la primer columna
- mientras que el resto debe contar con sangr&iacute;a de un tabulador y
- todas las l&iacute;neas, excepto la &uacute;ltima, terminar con una
- diagonal invertida.</para>
-
- <para>En el caso de que usted no especifique directorio alguno con
- <literal>sd</literal>, el sistema de cola usara como default
- <filename>/var/spool/lpd</filename> .</para>
- </sect4>
-
- <sect4 id="printing-device">
- <title>Identificando el Dispositivo de Impresi&oacute;n</title>
-
- <para>En la secci&oacute;n <link
- linkend="printing-dev-ports">A&ntilde;adiendo Dispositivos de
- Puertos en <filename>/dev</filename></link>, vimos que dispositivo bajo
- el directorio <filename>/dev</filename> iba a utilizar FreeBSD para
- comunicarse con la impresora. Ahora le indicaremos esto a
- <application>LPD</application>. Cuando el sistema de cola tiene un
- trabajo por imprimir, abrir&aacute; el dispositivo especificado en
- nombre del programa filtro (reponsable de pasar los datos a la
- impresora).</para>
-
- <para>Para efecto de indicar esto, en la entrada de la impresora en
- el fichero <filename>/etc/printcap</filename>, usaremos la
- caracter&iacute;stica <literal>lp</literal>.</para>
-
- <para>En el ejemplo que hemos visto, asumiremos que
- <literal>rattan</literal> esta conectada al primer puerto paralelo, y
- <literal>bamboo</literal> en el sexto puerto serial; he aqui lo que
- tendriamos que a&ntilde;adir a <filename>/etc/printcap</filename>:</para>
-
- <programlisting>#
-# 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:</programlisting>
-
- <para>Si usted no indica la caracter&iacute;stica <literal>lp</literal>
- en el fichero <filename>/etc/printcap</filename>,
- <application>LPD</application> usar&aacute; el dispositivo
- <filename>/dev/lp</filename> por default. El dispositivo
- <filename>/dev/lp</filename> actualmente no existe en FreeBSD.</para>
-
- <para>Si la impresora que esta instalando esta conectada a un puerto
- en paralelo, puede saltar la siguiente parte y dirijirse a la
- secci&oacute;n <link linkend="printing-textfilter">Instalando un
- Filtro de Texto</link>. De otra manera, asegurese de seguir las
- instrucciones de la siguiente secci&oacute;n.</para>
- </sect4>
-
- <sect4 id="printing-commparam">
- <title>Configurando los Par&aacute;metros de Comunicaci&oacute;n
- del la Cola de Impresi&oacute;n</title>
- <indexterm>
- <primary>impresora</primary>
- <secondary>serial</secondary>
- </indexterm>
-
- <para>Para impresoras conectadas a un puerto serial,
- <application>LPD</application> puede especificar la velocidad de
- bps, la paridad, y otros par&aacute;metros de comunicaci&oacute;n
- en lugar del programa filtro que manda los datos a la
- impresora. Esto es una ventaja dado lo siguiente:</para>
-
- <itemizedlist>
- <listitem>
- <para>Le permite probar diferentes par&aacute;metros de
- comunicaci&oacute;n, con el simple hecho de modificar el fichero
- <filename>/etc/printcap</filename>; con lo cual no es necesario
- recompilar el programa filtro.</para>
- </listitem>
-
- <listitem>
- <para>Habilita el sistema de cola de impresi&oacute;n para hacer
- uso del mismo programa filtro, para varias impresoras que pueden
- contar con diferentes configuraciones de comunicaci&oacute;n.</para>
- </listitem>
- </itemizedlist>
-
- <para>Para efecto de controlar los par&aacute;metros de
- comunicaci&oacute;n por medio de un puerto serial, con la
- caracter&iacute;stica <literal>lp</literal>, en el fichero
- <filename>/etc/printcap</filename>, utilizarmos lo
- siguiente:</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>br#<replaceable>bps-velocidad</replaceable></literal></term>
-
- <listitem>
- <para>Establece la velocidad de comunicaci&oacute;n del dispositivo,
- donde <replaceable>bps-velocidad</replaceable> puede ser 50, 75, 110,
- 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600,
- 19200, o 38400 bits-por-segundo.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>fc#<replaceable>limpiar-bits</replaceable></literal></term>
-
- <listitem>
- <para>Limpia la marca de bits, donde
- <replaceable>limpiar-bits</replaceable> afecta en la estructura de
- <replaceable>sgttyb</replaceable> una vez que se ha entablado la
- comunicaci&oacute;n con el dispositivo.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>fs#<replaceable>establece-bits</replaceable></literal></term>
-
- <listitem>
- <para>Establece la marca de bits
- <replaceable>establece-bits</replaceable> en la estructura de
- <replaceable>sgttyb</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>xc#<replaceable>limpia-bits</replaceable></literal></term>
-
- <listitem>
- <para>Limpieza del modo bits, de forma local
- <replaceable>limpia-bits</replaceable> una vez que se ha abierto
- la comunicaci&oacute;n con el dispositivo.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><literal>xs#<replaceable>establece-bits</replaceable></literal></term>
-
- <listitem>
- <para>Establece el modo bits, de forma local
- <replaceable>establece-bits</replaceable>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Para mayor informaci&oacute;n con respecto al uso de las
- caractr&iacute;stica de bits:
- <literal>fc</literal>, <literal>fs</literal>,
- <literal>xc</literal>, y <literal>xs</literal>,
- vea el fichero
- <filename>/usr/include/sys/ioctl_compat.h</filename>.</para>
-
- <para>Cuando <application>LPD</application> abre el canal de
- comunicaci&oacute;n con el dispositivo especificado por
- <literal>lp</literal>, lee la marca de bits en la estructura
- <literal>sgttyb</literal>; limpia cualquier bit en la
- caracter&iacute;stica <literal>fc</literal> y establece bits
- en la caracter&iacute;stica <literal>fs</literal>, para
- posteriormente aplicar la configuraci&oacute;n resultante. El
- mismo procedimiento se sigue en el modo de bits local.</para>
-
- <para>Ahora a&ntilde;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
- <literal>TANDEM</literal>,
- <literal>ANYP</literal>, <literal>LITOUT</literal>,
- <literal>FLUSHO</literal>, y <literal>PASS8</literal>.
- Para el modo local de bits, estableceremos
- <literal>LITOUT</literal> y <literal>PASS8</literal> :</para>
-
- <programlisting>bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=/var/spool/lpd/bamboo:\
- :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820:</programlisting>
- </sect4>
-
- <sect4 id="printing-textfilter">
- <title>Instalando un Filtro de Texto</title>
- <indexterm><primary>filtros de impresi&oacute;n</primary></indexterm>
-
- <para>Ahora estamos listos para indicarle a <application>LPD</application>
- que filtro de texto debe utilizar para enviar los trabajos a la
- impresora. Un <emphasis>filtro de texto</emphasis>, tambi&eacute;n
- conocido como <emphasis>filtro de entrada</emphasis>, es un
- programa que ejecuta <application>LPD</application> cuando tiene
- un trabajo para imprimir. Cuando <application>LPD</application>
- 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&iacute;stica
- <literal>lp</literal>. El filtro espera leer el trabajo de la
- entrada estandar, hacer el trabajo de traducci&oacute;n necesario
- para la impresora, y enviar los resultados a la salida estandar, lo
- cual ser&aacute; impreso. Para mayor informaci&oacute;n en los
- filtros de texto, vea la secci&oacute;n <link
- linkend="printing-advanced-filters">Como Trabajan los Filtros</link>.
- </para>
-
- <para>En el caso de nuestro ejemplo, el filtro de texto puede ser un
- peque&ntilde;o script que s&oacute;lo ejecute
- <command>/bin/cat</command> para enviar el trabajo a la
- impresora. FreeBSD cuenta con otro filtro llamado
- <filename>lpf</filename> 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 <command>lpf</command> se describe a
- detalle en la secci&oacute;n titulada <link
- linkend="printing-advanced-lpf">lpf: un Filtro de Texto</link>.</para>
-
- <para>En primer lugar hagamos del script
- <filename>/usr/local/libexec/if-simple</filename> un simple filtro
- de texto. Introduzca el siguiente texto en un fichero, con su
- eitor de texto favorito:</para>
-
- <programlisting>#!/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 &amp;&amp; exit 0
-exit 2</programlisting>
-
- <para>Haga el fichero ejecutable:</para>
-
- <screen>&prompt.root; <userinput>chmod 555 /usr/local/libexec/if-simple</userinput></screen>
-
- <para>Ahora indiquele a LPD que lo use, al a&ntilde;adirlo con la
- caracter&iacute;stica <literal>if</literal>, en el fichero
- <filename>/etc/printcap</filename>. Este filtro, lo vamos a
- a&ntilde;adir en ambas impresoras de nuestro ejemplo, en el fichero
- <filename>/etc/printcap</filename>:</para>
-
- <programlisting>#
-# Fichero /etc/printcap para host rose - a&ntilde;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:</programlisting>
- </sect4>
-
- <sect4>
- <title>Encienda <application>LPD</application></title>
-
- <para>&man.lpd.8; se puede correr desde <filename>/etc/rc</filename>,
- controlado por la variable <literal>lpd_enable</literal>. Esta
- variable por default esta deshabilitada con <literal>NO</literal>.
- Si usted no cuenta con esta l&iacute;nea, a&ntilde;adala de la
- siguiente forma:</para>
-
- <programlisting>lpd_enable="YES"</programlisting>
-
- <para>al fichero <filename>/etc/rc.conf</filename>, y posteriormente puede
- reiniciar su sistema o ejecutar &man.lpd.8;.</para>
-
- <screen>&prompt.root; <userinput>lpd</userinput></screen>
- </sect4>
-
- <sect4 id="printing-trying">
- <title>Probando la Configuraci&oacute;n</title>
-
- <para>Usted ha llegado al fin de una configuraci&oacute;n sencilla de
- <application>LPD</application>. Desafortunadamente, aun no es
- momento de una felicitaci&oacute;n, dado que aun debemos probar
- la configuraci&oacute;n y resolver cualquier problema que se
- presente. Para efecto de probar la configuraci&oacute;n, intente
- imprimir algo. Para imprimir con el sistema
- <application>LPD</application>, utilice el comando &man.lpr.1;,
- el cual envia el trabajo para su impresi&oacute;n.</para>
-
- <para>Puede combinar &man.lpr.1; con el programa &man.lptest.1;,
- el cual se ve en la secci&oacute;n <link
- linkend="printing-testing">Verificando la Comunicaci&oacute;n
- con la impresora</link>, para generar un texto de prueba.</para>
-
- <para><emphasis>Simplemente para probar la configuraci&oacute;n de
- <application>LPD</application>, intente:</emphasis></para>
-
- <para>Teclee:</para>
-
- <screen>&prompt.root; <userinput>lptest 20 5 | lpr -P<replaceable>nombre-impresora</replaceable></userinput></screen>
-
- <para>Donde <replaceable>nombre-impresora</replaceable> es uno de
- los nombres (o alias) que aparecen especificados en el fichero
- <filename>/etc/printcap</filename> para las impresoras. Para
- probar con la impresora por default, teclee &man.lpr.1; sin la
- opci&oacute;n <option>-P</option>. 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
- <command>lpr <replaceable>fichero</replaceable></command>.</para>
-
- <para>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:</para>
-
- <programlisting>!"#$%&amp;'()*+,-./01234
-"#$%&amp;'()*+,-./012345
-#$%&amp;'()*+,-./0123456
-$%&amp;'()*+,-./01234567
-%&amp;'()*+,-./012345678</programlisting>
-
- <para>Para m&aacute;s pruebas de la impresora, intente descargar
- programas m&aacute;s largos (para impresoras basadas en un
- lenguaje) o ejecutar &man.lptest.1; con diferentes opciones. Por
- ejemplo <command>lptest 80 60</command> producir&aacute; 60
- l&iacute;neas de 80 caracteres cada una.</para>
-
- <para>Si la impresora no funcion&oacute;, vea la secci&oacute;n <link
- linkend="printing-troubleshooting">Resoluci&oacute;n de
- Problemas</link>.</para>
- </sect4>
- </sect3>
- </sect2>
</sect1>
-
- <sect1 id="printing-advanced">
- <title>Configuraci&oacute;n Avanzada de una Impresora</title>
-
- <para>Esta secci&oacute;n describe el uso de filtros para formatos
- especiales, encabezados de p&aacute;gina, impresi&oacute;n en red, y
- restricci&oacute;n de uso de la impresora por cuenta.</para>
-
- <sect2 id="printing-advanced-filter-intro">
- <title>Filtros</title>
- <indexterm><primary>filtros de impresi&oacute;n</primary></indexterm>
-
- <para>Aun cuando <application>LPD</application> maneja con protocolos
- de red, controles de acceso, requisiciones y otros aspectos de la
- impresi&oacute;n, la mayor parte del trabajo <emphasis>real</emphasis>
- 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&mdash;un ejemplo
- extremadamente sencillo que debiese trabajar con la mayor&iacute;a de
- las impresoras (en la secci&oacute;n <link
- linkend="printing-textfilter">Instalando un Filtro de Texto</link>).
- </para>
-
- <para>De cualquier manera, para tomar ventaja de la conversi&oacute;n de
- formatos, cuentas de impresi&oacute;n, trucos espec&iacute;ficos de las
- impresoras y dem&aacute;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
- <emphasis>usted</emphasis> debe proveerse de estos filtros. La buena
- noticia es normalmente estos ya existen disponibles; y cuando no,
- son sencillos de escribir.</para>
-
- <para>FreeBSD tambi&eacute; cuenta con un
- <filename>/usr/libexec/lpr/lpf</filename>, que trabaja con muchas
- impresoras que pueden imprimir texto plano. (Maneja caracteres de
- regreso y tabulador en el fichero, as&iacute; como conteo, pero se
- puede decir que eso es todo). Existen tambi&eacute;n una gran
- cantidad de filtros y componentes de estos, disponibles en la
- Colecci&oacute;n de Ports de FreeBSD.</para>
-
- <para>He aqui lo que encontrar&aacute; en esta secci&oacute;n:</para>
-
- <itemizedlist>
- <listitem>
- <para>La secci&oacute;n <link
- linkend="printing-advanced-filters">Como Trabajan los Filtros</link>
- intenta dar un repaso general al papel que juegan los filtros en el
- proceso de impresi&oacute;n. Es importante que lea esta
- secci&oacute;n para ver que sucede <quote>tras bambalinas</quote>
- cuando <application>LPD</application> usa filtros. Este conocimiento
- puede ayudarle a anticiparse y resolver problemas que puede
- encontrar cuando instala m&aacute;s y m&aacute;s filtros en cada
- impresora.</para>
- </listitem>
-
- <listitem>
- <para>Normalmente <application>LPD</application> 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&oacute;n), las cuales no pueden imprimir texto plano
- directamente. La secci&oacute;n <link
- linkend="printing-advanced-if-conversion">Acomodando Trabajos de
- Texto Plano en Impresoras PostScript</link> le indica que debe de
- hacer si se le presenta este problema. Es importante que lea esta
- secci&oacute;n si usted cuenta con una impresora PostScript.</para>
- </listitem>
-
- <listitem>
- <para>PostScript es un formato de salida muy popular. Incluso algunas
- personas (yo, incluido) escriben c&oacute;digo PostScript
- directamente. Pero las impresoras PostScript son caras. La
- secci&oacute;n <link
- linkend="printing-advanced-ps">Simulando PostScript en Impresoras
- No-PostScript</link> le indica como puede hacer, para que una
- impresora no-PostScript, acepte e imprima datos PostScript.
- Es recomendable que lea esta secci&oacute;n si cuenta con una
- impresora <emphasis>no-PostScript</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para>La secci&oacute;n <link
- linkend="printing-advanced-convfilters">Filtros de
- Conversi&oacute;n</link>, le indica la forma en que puede
- automatizar la conversi&oacute;n de ciertos formatos
- espec&iacute;ficos de ficheros, tal como gr&aacute;ficos o
- datos de un determinado tipo, a un formato que la impresora
- puede entender. Despu&eacute;s de leer esta secci&oacute;n usted
- podr&aacute; configurar su impresora de tal forma que los
- usuarios puedan teclear <command>lpr -t</command> para imprimir
- datos troff o <command>lpr -d</command> para imprimir datos de tipo
- TeX DVI, o bien <command>lpr -v</command> para imprimir datos de
- imagen y as&iacute; sucesivamente. Recomiendo la lectura de esta
- secci&oacute;n.</para>
- </listitem>
-
- <listitem>
- <para>La secci&oacute;n <link linkend="printing-advanced-of">
- Filtros de Salida</link> explica todo acerca de las utilidades
- que no son muy usadas de <application>LPD</application>: filtros
- de salida. A menos que usted haya habilitado la impresi&oacute;n de
- p&aacute;ginas de encabezado (vea <link
- linkend="printing-advanced-header-pages">P&aacute;ginas de
- Encabezado</link>), puede saltar toda esta secci&oacute;n.</para>
- </listitem>
-
- <listitem>
- <para>La secci&oacute;n <link linkend="printing-advanced-lpf">lpf:
- Un Filtro de Texto</link> detalla el uso de <command>lpf</command>,
- 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&aacute;pida de tener un contador de
- trabajos de impresi&oacute;n para texto plano, o bien si tiene una
- impresora que al ver caracteres de regreso (backspace) comienza a
- echar humo, definitivamente debe considerar <command>lpf</command>
- como su alternativa.</para>
- </listitem>
- </itemizedlist>
-
- <sect3 id="printing-advanced-filters">
- <title>Como Trabajan los Filtros</title>
-
- <para>Como se menciono anteriormente, un filtro es un programa ejecutable
- que se inicia por <application>LPD</application>, para manejar el
- dispositivo dependiente, responsable de la comunicaci&oacute;n con la
- impresora.</para>
-
- <para>Cuando <application>LPD</application> 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&iacute;stica
- <literal>lf</literal>, en el fichero <filename>/etc/printcap</filename>
- o por default como <filename>/dev/console</filename>).</para>
-
- <indexterm>
- <primary><command>troff</command></primary>
- </indexterm>
- <para>Cual filtro debe ser iniciado por <application>LPD</application> y
- con que argumentos, depende en lo especificado en el fichero
- <filename>/etc/printcap</filename> y los argumentos que hayan sido
- utilizados por el usuario al momento de usar en la l&iacute;nea de
- comandos: &man.lpr.1;. Por ejemplo, si el usuario teclea
- <command>lpr -t</command>, <application>LPD</application>
- iniciar&aacute; el filtro para ficheros troff, listado en las
- caracter&iacute;sticas <literal>tf</literal> para la impresora
- destino. Si el usuario desea imprimir texto plano iniciar&aacute;
- el filtro <literal>if</literal> (esto casi es as&iacute;, para mayor
- informaci&oacute;n, vea la secci&oacute;n <link
- linkend="printing-advanced-of">Filtros de Salida</link>).</para>
-
- <para>Existen tres tipos de filtros que puede declarar en el fichero
- <filename>/etc/printcap</filename>:</para>
-
- <itemizedlist>
- <listitem>
- <para>El <emphasis>filtro de texto</emphasis>, erroneamente llamado
- <emphasis>filtro de entrada</emphasis> en la documentaci&oacute;n
- de <application>LPD</application>, este se encarga de manejar la
- impresi&oacute;n de texto simple. Piense en este como en el
- filtro por default. <application>LPD</application> 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&eacute;n debe llevar un
- conteo de p&aacute;ginas impresas, normalmente al llevar la
- cuenta de las l&iacute;neas impresas y comparandolas con el
- numero de l&iacute;neas soportadas por p&aacute;gina. El filtro
- de texto se comienza con los siguientes argumentos:
-
- <cmdsynopsis>
- <command>nombre-del-filtro</command>
- <arg>-c</arg>
- <arg choice="plain">-w<replaceable>anchura</replaceable></arg>
- <arg choice="plain">-l<replaceable>longitud</replaceable></arg>
- <arg choice="plain">-i<replaceable>sangrado</replaceable></arg>
- <arg choice="plain">-n <replaceable>login</replaceable></arg>
- <arg choice="plain">-h <replaceable>host</replaceable></arg>
- <arg choice="plain"><replaceable>fichero-act</replaceable></arg>
- </cmdsynopsis>
-
- donde
-
- <variablelist>
- <varlistentry>
- <term><option>-c</option></term>
-
- <listitem>
- <para>aparece si el trabajo se envio utilizando <command>lpr
- -l</command></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>anchura</replaceable></term>
-
- <listitem>
- <para>es el valor de la caracter&iacute;stica
- <literal>pw</literal> (ancho de p&aacute;gina), indicado en
- <filename>/etc/printcap</filename>, por default se usa
- un valor de 132</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>longitud</replaceable></term>
-
- <listitem>
- <para>es el valor de la caracter&iacute;stica
- <literal>pl</literal> (longitud de p&aacute;gina), por
- default su valor es 66</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>sangrado</replaceable></term>
-
- <listitem>
- <para>se refiere a los espacios que se considerar&aacute;n para
- <command>lpr -i</command>, por default es 0.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>login</replaceable></term>
-
- <listitem>
- <para>es el nombre de la cuenta del usuario que imprime
- el trabajo</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>host</replaceable></term>
-
- <listitem>
- <para>es el nombre del host, del cual se ha enviado el trabajo
- de impresi&oacute;n</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>fichero-act</replaceable></term>
-
- <listitem>
- <para>es el nombre del fichero contador, de
- la caracter&iacute;stica <literal>af</literal>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </para>
- </listitem>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>filtros</secondary>
- </indexterm>
- <listitem>
- <para>Un <emphasis>filtro de conversi&oacute;n</emphasis> convierte
- un formato espec&iacute;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&oacute;n para ficheros ditroff, de tal forma que los
- datos ditroff se conviertan a un formato que entiende la
- impresora. La secci&oacute;n <link
- linkend="printing-advanced-convfilters">Filtros de
- Conversi&oacute;n</link> explica todo lo que usted necesita saber
- sobre ellos. Los filtros de conversi&oacute;n tambi&eacute;n
- requieren de llevar un conteo, si usted requiere de este
- control. Los filtros de conversi&oacute;n se inicializan con
- estos argumentos:
-
- <cmdsynopsis>
- <command>nombre-del-filtro</command>
- <arg
- choice="plain">-x<replaceable>ancho-pixel</replaceable></arg>
- <arg choice="plain">-y<replaceable>alto-pixel</replaceable></arg>
- <arg choice="plain">-n <replaceable>login</replaceable></arg>
- <arg choice="plain">-h <replaceable>host</replaceable></arg>
- <arg choice="plain"><replaceable>fichero-act</replaceable></arg>
- </cmdsynopsis>
-
- donde <replaceable>ancho-pixel</replaceable> es el valor de la
- caracter&iacute;stica <literal>px</literal> (default 0) y
- <replaceable>alto-pixel</replaceable> es el valor de la
- caracter&iacute;stica <literal>py</literal> (default 0).</para>
- </listitem>
-
- <listitem>
- <para>El <emphasis>filtro de salida</emphasis> es usado solamente si
- no existe un filtro de texto, o bien si las p&aacute;ginas de
- encabezado est&aacute;n habilitadas. En mi experiencia, los
- filtros de salida raramente se utilizan. La secci&oacute;n <link
- linkend="printing-advanced-of">Filtros de Salida</link> describe
- el uso de estos. S&oacute;lo existen dos argumentos:
-
- <cmdsynopsis>
- <command>nombre-filtro</command>
- <arg choice="plain">-w<replaceable>ancho</replaceable></arg>
- <arg choice="plain">-l<replaceable>largo</replaceable></arg>
- </cmdsynopsis>
-
- los cuales son id&eacute;nticos a los argumentos
- <option>-w</option> y <option>-l</option> de los filtros de
- texto.</para>
- </listitem>
- </itemizedlist>
-
- <para>La <emphasis>salida</emphasis> de los filtros debe ser con
- el siguiente resultado:</para>
-
- <variablelist>
- <varlistentry>
- <term>exit 0</term>
-
- <listitem>
- <para>Esto es si el resultado de la impresi&oacute;n es
- satisfactorio.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>exit 1</term>
-
- <listitem>
- <para>Si el filtro fall&oacute; en la impresi&oacute;n, pero
- desea que <application>LPD</application> intente de nuevo
- el trabajo de impresi&oacute;n. <application>LPD</application>
- reiniciar&aacute; el filtro si sale con esta clave.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>exit 2</term>
-
- <listitem>
- <para>Si el filtro falla imprimiendo el fichero y no desea que
- <application>LPD</application> lo intente de nuevo.
- <application>LPD</application> desechar&aacute; el fichero.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>El filtro de texto
- <filename>/usr/libexec/lpr/lpf</filename> 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&iacute; como el fichero de
- conteo, para llevar el control de este registro.</para>
-
- <para>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&oacute;digos de salida.</para>
- </sect3>
-
- <sect3 id="printing-advanced-if-conversion">
- <title>Acomodando Trabajos de Texto Plano en Impresoras PostScript</title>
- <indexterm><primary>trabajos de impresi&oacute;n</primary></indexterm>
-
- <para>Si usted es el &uacute;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&oacute;n.</para>
-
- <para>Pero, si usted desea enviar tanto texto plano, como PostScript a
- su impresora, entonces es altamente recomendable que prepare la
- configuraci&oacute;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 <literal>%!</literal> (para otros
- lenguajes de impresi&oacute;n, vea la documentaci&oacute;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&aacute; la conversi&oacute;n del texto a PostScript e
- imprimir&aacute; el resultado.</para>
-
- <para>&iquest;C&oacute;mo se hace esto?</para>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>serial</secondary>
- </indexterm>
- <para>Si usted cuenta con una impresora serial, una buena forma de hacer
- esto es instalando <command>lprps</command>. <command>lprps</command>
- es un filtro de impresi&oacute;n PostScript que lleva a cabo una
- comunicaci&oacute;n de dos v&iacute;as con la impresora. Actualiza
- el fichero de estatus de la impresora, por medio de informaci&oacute;n
- actualizada, de tal forma que los usuarios y administradores pueden
- ver exactamente el estado que guarda la impresora (tal como
- <errorname>toner bajo</errorname> o
- <errorname>papel atorado</errorname>). Pero m&aacute;s importante
- es el programa que incluye llamado <command>psif</command>, el cual
- detecta si el trabajo que se ha enviado es texto plano, con lo cual
- llama a <command>textps</command> (otro programa que viene con
- <command>lprps</command>), para convertir el texto plano a
- PostScript. Posteriormente utiliza <command>lprps</command> para
- enviar el trabajo a la impresora.</para>
-
- <para>El programa <command>lprps</command> es parte de la
- Colecci&oacute;n de Ports de FreeBSD (vea la secci&oacute;n <link
- linkend="ports">La Colecci&oacute;n de Ports</link>). Claro esta, que
- usted puede descargar, compilar e instalarlo. Una vez que instale
- <command>lprps</command>, simplemente especifique la ruta al programa
- <command>psif</command> que a su vez es parte de
- <command>lprps</command>. Si ha instalado <command>lprps</command>
- de la <link linkend="ports">Colecci&oacute;n de Ports</link>,
- a&ntilde;ada lo siguiente, en la parte correspondiente a su
- impresora Serial-PostScript, en el fichero
- <filename>/etc/printcap</filename>:</para>
-
- <programlisting>:if=/usr/local/libexec/psif:</programlisting>
-
- <para>Tambi&eacute;n deber&aacute; especificar la caracter&iacute;stica
- <literal>rw</literal>; que le indica a <application>LPD</application>
- abrir la impresora en modo de lectura-escritura.</para>
-
- <para>Si usted cuenta con una impresora PostScript, conectada a un puerto
- paralelo (y por lo tanto no cuenta con la comunicaci&oacute;n de dos
- v&iacute;as con la impresora, que <command>lprps</command> requiere),
- puede utilizar el siguiente script de shell como filtro de texto:
- </para>
-
- <programlisting>#!/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" &amp;&amp; cat &amp;&amp; printf "\004" &amp;&amp; exit 0
- exit 2
-else
- #
- # Texto Plano, convertirlo e imprimirlo.
- #
- ( echo "$first_line"; cat ) | /usr/local/bin/textps &amp;&amp; printf "\004" &amp;&amp; exit 0
- exit 2
-fi</programlisting>
-
- <para>En este script, <command>textps</command> es un programa que hemos
- instalado por separado, para convertir texto plano a PostScript. Usted
- puede utilizar cualquier cualquier programa de conversi&oacute;n de
- texto plano a PostScript que desee. La <link
- linkend="ports">Colecci&oacute;n de Ports</link> de FreeBSD incluye un
- programa muy completo llamado <literal>a2ps</literal> que quiz&aacute;s
- desee investigar.</para>
- </sect3>
-
- <sect3 id="printing-advanced-ps">
- <title>Simulando PostScript en Impresoras No-PostScript</title>
- <indexterm>
- <primary>PostScript</primary>
- <secondary>emulaci&oacute;n</secondary>
- </indexterm>
- <indexterm>
- <primary>Ghostscript</primary></indexterm>
- <para>PostScript es el estandar <emphasis>por excelencia</emphasis> en
- impresiones de alta calidad. Aunque en realidad PostScript resulta
- ser un estandar algo <emphasis>caro</emphasis>. Afortunadamente la
- Empresa Alladin, cuenta con un emulador PostScript, llamado
- <application>Ghostscript</application> que corre bajo FreeBSD.
- Ghostscript puede leer la mayor&iacute;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.
- </para>
-
- <para>Ghostscript se encuentra en la Colecci&oacute;n de Ports de FreeBSD
- por lo que puede realizar la instalaci&oacute;n desde este medio.
- Tambi&eacute;n puede descargarlo, compilarlo e instalarlo de una
- manera f&aacute;cil.</para>
-
- <para>Para efecto de simular PostScript, contamos con el filtro de texto
- que detecta si se esta imprimiendo un fichero PostScript. Si no es
- as&iacute;, el filtro pasar&aacute; el trabajo directamente a la
- impresora, de otra forma utilizar&aacute; Ghostscript para convertir
- primero el fichero a un formato que la impresora entienda.</para>
-
- <para>Aqui tenemos un ejemplo: el siguiente script es un filtro de
- texto para impresoras Hewlett Packard DeskJet 500. Para otras
- impresoras, substituya el argumento <option>-sDEVICE</option> del
- comando <command>gs</command> (Ghostscript). Teclee <command>gs
- -h</command> para obtener una lista de todos los dispositivos
- soportados por Ghostscript en su sistema).</para>
-
- <programlisting>#!/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&amp;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&gt;&amp;1 1&gt;&amp;2
- /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
- -sOutputFile=/dev/fd/3 - &amp;&amp; exit 0
-
- #
- /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \
- &amp;&amp; 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 &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
-exit 0
-fi
-
-exit 2</programlisting>
-
- <para>Finalmente, necesita notificar a <application>LPD</application>
- de la caracter&iacute;stica <literal>if</literal>, que corresponde
- al filtro a utilizar:</para>
-
- <programlisting>:if=/usr/local/libexec/ifhp:</programlisting>
-
- <para>Y eso es todo. Puede teclear <command>lpr texto.plano</command> y
- <filename>lpr cualquier.ps</filename> y ambos deben imprimirse
- exitosamente.</para>
- </sect3>
-
- <sect3 id="printing-advanced-convfilters">
- <title>Filtros de Conversi&oacute;n</title>
-
- <para>Una vez que se ha completado la configuraci&oacute;n descrita en
- la secci&oacute;n <link
- linkend="printing-simple">Configuraci&oacute;n Simple de
- una Impresora</link>, probablemente lo primero que deba hacer es
- instalar filtros de conversi&oacute;n para su formato de fichero
- favorito (aparte de text plano ASCII).</para>
-
- <sect4>
- <title>&iquest;Por qu&eacute; Instalar Filtros de
- Conversi&oacute;n?</title>
- <indexterm>
- <primary>TeX</primary>
- <secondary>impresi&oacute;n de ficheros dvi</secondary>
- </indexterm>
-
- <para>Los filtros de conversi&oacute;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&oacute;n de este a PostScript. La secuencia de comandos
- a seguir es algo as&iacute;:</para>
-
- <screen>&prompt.user; <userinput>dvips fichero-prueba.dvi</userinput>
-&prompt.user; <userinput>lpr fichero-prueba.ps</userinput></screen>
-
- <para>Al instalar un filtro de conversi&oacute;n, podemos omitir
- llevar a cabo la conversi&oacute;n manual, y permitir que
- <application>LPD</application> se haga cargo por nosotros. Ahora,
- cada vez que generemos un fichero DVI, s&oacute;lo estaremos a
- un paso de su impresi&oacute;n:</para>
-
- <screen>&prompt.user; <userinput>lpr -d fichero-prueba.dvi</userinput></screen>
-
- <para>Con esto le hemos indicado a <application>LPD</application> que
- haga la conversi&oacute;n del fichero DVI. Esto se lleva a cabo
- por medio de la opci&oacute;n <option>-d</option>. La secci&oacute;n
- <link linkend="printing-lpr-options-format">Opciones de Formato y
- Conversi&oacute;n</link> enumera las opciones de conversi&oacute;n.
- </para>
-
- <para>Por cada una de las opciones que desea que una impresora
- reconozca, instale un <emphasis>filtro de
- conversi&oacute;n</emphasis> y se&ntilde;ale su ruta en el fichero
- <filename>/etc/printcap</filename>. Un filtro de conversi&oacute;n
- es como el filtro de texto usado en la configuraci&oacute;n de una
- impresora simple (vea la secci&oacute;n <link
- linkend="printing-textfilter">Instalando un Filtro de Texto</link>
- 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.</para>
- </sect4>
-
- <sect4>
- <title>&iquest;Qu&eacute; Filtros de Conversi&oacute;n Debo
- Instalar?</title>
-
- <para>Usted debe instalar los filtros de conversi&oacute;n que vaya a
- necesitar. Si imprime gran cantidad de documentos DVI, es
- recomendable que instal un filtro de conversi&oacute;n para DVI.
- Si cuenta con bastantes ficheros troff por imprimir, entonces
- un filtro troff ser&iacute;a una buena idea.</para>
-
- <para>En la siguiente tabla encontrar&aacute; un res&uacute;men de
- los filtros con que trabaja <application>LPD</application>, un
- ejemplo de su entrada en <filename>/etc/printcap</filename> y
- como hacer uso de estos con el comando <command>lpr</command> :
- </para>
-
- <informaltable frame="none">
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Tipo de Fichero</entry>
- <entry>Caracter&iacute;stica <filename>/etc/printcap</filename></entry>
- <entry>Opci&oacute;n <command>lpr</command></entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>cifplot</entry>
- <entry><literal>cf</literal></entry>
- <entry><option>-c</option></entry>
- </row>
-
- <row>
- <entry>DVI</entry>
- <entry><literal>df</literal></entry>
- <entry><option>-d</option></entry>
- </row>
-
- <row>
- <entry>plot</entry>
- <entry><literal>gf</literal></entry>
- <entry><option>-g</option></entry>
- </row>
-
- <row>
- <entry>ditroff</entry>
- <entry><literal>nf</literal></entry>
- <entry><option>-n</option></entry>
- </row>
-
- <row>
- <entry>FORTRAN texto</entry>
- <entry><literal>rf</literal></entry>
- <entry><option>-f</option></entry>
- </row>
-
- <row>
- <entry>troff</entry>
- <entry><literal>rf</literal></entry>
- <entry><option>-f</option></entry>
- </row>
-
- <row>
- <entry>raster</entry>
- <entry><literal>vf</literal></entry>
- <entry><option>-v</option></entry>
- </row>
-
- <row>
- <entry>texto plano</entry>
- <entry><literal>if</literal></entry>
- <entry>ninguna, <option>-p</option>, o
- <option>-l</option></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>En nuestro ejemplo, el uso de <command>lpr -d</command> indica
- que la impresora requiere de la caracter&iacute;stica
- <literal>df</literal>, en su entrada del fichero
- <filename>/etc/printcap</filename>.</para>
-
- <indexterm><primary>fortran</primary></indexterm>
- <para>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&iacute; 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&oacute;n de escritorio Interleaf) de forma directa, pero
- que nunca imprime ficheros plot. Podr&iacute;a instalar un filtro
- de conversi&oacute;n de Printerleaf bajo la caracter&iacute;stica
- <literal>gf</literal> y posteriormente educar a sus usuarios a
- que utilicen el comando <command>lpr -g</command> para llevar a
- cabo <quote>impresiones de ficheros Printleaf</quote>.</para>
- </sect4>
-
- <sect4>
- <title>Instalando Filtros de Conversi&oacute;n</title>
-
- <para>Considerando que los filtros de conversi&oacute;n son programas
- que usted instala independientemente de la instalaci&oacute;n base
- de FreeBSD, probablemente el mejor lugar para colocarlos
- ser&iacute;a bajo el directorio <filename>/usr/local</filename>.
- El directorio <filename>/usr/local/libexec</filename> es un
- lugar com&uacute;n, en virtud de que estos son programas especiales
- que s&oacute;lo ser&aacute;n ejecutados por
- <application>LPD</application>; los usuarios comunes no
- necesitar&aacute;n ejecutarlos nunca.</para>
-
- <para>Para habilitar un filtro de conversi&oacute;n, deber&aacute;
- especificar su ruta bajo la caracter&iacute;stica adecuada, en la
- entrada de la impresora correspondiente en el fichero
- <filename>/etc/printcap</filename>.</para>
-
- <para>En nuestro ejemplo, a&ntilde;adiremos el filtro de
- conversi&oacute;n DVI, para la impresora llamada
- <literal>bamboo</literal>. He aqui un ejemplo del fichero
- <filename>/etc/printcap</filename> que hemos estado utilizando,
- con la nueva caracter&iacute;stica <literal>df</literal>, para
- la impresora <literal>bamboo</literal>.</para>
-
- <programlisting>#
-# Fichero /etc/printcap para host rose - a&ntilde;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:</programlisting>
-
- <para>El filtro DVI es un script de shell llamado
- <filename>/usr/local/libexec/psdf</filename>. Aqui presentamos el
- script:</para>
-
- <programlisting>#!/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 "$@"</programlisting>
-
- <para>Este script ejecuta <command>dvips</command> en modo de filtro
- (la opci&oacute;n <option>-f</option>) con la entrada estandar, que
- es el trabajo a imprimir. Posteriormente inicia el filtro de
- impresi&oacute;n PostScript <command>lprps</command> (vea la
- secci&oacute;n <link
- linkend="printing-advanced-if-conversion">Acomodando Trabajos de
- Texto Plano en Impresoras PostScript</link>), con las opciones que
- <application>LPD</application> haya pasado al script. El comando
- <command>lprps</command> har&aacute; uso de esas opciones para
- llevar la cuenta de las p&aacute;ginas impresas.</para>
- </sect4>
-
- <sect4>
- <title>M&aacute;s Ejemplos de Filtros de Conversi&oacute;n</title>
-
- <para>Considerando que no existe una serie de pasos establecida, para
- instalar filtros de conversi&oacute;n, me permito mostrar algunos
- ejemplos m&aacute;s. Puede usarlos tal como aparecen, si es que se
- ajustan a sus necesidades.</para>
-
- <para>Este ejemplo es de un filtro de conversi&oacute;n raster
- (bueno, de hecho se trata de un fichero GIF), para una impresora
- Hewlett Packard LaserJet III-Si:</para>
-
- <programlisting>#!/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 \
- &amp;&amp; exit 0 \
- || exit 2</programlisting>
-
- <para>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.</para>
-
- <para>Aqui esta un ejemplo del fichero
- <filename>/etc/printcap</filename> usando el filtro anterior, con la
- impresora mencionada.</para>
- <programlisting>#
-# 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:</programlisting>
-
- <para>El siguiente script es un filtro de conversi&oacute;n de datos de
- tipo troff desde un sistema groff, para la impresora PostScript
- denominada <literal>bamboo</literal>:</para>
- <programlisting>#!/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 "$@"</programlisting>
-
- <para>El script de arriba, nuevamente hace uso del comando
- <command>lprps</command>, para manejar la comunicaci&oacute;n con
- la impresora. Si la impresora se encontrase en un puerto paralelo,
- usariamos el siguiente script:</para>
- <programlisting>#!/bin/sh
-#
-# pstf - Convierte datos groff a PS, y los imprime.
-# Instalado en /usr/local/libexec/pstf
-#
-exec grops</programlisting>
-
- <para>Eso es todo. Aqui presentamos la entrada necesaria en
- <filename>/etc/printcap</filename> para habilitar el filtro:</para>
-
- <programlisting>:tf=/usr/local/libexec/pstf:</programlisting>
-
- <para>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 <literal>teak</literal>:
- </para>
+ <sect1 id="printing-advanced">
+ <title>Configuraci&oacute;n avanzada de impresoras</title>
- <programlisting>#!/bin/sh
-#
-# hprf - Filtro de Texto FORTRAN para LaserJet 3si:
-# Instalado en /usr/local/libexec/hprf
-#
+ <para>Pendiente de traducci&oacute;n</para>
-printf "\033&amp;k2G" &amp;&amp; fpr &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
- exit 0
-exit 2</programlisting>
-
- <para>Y a&ntilde;adiremos esta l&iacute;nea al fichero
- <filename>/etc/printcap</filename> para la impresora
- <literal>teak</literal>, para efecto de habilitar el filtro:</para>
-
- <programlisting>:rf=/usr/local/libexec/hprf:</programlisting>
-
- <para>Aqui presentamos el &uacute;ltimo ejemplo que puede resultar algo
- complicado. Vamos a a&ntilde;adir un filtro DVI para la impresora
- LaseJet <literal>teak</literal> comentada anteriormente. Primero, la
- parte sencilla: actualizaremos <filename>/etc/printcap</filename>
- con la ubicaci&oacute;n del filtro DVI:</para>
-
- <programlisting>:df=/usr/local/libexec/hpdf:</programlisting>
-
- <para>Ahora la parte complicada: crar el filtro. Para eso, vamos
- a necesitar un programa de conversi&oacute;n de DVI-a-LaserJet/PCL.
- La Colecci&oacute;n de Ports de FreeBSD (vea <link
- linkend="ports">La Colecci&oacute;n de Ports</link>) cuenta con
- uno, el nombre del paquete es: <command>dvi2xx</command>. Al
- instalar este programa, nos brinda la funcionalidad que buscamos,
- <command>dvilj2p</command>, el cual convierte ficheros DVI a
- ficheros compatibles con LaserJet IIp, LaserJet III y LaserJet
- 2000 y c&oacute;digos compatibles.</para>
-
- <para>El programa <command>dvilj2p</command> hace que el filtro
- <command>hpdf</command> sea m&aacute;s complejo, en virtud de que
- <command>dvilj2p</command> 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&oacute;n <filename>.dvi</filename>, de tal forma que
- usar <filename>/dev/fd/0</filename> como entrada estandar representa
- un problema. Esto lo podremos solucionar, creando un enlace
- (simb&oacute;lico) de un fichero temporal (uno que su tenga como
- extensi&oacute;n <filename>.dvi</filename>) a
- <filename>/dev/fd/0</filename>, y por tanto forzando a
- <command>dvilj2p</command> a leer la entrada estandar.</para>
-
- <para>El &uacute;nico punto negativo que nos queda por resolver, es
- que no podemos utilizar <filename>/tmp</filename> para el enlace
- temporal. Los enlaces simb&oacute;licos son propiedad del grupo y
- usuario <username>bin</username>. El filtro de ejecuta como usuario
- <username>daemon</username>. Y el directorio
- <filename>/tmp</filename> cuenta con el bit <quote>pegajoso</quote>
- activado. El filtro puede crear el enlace, pero no podr&aacute;
- limpiarlo una vez que termine y eliminarlo, ya que pertenece a un
- usuario diferente.</para>
-
- <para>En lugar de esto, el filtro crear&aacute; el enlace
- simb&oacute;lico en el directorio de trabajo actual, el cual
- ser&aacute; el directorio de la cola de impresi&oacute;n
- (especificado en <filename>/etc/printcap</filename> por la
- caracter&iacute;stica <literal>sd</literal>). Este lugar es
- perfecto para que los filtros hagan su trabajo, especialmente que
- aqui existe m&aacute;s espacio (algunas veces) en disco duro, que
- bajo el directorio <filename>/tmp</filename>.</para>
-
- <para>Finalmente, aqui presentamos el filtro:</para>
-
- <programlisting>#!/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&gt;&amp;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&amp;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</programlisting>
- </sect4>
-
- <sect4 id="printing-advanced-autoconv">
- <title>Conversi&oacute;n Autom&aacute;tica: Una Alternativa A Los Filtros
- De Conversi&oacute;n</title>
-
- <para>Todos estos filtros de conversi&oacute;n realizan una gran labor
- en pro de sus labores de impresi&oacute;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&oacute;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.</para>
-
- <para>En lugar de instalar filtros de conversi&oacute;n, quiz&aacute;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&aacute;ticamente ejecute el filtro adecuado. En
- este caso, herramientas como <command>file</command> pueden ser
- de mucha utilidad. Claro esta, puede que algunos tipos de ficheros
- puede ser dif&iacute;cil determinar de que tipo son, pero siempre
- puede contar con filtros especiales para ellos.</para>
-
- <indexterm><primary>apsfilter</primary></indexterm>
- <indexterm>
- <primary>impresora</primary>
- <secondary>filtros</secondary>
- <tertiary>apsfilter</tertiary>
- </indexterm>
- <para>La Colecci&oacute;n de Ports de FreeBSD cuenta con un filtro de
- texto que ejecuta de forma autom&aacute;tica la conversi&oacute;n,
- llamado <command>apsfilter</command>. Este puede detectar texto
- plano, PostScript y ficheros DVI, ejecutar la conversi&oacute;n
- adecuada e imprimir.</para>
- </sect4>
- </sect3>
-
- <sect3 id="printing-advanced-of">
- <title>Filtros de Salida</title>
-
- <para>El sistema de cola de impresi&oacute;n de
- <application>LPD</application> soporta otro tipo de filtros, que
- aun no hemos explicado aqui: un filtro de salida. Un filtro de
- salida esta dise&ntilde;ado para imprimir texto plano
- &uacute;nicamente, como el filtro de texto, pero de una forma
- m&aacute;s simplificada. Si usted esta usando un filtro de
- salida pero no filtro de texto, entonces:</para>
-
- <itemizedlist>
- <listitem>
- <para><application>LPD</application> inicia el filtro de salida para
- el trabajo completo, en lugar de hacerlo para cada fichero del
- trabajo.</para>
- </listitem>
-
- <listitem>
- <para>Para el filtro de salida, <application>LPD</application>
- no realiza un trabajo extra para identificar el comienzo o
- el fin del trabajo.</para>
- </listitem>
-
- <listitem>
- <para>En el filtro de salida, <application>LPD</application> no
- utiliza como argumento el nombre de usuario o host, por lo tanto
- no esta dise&ntilde;ado para llevar un conteo por usuario. De
- hecho, este s&oacute;lo maneja dos argumentos:</para>
-
- <cmdsynopsis>
- <command>nombre-filtro</command>
- <arg choice="plain">-w<replaceable>ancho</replaceable></arg>
- <arg choice="plain">-l<replaceable>largo</replaceable></arg>
- </cmdsynopsis>
-
- <para>Donde <replaceable>ancho</replaceable> es tomado de la
- caracter&iacute;stica <literal>pw</literal> y
- <replaceable>largo</replaceable> es tomado de la
- caracter&iacute;stica <literal>pl</literal>, para la impresora
- en cuesti&oacute;n.</para>
- </listitem>
- </itemizedlist>
-
- <para>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&aacute;gina diferente, el filtro de salida <emphasis>no
- har&aacute; este trabajo</emphasis>. Utilice un filtro de texto
- (tambi&eacute;n conocido como filtro de entrada); vea la secci&oacute;n
- <link linkend="printing-textfilter">Instalando un Filtro de Texto
- </link>. Mas all&aacute;, el filtro de salida es de hecho <emphasis>
- m&aacute;s complicado</emphasis> en ese aspecto dado que examina la
- cadena de bytes que se ha enviado, para buscar alguna marca especial y
- enviarse se&ntilde;as &eacute;l mismo, a nombre de
- <application>LPD</application>.</para>
-
- <para>De cualquier forma, un filtro de salida es
- <emphasis>necesario</emphasis> si usted desea p&aacute;ginas de
- encabezado y requiere de enviar un secuencia de escape u otras
- cadenas de inicializaci&oacute;n para habilitar la impresi&oacute;n de
- encabezados. (Aunque tambi&eacute;n es <emphasis>trivial</emphasis> si
- desea cobrar de acuerdo a las p&aacute;ginas encabezado de cada
- usuario, dado que <application>LPD</application> no otorga
- informaci&oacute;n del usuario o host, al filtro de salida.)</para>
-
- <para>En una sola impresora, <application>LPD</application> permite el
- uso tanto del filtro de salida como el filtro de texto. En cuyo caso,
- <application>LPD</application> iniciar&aacute; el filtro de salida
- para imprimir las p&aacute;ginas de encabezado (vea la secci&oacute;n
- <link linkend="printing-advanced-header-pages">P&aacute;ginas de
- Encabezado</link>) &uacute;nicamente. Posteriormente
- <application>LPD</application> espera que el filtro de salida se
- <emphasis>detenga por s&iacute; mismo</emphasis> al enviarle dos
- bytes al filtro: ASCII 031 seguido de ASCII 001. Cuando un filtro de
- salida recibe estos dos bytes (031, 001), deber&aacute; pararse,
- enviandose a s&iacute; mismo una se&ntilde;al
- <literal>SIGSTOP</literal>. Una vez que <application>LPD</application>
- ha terminado de ejecutar otros filtros, reiniciar&aacute; el filtro de
- salida, el enviarle una se&ntilde;al <literal>SIGCONT</literal>.</para>
-
- <para>Si existe un filtro de salida, pero <emphasis>no</emphasis> existe
- un filtro de texto y <application>LPD</application> esta trabajando con
- un trabajo en texto plano, <application>LPD</application>
- utilizar&aacute; el filtro de salida para hacer el trabajo. Como se
- comento anteriormente, el filtro de salida imprimir&aacute; cada
- fichero del trabajo en secuencia, sin intervenci&oacute;n de
- alimentaci&oacute;n u otras ventajas con lo que al papel se refiere, y
- seguramente que esto <emphasis>no</emphasis> es lo que usted desea. En
- casi todos los casos usted necesitar&aacute; un filtro de texto.</para>
-
- <para>El programa <command>lpf</command>, que comentamos anteriormente
- como un filtro de texto, tambi&eacute;n es capaz de ejecutar un filtro
- de salida. Si desea un trabajo r&aacute;pido-y-sucio del filtro de
- salida, pero no desea que se escriban bytes de detecci&oacute;n, ni
- envien c&oacute;digos, puede usar <command>lpf</command>.
- Tambi&eacute;n puede incluir <command>lpf</command> en un script de
- shell, para que controle cualquier c&oacute;digo de
- inicializaci&oacute;n que la impresora requiera.</para>
- </sect3>
-
- <sect3 id="printing-advanced-lpf">
- <title><command>lpf</command>: Un Filtro de Texto</title>
-
- <para>El programa <filename>/usr/libexec/lpr/lpf</filename> que viene
- con los binarios de FreeBSD, como un filtro de texto (filtro de
- entrada) que puede darle sang&iacute;a a los trabajos (usando la
- opci&oacute;n <command>lpr -i</command>), que permite el env&iacute;o
- literal de caracteres (con el comando <command>lpr -l</command>),
- ajusta la posici&oacute;n de impresi&oacute;n para caracteres de
- retroceso y tabulador, y contabiliza las p&aacute;ginas impresas.
- Tambi&eacute;n puede funcionar como un filtro de salida.</para>
-
- <para><command>lpf</command> se ajusta a la configuraci&oacute;n de
- gran cantidad de impresoras. Y aunque no tiene la habilidad de enviar
- secuencias de inicializaci&oacute;n a la impresora, es muy sencillo
- escribir un script de shell para llevar a cabo la inicializaci&oacute;n
- y posteriormente ejecutar <command>lpf</command>.</para>
-
- <indexterm><primary>conteo de p&aacute;ginas</primary></indexterm>
- <indexterm>
- <primary>conteo</primary>
- <secondary>impresora</secondary>
- </indexterm>
- <para>Para efecto de que <command>lpf</command> lleve un conteo correcto,
- requiere que se tengan los valores adecuados de las
- caracter&iacute;sticas <literal>pw</literal> y <literal>pl</literal>,
- en el fichero <filename>/etc/printcap</filename>. En base a estos,
- determina cuanto texto puede existir en una p&aacute;gina y cuantas
- p&aacute;ginas existen en el trabajo de un usuario. Para mayor
- informaci&oacute;n al respecto, vea la secci&oacute;n <link
- linkend="printing-advanced-acct">Contabilidad del Uso de la
- Impresora</link>.</para>
- </sect3>
- </sect2>
-
- <sect2 id="printing-advanced-header-pages">
- <title>P&aacute;ginas de Encabezado</title>
-
- <para>Si usted cuenta con <emphasis>gran</emphasis> cantidad de usuarios,
- y todos imprimiendo en varias impresoras, entonces ser&iacute;a
- conveniente considerar las <emphasis>p&aacute;ginas de
- encabezado</emphasis> como un mal necesario.</para>
-
- <indexterm>
- <primary>p&aacute;ginas titulares</primary>
- <see>p&aacute;ginas encabezados</see>
- </indexterm>
- <indexterm><primary>p&aacute;ginas encabezados</primary></indexterm>
- <para>Las p&aacute;ginas de encabezados, tambi&eacute;n conocidas como
- <emphasis>titulares</emphasis> o
- <emphasis>p&aacute;ginas de aviso</emphasis> 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&aacute;s con bordes decorativos, de
- tal forma que puedan distinguirse entre el resto de las p&aacute;ginas
- enviadas a imprimir. Estas permiten a los usuarios localizar
- r&aacute;pidamente sus impresiones. El obvio lado negativo de estas
- p&aacute;ginas es que se debe imprimir una hoja adicional, por cada
- trabajo enviado a la impresora, su utilidad ef&iacute;mera, no dura
- m&aacute;s que unos minutos, terminando en una bandeja de reciclaje.
- (Note que las p&aacute;ginas de encabezado se imprimen con cada trabajo
- enviado a la impresora, no con cada p&aacute;gina impresa, de tal
- manera que el deperdicio de papel no es tan grave.)</para>
-
- <para>El sistema <application>LPD</application> puede proveerle de las
- p&aacute;ginas de encabezado de forma autom&aacute;tica para sus
- impresiones, <emphasis>si</emphasis> su impresora soporta de la
- impresi&oacute;n de texto plano directamente. Si usted cuenta con una
- impresora PostScript, necesitar&aacute; un programa externo para generar
- estas p&aacute;ginas; vea la secci&oacute;n <link
- linkend="printing-advanced-header-pages-ps">P&aacute;ginas de Encabezado
- en Impresoras PostScript</link>.</para>
-
- <sect3 id="printing-advanced-header-pages-enabling">
- <title>Habilitando las P&aacute;ginas de Encabezado</title>
-
- <para>En la secci&oacute;n <link
- linkend="printing-simple">Configuraci&oacute;n Simple
- de una Impresora</link>, deshabilitamos la impresi&oacute;n de estas
- p&aacute;ginas al especificar <literal>sh</literal> (que son siglas
- en ingl&eacute;s para <quote>supress header</quote>, algo as&iacute;
- como <quote>eliminar encabezados</quote>) en el fichero
- <filename>/etc/printcap</filename>. Para efecto de habilitar la
- impresi&oacute;n de p&aacute;ginas de encabezado, simplemente elimine
- la caracter&iacute;stica <literal>sh</literal> del fichero.</para>
-
- <para>&iquest;Suena demasiado f&aacute;cil, verdad?</para>
-
- <para>Efectivamente. Es <emphasis>probable</emphasis> que deba proveer
- de un filtro de salida, para efecto de que se mande la cadena de
- inicializaci&oacute;n a la impresora. Aqui tenemos un ejemplo de un
- filtro de salida para impresoras compatibles con PCL de Hewlett
- Packard:</para>
-
- <programlisting>#!/bin/sh
-#
-# hpof - Filtro de salida para impresoras compatibles con Hewlett Packard PCL
-# Instalado en /usr/local/libexec/hpof
-
-printf "\033&amp;k2G" || exit 2
-exec /usr/libexec/lpr/lpf</programlisting>
-
- <para>Especifique la ruta del filtro de salida, en la
- caracter&iacute;stica <literal>of</literal>. Vea la secci&oacute;n
- <link linkend="printing-advanced-of">Filtros de Salida</link> para
- m&aacute;s informaci&oacute;n al respecto.</para>
-
- <para>Aqui podr&aacute; ver un ejemplo de un fichero
- <filename>/etc/printcap</filename> para la impresora
- <literal>teak</literal> que trabajamos anteriormente; hemos
- a&ntilde;adido las p&aacute;ginas de encabezado, as&iacute;
- como el filtro de salida mencionado anteriormente:</para>
-
- <programlisting>#
-# /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:</programlisting>
-
- <para>Ahora, cuando los usuarios impriman sus trabajos a la impresora
- <literal>teak</literal>, ellos obtendr&aacute;n una p&aacute;gina de
- encabezado por cada trabajo que manden a imprimir. Si los usuarios
- desean pasar un tiempo buscando sus impresiones, pueden deshabilitar la
- impresi&oacute;n de esta p&aacute;gina con el comando
- <command>lpr -h</command>; para m&aacute;s informaci&oacute;n sobre las
- opciones de &man.lpr.1;, vea la secci&oacute;n <link
- linkend="printing-lpr-options-misc">Opciones de P&aacute;ginas de
- Encabezado</link>.</para>
-
- <note>
- <para>El sistema <application>LPD</application> envia a la impresora
- un caracter de alimentaci&oacute;n de p&aacute;gina. Si su
- impresora utiliza un caracter diferente de alimentaci&oacute;n de
- p&aacute;gina, especif&iacute;quelo en el fichero
- <filename>/etc/printcap</filename>, bajo la caracter&iacute;stica
- <literal>ff</literal>.</para>
- </note>
- </sect3>
-
- <sect3 id="printing-advanced-header-pages-controlling">
- <title>Controlando las P&aacute;ginas de Encabezado</title>
-
- <para>Al habilitar las p&aacute;ginas de encabezado,
- <application>LPD</application> produce un <emphasis>encabezado
- largo</emphasis>, una p&aacute;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 <hostid>rose</hostid>):</para>
-
- <programlisting> 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</programlisting>
-
- <para>Despu&eacute;s de esta p&aacute;gina,
- <application>LPD</application> manda un caracter de alimentaci&oacute;n
- de p&aacute;gina, para que el trabajo sea impreso en una hoja blanca
- nueva (a menos que cuente con <literal>sf</literal> (por sus siglas en
- ingl&eacute;s <quote>supress form feed</quote>, que es
- <quote>eliminaci&oacute;n de alimentaci&oacute;n de
- p&aacute;gina</quote>) en el fichero
- <filename>/etc/printcap</filename>).</para>
-
- <para>Si lo prefiere, <application>LPD</application> puede generar un
- <emphasis>encabezado peque&ntilde;o</emphasis>; puede hacer esto, al
- especificar <literal>sb</literal> en el fichero
- <filename>/etc/printcap</filename>. La p&aacute;gina de encabezado que
- ser&aacute; impresa se vera as&iacute;:</para>
-
- <programlisting>rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995</programlisting>
-
- <para>Por default, <application>LPD</application> imprime la
- p&aacute;gina de encabezado en primer t&eacute;rmino y posteriormente
- el trabajo. Para cambiar este comportamiento, es necesario incluir
- la caracter&iacute;stica <literal>hl</literal> (encabezado a lo
- &uacute;ltimo por sus siglas en ingl&eacute;s), en el fichero
- <filename>/etc/printcap</filename>.</para>
- </sect3>
-
- <sect3 id="printing-advanced-header-pages-accounting">
- <title>Conteo de P&acute;ginas de Encabezado</title>
-
- <para>Cuando se utiliza la utilidad integrada de conteo de
- <application>LPD</application>, refuerza el paradigma de que;
- cuando se refiere al conteo de impresiones: las p&aacute;ginas de
- encabezados deben ser <emphasis>sin coto alguno</emphasis>.</para>
-
- <para>&iquest;Por qu&eacute;?</para>
-
- <para>Por que el filtro de salida es el &uacute;nico programa externo
- que puede llevar un conteo de las p&aacute;ginas impresas, cuando
- tiene el control, y este no es provisto con informaci&oacute;n de un
- <emphasis>usuario o host</emphasis> o algun fichero contador, de tal
- forma que no tiene idea de a quien cargar estas impresiones. Tampoco
- es conveniente, simplemente <quote>cargar una impresi&oacute;n</quote>
- al total de las impresiones del filtro de texto o filtro de
- conversi&oacute;n (esos que cuentan con informaci&oacute;n del
- usuario y host), esto en virtud de que los usuarios pueden suprimir
- el uso de estas p&aacute;ginas con <command>lpr -h</command>. Esto
- implica que se le podr&iacute;an cobrar hojas que ellos no imprimieron.
- B&aacute;sicamente el comando <command>lpr -h</command> ser&iacute;a la
- opci&oacute;n preferida de los usuarios concientes del sistema, pero
- usted no puede ofrecer incentivo alguno para que se utilice.</para>
-
- <para><emphasis>Tampoco es una buena alternativa</emphasis> que cada
- filtro genere sus p&aacute;ginas de encabezado (y por lo tanto poder
- cobrar por ellas). Si los usuarios desean suprimirlas usando la
- opci&oacute;n <command>lpr -h</command>, a&uacute;n obtendr&aacute;n
- estas p&aacute;ginas y les ser&aacute;n cobradas, en virtud de que
- <application>LPD</application> no tiene transfiere la opci&oacute;n
- <option>-h</option> a los filtros.</para>
-
- <para>As&iacute; que, &iquest;Qu&eacute; opciones tenemos?</para>
-
- <para>Usted puede:</para>
-
- <itemizedlist>
- <listitem>
- <para>Aceptar el paradigma de <application>LPD</application> y no
- cobrar por las p&aacute;ginas de encabezado.</para>
- </listitem>
-
- <listitem>
- <para>Instalar una alternativa a <application>LPD</application>,
- tal como <application>LPRng</application>. La secci&oacute;n
- <link linkend="printing-lpd-alternatives">Alternativas al Sistema
- de Impresi&oacute;n Est&aacute;ndar</link> le informa sobre otros
- programas que puede utilizar, que sustituyan a
- <application>LPD</application>.</para>
- </listitem>
-
- <listitem>
- <para>Escribir un filtro de salida <emphasis>inteligente</emphasis>.
- Normalmente, un filtro de salida no esta dise&ntilde;ado para hacer
- otra cosa, que no sea inicializar la impresora o bien hacer alguna
- conversi&oacute;n sencilla de caracteres. Esta dise&ntilde;ado
- para p&aacute;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
- <application>LPD</application> s&oacute;lo har&aacute; uso del
- filtro de salida para las p&aacute;ginas de encabezado. Y el
- filtro de salida puede pasar el texto de la p&aacute;gina
- encabezado generado por <application>LPD</application>, para
- determinar el usuario y el host al cual se le cobrar&aacute; dicha
- impresi&oacute;n. El &uacute;nico problema con este metodo es
- que el filtro de salida a&uacute;n no sabe que fichero usar
- para llevar la cuenta de las impresiones (la caracter&iacute;stica
- <literal>af</literal> no pasa el nombre del fichero), pero si
- usted cuenta con un fichero establecido para llevar esta cuenta,
- puede incluirlo en el c&oacute;digo del filtro de salida. Para
- efecto de facilitar este paso, utilice la caracter&iacute;stica
- <literal>sh</literal> (encabezado corto) del fichero
- <filename>/etc/printcap</filename>. Nuevamente, todo esto
- podr&iacute;a resultar muy complicado, y los usuarios estaran
- muy agradecidos con el generoso administrador del sistema que
- genera las p&aacute;ginas de encabezado gratis.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3 id="printing-advanced-header-pages-ps">
- <title>P&aacute;ginas de Encabezado en Impresoras PostScript</title>
-
- <para>Como se ha descrito anteriormente, <application>LPD</application>
- puede generar p&aacute;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&aacute;ginas de <application>LPD</application>, es
- inservible&mdash;o casi.</para>
-
- <para>Una forma obvia de crear las p&aacute;ginas de encabezado, es hacer
- que cada filtro de conversi&oacute;n y de texto, creen sus
- p&aacute;ginas de encabezado. Los filtros deber&aacute;n utilizar el
- nombre de usuario y host, para generar esta p&aacute;gina
- personalizada. Lo malo de este metodo es que los usuarios siempre
- obtendr&aacute;n una p&aacute;gina de encabezado, aun cuando usen en
- sus impresiones <command>lpr -h</command>.</para>
-
- <para>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&aacute;gina simple de encabezado PostScript:
- </para>
-
- <programlisting>#!/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` &lt;user&gt; &lt;host&gt; &lt;job&gt;" 1&gt;&amp;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 &lt;&lt;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</programlisting>
-
- <para>Ahora, cada uno de los filtros de conversi&oacute;n y de texto,
- pueden invocar este script, para en primer lugar generar esta
- p&aacute;gina y despu&eacute;s imprimir el trabajo del usuario. Aqui
- tenemos el filtro de conversi&oacute;n DVI que revisamos anteriormente
- en este documento, modificado para generar p&aacute;ginas de
- encabezado:</para>
-
- <programlisting>#!/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&gt;&amp;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&gt;&amp;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</programlisting>
-
- <para>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&oacute;n es identico. El filtro de texto
- tiene una peque&ntilde;a variaci&oacute;n (vea la secci&oacute;n <link
- linkend="printing-advanced-filters">Como Trabajan los Filtros</link>).
- </para>
-
- <para>Como hemos mencionado anteriormente, este esquema simplemente nos
- sirve para deshabilitar la opci&oacute;n <quote>eliminar
- encabezados</quote> (la opci&oacute;n <option>-h</option>) de
- <command>lpr</command>. Si los usuarios desean salvar algunos arboles
- (o algunos centavos si usted cobra por estas p&aacute;ginas), no
- podr&aacute;n deshabilitar esta opci&oacute;n, ya que cada filtro
- imprimir&aacute; una p&aacute;gina de encabezado con cada trabajo
- impreso.</para>
-
- <para>Para permitir que los usuarios desactiven las p&aacute;ginas de
- encabezado en cada trabajo, ser&aacute; necesario que utilice el truco
- del que hablamos en la secci&oacute;n <link
- linkend="printing-advanced-header-pages-accounting">Conteo de
- P&aacute;ginas de Encabezado</link>: escribir un filtro de salida que
- pase la p&aacute;gina generada por LPD y produzca una versi&oacute;n
- PostScript de la misma. Si el usuario utiliza
- <command>lpr -h</command>, entonces <application>LPD</application> no
- generar&aacute; una p&aacute;gina encabezado, y tampoco su filtro de
- salida. De otra forma, su filtro de salida tomar&aacute; los datos de
- <application>LPD</application> y enviar&aacute; el c&oacute;digo
- PostScript apropiado para la impresi&oacute;n de la p&aacute;gina de
- encabezado.</para>
-
- <para>Si usted cuenta con una impresora PostScript conectada a un
- puerto serial, puede usar <command>lprps</command>, que cuenta con
- un filtro de salida, <command>psof</command>, que hace lo
- mencionado. Note que <command>psof</command> no cobra por las
- p&aacute;ginas de encabezado.</para>
- </sect3>
- </sect2>
-
- <sect2 id="printing-advanced-network-printers">
- <title>Impresi&oacute;n en Red</title>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>red</secondary>
- </indexterm>
- <indexterm><primary>impresi&oacute;n en red</primary></indexterm>
- <para>FreeBSD cuenta con soporte para impresi&oacute;n en red: env&iacute;o
- de trabajos a impresoras remotas. La impresi&oacute;n en red,
- normalmente se cuenta con dos escenarios:</para>
-
- <itemizedlist>
- <listitem>
- <para>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 <application>LPD</application> para poder
- imprimir desde otros hosts de la red. La secci&oacute;n <link
- linkend="printing-advanced-network-rm">Impresoras Instaladas en
- Hosts Remotos</link> le indica como hacer esto.</para>
- </listitem>
-
- <listitem>
- <para>Accesando a una impresora que esta conectada directamente a la
- red. En este caso la impresora cuenta con un dispositivo de red en
- adici&oacute;n (o en su lugar) del convencional paralelo o serial.
- Esta impresora puede funcionar de la siguiente manera:</para>
-
- <itemizedlist>
- <listitem>
- <para>Puede comprender el protocolo de
- <application>LPD</application> e inclusive hacer consulta de
- trabajos en hosts remotos. En este caso, actua tal como un
- host normal que esta ejecutando <application>LPD</application>.
- Aplique el procedimiento revisado en <link
- linkend="printing-advanced-network-rm">Impresoras
- Instaladas en Hosts Remotos</link> para efecto de configurar
- estas impresoras.</para>
- </listitem>
-
- <listitem>
- <para>Puede contar con soporte para env&iacute;o de datos por medio
- de la conexi&oacute;n de red. En este caso, usted
- <quote>conecta</quote> la impresora a un host de la red, al hacer
- responsable, a dicho host, de la administraci&oacute;n de los
- trabajos en la cola de impresi&oacute;n y su envio a la
- impresora. La secci&oacute;n <link
- linkend="printing-advanced-network-net-if">Impresoras con
- Interfaces de Red para Secuencia de Datos</link> le da algunos
- consejos y sugerencias sobre como instalar estas impresoras.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
-
- <sect3 id="printing-advanced-network-rm">
- <title>Impresoras Instaladas en Hosts Remotos</title>
-
- <para>El sistema de cola de impresi&oacute;n de
- <application>LPD</application> cuenta con soporte integrado para enviar
- trabajos de impresi&oacute;n a un host remoto que cuente con
- <application>LPD</application> (o alguna sistema compatible con
- <application>LPD</application>). Esta habilidad le permite instalar
- una impresora en un host, y hacerla accesible desde otros hosts.
- Tambi&eacute;n es &uacute;til con impresoras que cuentan con
- interfaces de red que comprenden el protocolo de
- <application>LPD</application>.</para>
-
- <para>Para habilitar la funcionalidad de impresi&oacute;n remota, primero
- instale la impresora en un host, que ser&aacute; el <emphasis>host de
- impresi&oacute;n</emphasis>. Esto lo podemos hacer utilizando los
- pasos descritos en la secci&oacute;n <link
- linkend="printing-simple">Configuraci&oacute;n Simple de una
- impresora</link>. Realice cualquier configuraci&oacute;n adicional
- adicional que se requiera, de acuerdo a lo descrito en la
- secci&oacute;n <link
- linkend="printing-advanced">Configuraci&oacute;n Avanzada de una
- Impresora</link>. Asegurese de probar la impresora y de que esta
- funcionando correctamente, as&iacute; como las funciones de
- <application>LPD</application> que haya habilitado. Tambi&eacute;n
- asegurese de que el <emphasis>host local</emphasis> cuenta con
- autorizaci&oacute;n para usar el servicio de
- <application>LPD</application> en el <emphasis>host remoto</emphasis>
- (vea la secci&oacute;n <link
- linkend="printing-advanced-restricting-remote">Restricci&oacute;n de
- Trabajos de Impresoras Remotas</link>).</para>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>red</secondary>
- </indexterm>
- <indexterm><primary>impresi&oacute;n en red</primary></indexterm>
- <para>Si usted esta utilizando una impresora que cuenta con un
- dispositivo de red, compatible con <application>LPD</application>,
- entonces el <emphasis>host de impresi&oacute;n</emphasis> mencionado
- m&aacute;s adelante, ser&aacute; la misma impresora, y el
- <emphasis>nombre de la impresora</emphasis> ser&aacute; el nombre que
- usted le haya asignado a la impresora. Vea la documentaci&oacute;n
- que incluye su impresora y/o el dispositivo de impresi&oacute;n en
- red para detalles al respecto.</para>
-
- <tip>
- <para>Si usted esta utilizando una impresora LaserJet Hewlett Packard
- entonces la impresora <literal>nombre</literal>
- autom&aacute;ticamente har&aacute; la conversi&oacute;n de LF a
- CRLF, de tal forma que no ser&aacute; necesario el uso del script
- <filename>hpif</filename>.</para>
- </tip>
-
- <para>Y de esta manera, para los hosts que desee que tengan acceso a la
- impresora, deber&aacute; crear una entrada en su fichero
- <filename>/etc/printcap</filename>, que contenga lo siguiente:</para>
-
- <orderedlist>
- <listitem>
- <para>Nombre la entrada como desee. Para simplificar, quiz&aacute;s
- desee darle el mismo nombre y alias usado en el host de
- impresi&oacute;n.</para>
- </listitem>
-
- <listitem>
- <para>La caracter&iacute;stica <literal>lp</literal> dejela en
- blanco, de manera expl&iacute;cita (<literal>:lp=:</literal>).
- </para>
- </listitem>
-
- <listitem>
- <para>Cree un directorio para la cola de impresi&oacute;n y
- especifique su ruta en la caracter&iacute;stica
- <literal>sd</literal>. <application>LPD</application>
- utilizar&aacute; este directorio para almacenar los trabajos
- antes de que sean enviados al host de impresi&oacute;n.</para>
- </listitem>
-
- <listitem>
- <para>A&ntilde;ada el nombre del host de impresi&oacute;n a la
- caracter&iacute;stica <literal>rm</literal>.</para>
- </listitem>
-
- <listitem>
- <para>A&ntilde;ada el nombre de la impresora en el host de
- impresi&oacute;n en la caracter&iacute;stica
- <literal>rp</literal>.</para>
- </listitem>
- </orderedlist>
-
- <para>Eso es todo. No es necesario listar los filtros de
- conversi&oacute;n, dimensiones de la p&aacute;gina, o algo
- adicional en el fichero <filename>/etc/printcap</filename>.</para>
-
- <para>Aqui tenemos un ejemplo. El host <hostid>rose</hostid> cuenta
- con dos impresoras, <literal>bamboo</literal> y
- <literal>rattan</literal>. Vamos a habilitar a usuarios en el host
- <hostid>orchid</hostid> para que puedan imprimir en esas impresoras.
- Aqui tenemos el fichero <filename>/etc/printcap</filename> para el
- host <hostid>orchid</hostid> (usado en la secci&oacute;n <link
- linkend="printing-advanced-header-pages-enabling">Habilitando las
- P&aacute;ginas de Encabezado</link>). Ya cuenta con la entrada
- para la impresora <literal>teak</literal>; y hemos a&ntilde;adido
- las entradas para las impresoras del host <hostid>rose</hostid>:</para>
-
- <programlisting>#
-# 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:</programlisting>
-
- <para>Posteriormente, s&oacute;lo necesitamos crear los directorios
- para la cola de impresi&oacute;n en el host
- <hostid>orchid</hostid>:</para>
-
- <screen>&prompt.root; <userinput>mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput></screen>
-
- <para>Ahora los usuarios de <hostid>orchid</hostid> pueden imprimir en
- <literal>rattan</literal> y <literal>bamboo</literal>. Si, por
- ejemplo, un usuario en <hostid>orchid</hostid> teclea
-
- <screen>&prompt.user; <userinput>lpr -P bamboo -d sushi-review.dvi</userinput></screen>
-
- el sistema de cola de <application>LPD</application> en el host
- <hostid>orchid</hostid>, copiar&aacute; el trabajo al directorio
- de cola <filename>/var/spool/lpd/bamboo</filename> y notar&aacute;
- que se trata de un trabajo DVI. Tan pronto como el host
- <hostid>rose</hostid> tenga espacio en el directorio de cola de
- impresi&oacute;n de <literal>bamboo</literal>, los dos
- <application>LPDs</application> transferir&aacute;n el fichero a
- <hostid>rose</hostid>. El fichero quedar&aacute; en espera en
- la cola de <hostid>rose</hostid> hasta que sea impreso. Este
- ser&aacute; convertido de DVI a PostScript (dado que
- <literal>bamboo</literal> es una impresora PostScript), en
- <hostid>rose</hostid>.</para>
- </sect3>
-
- <sect3 id="printing-advanced-network-net-if">
- <title>Impresoras con Interfaces de Red para Secuencia de Datos</title>
-
- <para>Comunmente, cuando usted adquiere una tarjeta de red para
- impresoras, puede obtener dos versiones: una que emula la cola
- de impresi&oacute;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&oacute; econ&oacute;mica). Esta
- secci&oacute;n le explica como utilizar la versi&oacute;n
- econ&oacute;mica. Para el uso de la versi&oacute;n de mayor
- valor, vea la secci&oacute;n <link
- linkend="printing-advanced-network-rm">Impresoras Instaladas en
- Hosts Remotos</link>.</para>
-
- <para>El formato del fichero <filename>/etc/printcap</filename> 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&oacute;n
- de nuevas l&iacute;neas y m&aacute;s. Pero no hay manera de indicar
- la conexi&oacute;n de una impresora que escucha en un puerto TCP/IP
- u otro puerto de red.</para>
-
- <para>Para efecto de enviar datos a una impresora en red, usted necesita
- crear un programa de comunicaci&oacute;n que pueda ser llamado desde
- un filtro de texto o de conversi&oacute;n. Aqui tenemos un ejemplo
- de dicho programa: el script <command>netprint</command>, 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 <command>netprint</command>. Note que
- este tipo de soporte s&oacute;lo trabaja en una v&iacute;a (de FreeBSD
- a la impresora); gran cantidad de impresoras cuentan con soporte de
- ambas v&iacute;as, y quiz&aacute;s desee tomar ventaja de esto (para
- obtener estatus de impresi&oacute;n, contabilidad, desempe&ntilde;o,
- etc.).</para>
-
- <programlisting>#!/usr/bin/perl
-#
-# netprint - Filtro de texto para impresoras en red
-# Instalado en /usr/local/libexec/netprint
-#
-$#ARGV eq 1 || die "Usage: $0 &lt;printer-hostname&gt; &lt;port-number&gt;";
-
-$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', &amp;AF_INET, $printer_port, $address);
-
-socket(PRINTER, &amp;PF_INET, &amp;SOCK_STREAM, $protocol)
- || die "Can't create TCP/IP stream socket: $!";
-connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
-while (&lt;STDIN&gt;) { print PRINTER; }
-exit 0;</programlisting>
-
- <para>Una vez hecho este script, podemos utilizarlo en varios filtros.
- Supongamos que contamos con la impresora de l&iacute;nea Diablo 750-N
- conectada a la red. La impresora acepta datos para impresi&oacute;n
- en el puerto 5100. El nombre de host que tiene la impresora es
- scrivener. El filtro de texto a usar quedar&iacute;a de la
- siguiente manera:</para>
-
- <programlisting>#!/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</programlisting>
- </sect3>
- </sect2>
-
- <sect2 id="printing-advanced-restricting">
- <title>Restricci&oacute;n del Uso de la Impresora</title>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>restringiendo el acceso a</secondary>
- </indexterm>
- <para>Esta secci&oacute;n le da informaci&oacute;n sobre la
- restricci&oacute;n en el uso de la impresora. El sistema de
- <application>LPD</application> le permite controlar quien puede
- acceder a la impresora de ambas formas, local y remota, si los
- usuarios pueden imprimir m&uacute;ltiples copias, que tan grandes
- pueden ser los trabajos de impresi&oacute;n, y limitar el tama&ntilde;o
- de la cola de impresi&oacute;n.</para>
-
- <sect3 id="printing-advanced-restricting-copies">
- <title>Restricci&oacute;n de Copias Multiples</title>
-
- <para>El sistema de <application>LPD</application> le facilita a los
- usuarios el imprimir m&uacute;ltiples copias de un mismo fichero. Los
- usuarios pueden usar (por ejemplo) <command>lpr -#5</command> para
- imprimir 5 copias de cada fichero enviado. El hecho de que esto sea
- bueno o no es algo que depende de usted.</para>
-
- <para>Si usted siente que las copias m&uacute;ltiples causan trabajo
- inecesario a su impresora, puede deshabilitar la opci&oacute;n
- <option>-#</option> de &man.lpr.1;, al incluir la caracter&iacute;stica
- <literal>sc</literal> en su fichero <filename>/etc/printcap</filename>.
- Cuando los usuarios utilicen la opci&oacute;n <option>-#</option> al
- momento de imprimir, ver&aacute;n el siguiente aviso:</para>
-
- <screen>lpr: multiple copies are not allowed</screen>
-
-
- <para>Recuerde que si usted a configurado una impresora para su
- acceso de forma remota (vea la secci&oacute;n <link
- linkend="printing-advanced-network-rm">Impresoras
- Instaladas en Hosts Remotos</link>), ser&aacute; necesario que
- tambi&eacute;n cuente con la caracter&iacute;stica <literal>sc</literal>
- en el fichero <filename>/etc/printcap</filename> del host remoto, o
- bien, los usuarios aun podr&aacute;n hacer uso de la opci&oacute;n
- <option>-#</option>, al usar un host diferente.</para>
-
- <para>Aqui presentamos un ejemplo. Este es un ejemplo del fichero
- <filename>/etc/printcap</filename>, del host <hostid>rose</hostid>.
- La impresora <literal>rattan</literal> es <quote>de batalla</quote>
- por lo que permitiremos las copias m&uacute;ltiples, pero la
- impresora laser <literal>bamboo</literal> es m&aacute;s delicada por
- lo que vamos a deshabilitar las copias m&uacute;ltiples, al
- a&ntilde;adir la caracter&iacute;stica <literal>sc</literal>:</para>
-
- <programlisting>#
-# 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:</programlisting>
-
- <para>Ahora, tambi&eacute; debemos a&ntilde;adir la caracter&iacute;stica
- <literal>sc</literal> en el fichero <filename>/etc/printcap</filename>
- del host <hostid>orchid</hostid> (y ya que estamos en eso,
- deshabiltemos las copias m&uacute;ltiples para la impresora
- <literal>teak</literal>):</para>
-
- <programlisting>#
-# 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:</programlisting>
-
- <para>Al incluir la caracter&iacute;stica <literal>sc</literal>, hemos
- prevenido el uso de <command>lpr -#</command>, pero eso no previene
- el uso de &man.lpr.1; gran cantidad de veces, o el env&iacute;o del
- mismo trabajo varias veces, tal como:</para>
-
- <screen>&prompt.user; <userinput>lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign</userinput></screen>
-
- <para>Existen gran cantidad de formas para prevenir este abuso
- (incluyendo el ignorarlo), que usted queda en libertad de explorar.
- </para>
- </sect3>
-
- <sect3 id="printing-advanced-restricting-access">
- <title>Restricci&oacute;n de Acceso a Impresoras</title>
-
- <para>Usted puede controlar quien puede imprimir y en que impresoras,
- haciendo uso del mecanismo de grupos de Unix y de la
- caracter&iacute;stica <literal>rg</literal> en el fichero
- <filename>/etc/printcap</filename>. Simplemente a&ntilde;ada en un
- grupo determinado, a los usuarios que desea puedan imprimir en cierta
- impresora, y despu&eacute;s a&ntilde;ada el nombre del grupo a la
- caracter&iacute;stica <literal>rg</literal>.</para>
-
- <para>Todos los usuarios que no pertenezcan a este grupo (incluyendo al
- superusuario (<username>root</username>)), y que deseen imprimir en la
- impresora controlada, les aparecer&aacute; este mensaje:
-
- <errorname>lpr: Not a member of the restricted group</errorname></para>
-
- <para>De la misma forma que hicimos con <literal>sc</literal> (la
- eliminaci&oacute;n de copias m&uacute;ltiples), con
- <literal>rg</literal> deber&acute; indicarla en los hosts remotos que
- tengan acceso a sus impresoras si lo cree conveniente (vea la
- secci&oacute;n <link
- linkend="printing-advanced-network-rm">Impresoras Instaladas en
- Hosts Remotos</link>).</para>
-
- <para>Por ejemplo, vamos a permitir que cualquiera imprima en
- <literal>rattan</literal>, pero solo aquellos que forman parte del
- grupo <literal>artistas</literal> podr&aacute;n usar la impresora
- <literal>bamboo</literal>. Nuevamente tenemos el fichero
- <filename>/etc/printcap</filename> para el host
- <hostid>rose</hostid>:</para>
-
- <programlisting>#
-# 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:</programlisting>
-
- <para>Vamos a dejar de lado el otro fichero
- <filename>/etc/printcap</filename> de ejemplo (el del host
- <hostid>orchid</hostid>). Claro esta, que cualquier usuario desde
- <hostid>orchid</hostid> puede imprimir en <literal>bamboo</literal>.
- En este caso podriamos aceptar s&oacute;lo ciertos accesos desde
- <hostid>orchid</hostid>, y esto les dar&iacute;a acceso a la impresora.
- O no.</para>
-
- <note>
- <para>S&oacute;lo puede haber un grupo restringido por impresora.</para>
- </note>
- </sect3>
-
- <sect3 id="printing-advanced-restricting-sizes">
- <title>Controlando el Tama&ntilde;o de los Trabajos Enviados</title>
-
- <indexterm><primary>trabajos de impresi&oacute;n</primary></indexterm>
- <para>Si usted cuenta con gran cantidad de usuarios accesando sus
- impresoras, probablemente necesite establecer un l&iacute;mite
- m&aacute;ximo en el tama&ntilde;o que deban tener los trabajos
- enviados a imprimir. Despu&eacute;s de todo, s&oacute;lo existe
- tanto espacio libre en el sistema de ficheros como el que se tiene
- en los directorios de cola, y tambi&eacute;n usted debe asegurarse
- de que exista el espacio suficiente para otros usuarios.</para>
-
- <indexterm>
- <primary>trabajos de impresi&oacute;n</primary>
- <secondary>controlando</secondary>
- </indexterm>
- <para>El sistema de <application>LPD</application>, le permite
- especificar un monto maximo de tama&ntilde;o en bytes para un trabajo,
- con la caracter&iacute;stica <literal>mx</literal>. Las unidades
- est&aacute;n indicadas en blques <literal>BUFSIZ</literal>, que son
- de 1024 bytes. Si usted le agrega un cero a esta
- caracter&iacute;stica, no habr&aacute; l&iacute;mite en el
- tama&ntilde;o de los trabajos que se puedan enviar a imprimir; por
- otro lado, si no se especifica la caracter&iacute;stica
- <literal>mx</literal>, el l&iacute;mite por default ser&aacute; de
- 1000 bloques.</para>
-
- <note>
- <para>El l&iacute;mite es v&aacute;lido para los
- <emphasis>ficheros</emphasis> del trabajo, y <emphasis>no</emphasis>
- para el tama&ntilde;o total del trabajo.</para>
- </note>
-
- <para>El sistema de <application>LPD</application> no rehusar&aacute;
- imprimir los trabajos que exceden el l&iacute;mite, en su lugar
- proceder&aacute; con la impresi&oacute;n hasta el l&iacute;mite
- indicado. El resto del trabajo quedar&aacute; descartado. El hecho
- de que este comportamiento sea correcto o no, aun es tema de
- debate.</para>
-
- <para>Ahora permitamonos incluir l&iacute;mites a nuestras impresoras
- de ejemplo <literal>rattan</literal> y <literal>bamboo</literal>. En
- virtud de que esos <quote>artistas</quote> tienden a imprimir grandes
- trabajos en PostScript, los vamos a limitar a cinco megabytes. En la
- impresora de l&iacute;nea no vamos a especificar l&iacute;mite:</para>
-
- <programlisting>#
-# 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:</programlisting>
-
- <para>Nuevamente, los l&iacute;mites aplican s&oacute;lo para los
- usuarios locales. Si se han configurado las impresoras para su
- acceso de forma remota, los usuarios que accesen remotamente no
- tendr&aacute;n esta limitante. Para efecto de que esto sea
- v&aacute;lido en los usuarios remotos, deber&aacute; agregar la
- caracter&iacute;stica <literal>mx</literal> en el fichero
- <filename>/etc/printcap</filename> de los hosts remotos. Vea la
- secci&oacute;n <link
- linkend="printing-advanced-network-rm">Impresoras Instaladas en
- Hosts Remotos</link> para mayor informaci&oacute;n sobre la
- instalaci&oacute;n de impresoras en red.</para>
-
- <para>Existe otra forma especializada para limitar el tama&ntilde;o
- de los trabajos, desde impresoras remotas, vea la secci&oacute;n <link
- linkend="printing-advanced-restricting-remote">Restricci&oacute;n de
- Trabajos de Impresoras Remotas</link>.</para>
- </sect3>
-
- <sect3 id="printing-advanced-restricting-remote">
- <title>Restricci&oacute;n de Trabajos de Impresoras Remotas</title>
-
- <para>El sistema de cola de <application>LPD</application> cuenta con
- varios metodos para restringir la impresi&oacute;n de trabajos enviados
- por hosts remotos:</para>
-
- <variablelist>
- <varlistentry>
- <term>Restricciones del Host</term>
-
- <listitem>
- <para>Haciendo uso de los ficheros
- <filename>/etc/hosts.equiv</filename> y
- <filename>/etc/hosts.lpd</filename>, usted puede controlar
- el <application>LPD</application> local, para determinar
- de que hosts remotos se acepten conexiones. En este
- caso, <application>LPD</application> verifica, en caso de una
- petici&oacute;n, que el host remoto se encuentre listado en
- agluno de estos dos ficheros. Si no es as&iacute;,
- <application>LPD</application> rechazar&aacute; la
- petici&oacute;n.</para>
-
- <para>El formato de estos ficheros es simple: el nombre de un host
- por l&iacute;nea. Note que el fichero
- <filename>/etc/hosts.equiv</filename> tambi&eacute;n es usado por
- el protocolo &man.ruserok.3;, y afecta programas como &man.rsh.1;
- y &man.rcp.1;, as&iacute; que tenga cuidado al editarlo.</para>
-
- <para>Por ejemplo, este es el fichero
- <filename>/etc/hosts.lpd</filename> del host
- <hostid>rose</hostid>:</para>
-
- <programlisting>orchid
-violet
-madrigal.fishbaum.de</programlisting>
-
- <para>Esto significa que <hostid>rose</hostid> aceptar&aacute;
- peticiones de los hosts <hostid>orchid</hostid>,
- <hostid>violet</hostid> y
- <hostid role="fqdn">madrigal.fishbaum.de</hostid>. Si cualquier
- otro host intenta accesar el <application>LPD</application> de
- <hostid>rose</hostid>, el acceso ser&aacute; denegado.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Restricciones de Tama&ntilde;o</term>
-
- <listitem>
- <para>Usted puede controlar cuanto espacio libre se requiere, en el
- sistema de fichero donde se localiza el directorio del sistema
- de impresi&oacute;n. Cree un fichero llamado
- <filename>minfree</filename>, en el directorio local de la cola
- de impresi&oacute;n. En ese fichero a&ntilde;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.</para>
-
- <para>Esto permite asegurarle que los usuarios remotos no llenaran
- su disco duro. Esto tambi&eacute;n puede usarse para dar cierta
- prioridad a los usuarios locales: ya que podr&aacute; colocar sus
- trabajos en espera en la cola de impresi&oacute;n, hasta que la
- cantidad de espacio libre sea inferior a la indicada en el
- fichero <filename>minfree</filename>.</para>
-
- <para>Por ejemplo, incluyamos a <filename>minfree</filename> en
- la impresora <literal>bamboo</literal>. Para esto, primero
- examinamos el fichero <filename>/etc/printcap</filename>, para
- encontrar los datos de la impresora; aqui tenemos la entrada de
- <literal>bamboo</literal>:</para>
-
- <programlisting>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:</programlisting>
-
- <para>El directorio de la cola de impresi&oacute;n es indicado por
- la caracter&iacute;stica <literal>sd</literal>. Vamos a dejar
- tres megabytes (que son 6144 bloques de disco) como espacio libre
- que debe existir en el sistema de ficheros, para que
- <application>LPD</application> acepte trabajos remotos:</para>
-
- <screen>&prompt.root; <userinput>echo 6144 &gt; /var/spool/lpd/bamboo/minfree
- </userinput></screen>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Restricciones por Usuario</term>
-
- <listitem>
- <para>Usted puede controlar que usuarios remotos pueden imprimir en
- impresoras locales, al incluir la caracter&iacute;stica
- <literal>rs</literal> en <filename>/etc/printcap</filename>.
- Cuando <literal>rs</literal> aparece en la entrada de una
- impresora que esta conectada localmente,
- <application>LPD</application> aceptar&aacute; trabajos de
- usuarios remotos, <emphasis>siempre y cuando</emphasis> el
- usuario que ha enviado el trabajo, tenga alguna cuenta, con el
- mismo nombre de usuario en el host local. De otra forma
- <application>LPD</application> no har&aacute; el trabajo.</para>
-
- <para>Esta caracter&iacute;stica es particularmente &uacute;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 <emphasis>no</emphasis> de los recursos de su sistema, puede
- asignarles cuentas <quote>tontas</quote> (token accounts), que
- no cuentan con un directorio home y con un un shell inservible
- como <filename>/usr/bin/false</filename>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
- </sect2>
-
- <sect2 id="printing-advanced-acct">
- <title>Contabilidad del Uso de la Impresora</title>
-
- <indexterm>
- <primary>contabilidad</primary>
- <secondary>impresora</secondary>
- </indexterm>
- <para>As&iacute; que usted requiere de cobrar por las impresiones.
- &iquest;Y por qu&eacute; no?, el papel y la tinta cuestan dinero. Y
- tambi&eacute;n est&aacute;n los costos de mantenimiento&mdash;las
- impresoras estan llenas de partes m&oacute;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&aacute;gina (o por-pie, por-metro, o por-loquesea). Ahora bien,
- &iquest;C&oacute;mo empezar a llevar una contabilidad de las
- impresiones?.</para>
-
- <para>Bueno, la mala noticia es que <application>LPD</application> 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 <emphasis>sus</emphasis> requerimientos para cobrar por
- el uso de la impresora.</para>
-
- <para>Para implementar un contador, deber&aacute; modificar el filtro de
- texto (para cobrar por impresiones en texto plano) y los filtros de
- conversi&oacute;n (para cobrar por impresiones en otro formato), para
- efecto de llevar un conteo de p&aacute;ginas o peticiones a la impresora
- para imprimir. Esto no podr&aacute; llevarse a cabo con un simple filtro
- de salida, dado que no puede llevar un conteo. Vea la secci&oacute;n
- <link linkend="printing-advanced-filter-intro">Filtros</link>.</para>
-
- <para>En t&eacute;rminos generales existen dos formas de hacer esto:</para>
-
- <itemizedlist>
- <listitem>
- <para>El <emphasis>contador periodico</emphasis> es la forma m&aacute;s
- comun, quiz&aacute;s por que es la m&aacute;s sencilla. Cuando
- alguien envia una impresi&oacute;n, el filtro registra el usuario,
- host y numero de p&aacute;ginas en un fichero contador. Cada mes,
- semestre, a&ntilde;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&eacute;s de limpiar estos ficheros puede empezar un nuevo
- periodo de cero.</para>
- </listitem>
-
- <listitem>
- <para>El <emphasis>contador por tiempo</emphasis> es menos conocido,
- quiz&aacute;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&aacute;n en numeros rojos, y quiz&aacute;s en cierto modo
- proveer a sus usuarios de una forma de verificar sus <quote>cuotas de
- impresi&oacute;n</quote>. Pero este metodo requiere de uso de bases
- de datos, para dar seguimiento a los usuarios y sus cuotas.</para>
- </listitem>
- </itemizedlist>
-
- <para>El sistema de cola de <application>LPD</application> cuenta con
- soporte para ambos metodos: en virtud de que usted debe proveer los
- filtros (bueno, casi todo el tiempo), tambi&eacute;n debe proveer del
- c&oacute;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&oacute;n debe quedar registrada:
- nombre de usuario, nombre del host, tipo de trabajo, p&aacute;ginas
- impresas, medidas del papel usado, tiempo que duro en imprimir el
- trabajo, y as&iacute; sucesivamente. Y para hacer esto, s&oacute;lo debe
- modificar sus filtros.</para>
-
- <sect3>
- <title>Contabilidad de Impresiones R&aacute;pida y Sucia</title>
-
- <para>FreeBSD cuenta con dos programas que pueden auxiliarlo para
- instalar un simple contador periodico. Ellos son; el filtro de
- texto <command>lpf</command>, descrito en la secci&oacute;n <link
- linkend="printing-advanced-lpf">lpf: un Filtro de Texto</link>, y
- &man.pac.8;, un programa para reunir y totalizar la informaci&oacute;n
- de los ficheros de contador de impresiones.</para>
-
- <para>Como se menciono en la secci&oacute;n de filtros (<link
- linkend="printing-advanced-filters">Como Trabajan los Filtros</link>),
- <application>LPD</application> inicia los filtros de texto y
- conversi&oacute;n con el nombre del fichero contador a usar en la
- l&iacute;nea de comando del filtro. Los filtros pueden usar este
- argumento para saber en donde registrar la informaci&oacute;n. El
- nombre de este fichero se indica en la caracter&iacute;stica
- <literal>af</literal> del fichero <filename>/etc/printcap</filename>,
- y si no se indica su ruta completa, se har&aacute; referencia al
- directorio de la cola de impresi&oacute;n.</para>
-
- <para><application>LPD</application> inicia <command>lpf</command> con
- los argumentos de alto y ancho del papel (tomados de
- <literal>pw</literal> y <literal>pl</literal>). <command>lpf</command>
- usa estos argumentos para determinar cuanto papel ser&aacute;
- necesario. Una vez enviado el fichero a impresi&oacute;n, se escribe
- en el fichero contador un registro. Este registro es as&iacute;:</para>
-
- <programlisting>2.00 rose:andy
-3.00 rose:kelly
-3.00 orchid:mary
-5.00 orchid:mary
-2.00 orchid:zhang</programlisting>
-
- <para>Deber&aacute; usar un fichero contador para cada impresora, dado
- que <command>lpf</command> no cuenta con una l&oacute;gica de
- bloqueo de ficheros incluida, y dos <command>lpf</command> escribiendo
- al mismo tiempo en un fichero podrian corromperlo. Una forma segura
- para garantizar el uso de ficheros distintos por impresora, es usar
- <literal>af=acct</literal> en el fichero
- <filename>/etc/printcap</filename>. De esta forma contaremos con el
- fichero contador de cada impresora por separado, en el directorio de la
- cola de impresi&oacute;n, en un fichero llamado
- <filename>acct</filename>.</para>
-
- <para>Cuando sea el momento de cobrar a los usuraios, ejecute el programa
- &man.pac.8;. S&oacute;lo dirijase al directorio de cola, del cual
- desea recabar la informaci&oacute;n y teclee <literal>pac</literal>.
- Usted obtendr&aacute; un resumen similar al siguiente:</para>
-
- <screen> 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</screen>
-
- <para>Estos son los argumentos que puede pasar a &man.pac.8;:</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-P<replaceable>impresora</replaceable></option></term>
-
- <listitem>
- <para>De que <replaceable>impresora</replaceable> hacer el resumen.
- Esta opci&oacute;n funciona, solo si existe una ruta absoluta, en la
- caracter&iacute;stcia <literal>af</literal> del fichero
- <filename>/etc/printcap</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-c</option></term>
-
- <listitem>
- <para>Ordenar la salida por costo en lugar de por usuario
- alfabeticamente.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-m</option></term>
-
- <listitem>
- <para>Ignorar el nombre de host. Con esta opci&oacute;n,
- el usuario <username>smith</username> del host
- <hostid>alpha</hostid>, es el mismo usuario
- <username>smith</username> del host <hostid>gamma</hostid>. Sin
- esta opci&oacute;n, se consideran usuarios diferentes.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-p<replaceable>precio</replaceable></option></term>
-
- <listitem>
- <para>Computar cargos con tal <replaceable>precio</replaceable>
- en d&oacute;lares por p&aacute;gina o por pie, en lugar del
- precio tomado de la caracter&iacute;stica <literal>pc</literal>
- del fichero <filename>/etc/printcap</filename>, o dos centavos
- (precio por default). Puede indicar el
- <replaceable>precio</replaceable> como un numero de punto
- flotante.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-r</option></term>
-
- <listitem>
- <para>Invertir el orden de acomodo.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-s</option></term>
-
- <listitem>
- <para>Crear un fichero de resumen y reiniciar el fichero contador.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><replaceable>nombre</replaceable>
- <replaceable>&hellip;</replaceable></term>
-
- <listitem>
- <para>Imprimir la informaci&oacute;n del usuario
- <replaceable>nombre</replaceable> unicamente.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>En el resumen que genera &man.pac.8; por default, podr&aacute;
- observar el numero de p&aacute;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
- <command>pac -m</command>, para producir el siguiente resumen:</para>
-
- <screen> 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</screen>
-
-
- <para>Para calcular el monto adeudado, &man.pac.8; utiliza la
- caracter&iacute;stica <literal>pc</literal> del fichero
- <filename>/etc/printcap</filename> (que por default utiliza 200, o
- 2 centavos por p&aacute;gina). Especifique en cientos de centavos
- el precio a cobrar por p&aacute;gina o por pie, que desea cobrar, en
- esta caracter&iacute;stica. Puede reemplazar este valor cuando ejecuta
- &man.pac.8; con la opci&oacute;n <option>-p</option>. Las unidades de
- esta opci&oacute;n estan expresadas en d&oacute;lares, y no en cientos
- de centavos. Por ejemplo,
-
- <screen>&prompt.root; <userinput>pac -p1.50</userinput></screen>
-
- hace que cada p&aacute;gina tenga un costo de un dolar con cincuenta
- centavos. Realmente se puede exceder en las utilidades usando esta
- opci&oacute;n.</para>
-
- <para>Finalmente, ejecutando <command>pac -s</command> puede guardar la
- el resumen, en un fichero, que es nombrado al igual que el fichero
- contador de la impresora, pero con <literal>_sum</literal> 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&ntilde;ade la informaci&oacute;n
- del fichero contador normal.</para>
- </sect3>
-
- <sect3>
- <title>&iquest;C&oacute;mo Contabilizar las P&aacute;ginas
- Impresas?</title>
-
- <para>Para efecto de que pueda obtener un conteo m&aacute;s cercano a la
- realidad, necesita poder determinar cuanto papel utiliza cada trabajo.
- Este es el problema esencial del conteo de impresiones.</para>
-
- <para>Para impresiones en texto, este problema no es tan dif&iacute;cil
- de resolver: puede contabilizar el numero de l&iacute;neas que tiene un
- trabajo y dividirlas entre el numero de l&iacute;neas totales por
- p&aacute;gina que maneja la impresora. No olvide contabilizar los
- retrocesos del fichero que sobreimprimen l&iacute;neas, o de las largas
- l&iacute;neas l&oacute;gicas que se justifican en en una o m&aacute;s
- l&iacute;neas f&iacute;sicas.</para>
-
- <para>El filtro de texto <command>lpf</command> (introducido en <link
- linkend="printing-advanced-lpf">lpf: un Filtro de Texto</link>) toma
- en cuenta todas estas cosas cuando hace el conteo. Si usted esta
- escribiendo un filtro de texto que requiere contabilizar, quiz&aacute;s
- desee examinar el c&oacute;digo fuente del <command>lpf</command>.
- </para>
-
- <para>Pero, &iquest;C&oacute;mo manejar otros formatos?</para>
-
- <para>Bueno, para conversiones DVI-a-LaserJet o DVI-a-PostScript, puede
- hacer que su filtro pase la informaci&oacute;n de salida a
- <command>dvilj</command> o <command>dvips</command> y ver cuantas
- p&aacute;ginas fueron convertidas. Puede hacer cosas similares con
- otros formatos y filtros de conversi&oacute;n.</para>
-
- <para>Pero estos metodos sufren del hecho de que la impresora puede no
- imprimir estas p&aacute;ginas. Po ejemplo, se pueden atorar, acabarse
- la tinta, o explotar&mdash;y el usuario de todas formas se le
- cobrar&aacute;.</para>
-
- <para>Entonces, &iquest;qu&eacute; puede hacer?</para>
-
- <para>S&oacute;lo existe una forma <emphasis>segura</emphasis> de llevar
- un conteo <emphasis>confiable</emphasis>. 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&eacute;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&aacute;ginas impresas y que almacenen los
- registros basados en el valor <emphasis>only</emphasis>. No se
- requiere de un conteo de l&iacute;neas o de examinar el fichero de
- errores.</para>
-
- <para>Claro esta que usted puede ser muy generoso y no cobrar por las
- impresiones.</para>
- </sect3>
- </sect2>
</sect1>
-
+
<sect1 id="printing-using">
- <title>Uso de las Impresoras</title>
-
- <indexterm>
- <primary>impresora</primary>
- <secondary>uso</secondary>
- </indexterm>
- <para>Esta secci&oacute;n le indica como usar las impresoras que ha instalado
- con FreeBSD. Aqui tenemos los comandos de usuario mas comunes:</para>
-
- <variablelist>
- <varlistentry>
- <term>&man.lpr.1;</term>
-
- <listitem>
- <para>Imprime trabajos</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&man.lpq.1;</term>
-
- <listitem>
- <para>Verifica los trabajos pendientes</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>&man.lprm.1;</term>
-
- <listitem>
- <para>Elimina un trabajo de la cola de impresi&oacute;n</para>
- </listitem>
- </varlistentry>
- </variablelist>
+ <title>C&oacute;mo utilizar impresoras</title>
- <para>Tambi&eacute;n se cuenta con un comando de administraci&oacute;n,
- &man.lpc.8;, descrito en la secci&oacute;n <link linkend="printing-lpc">
- Administraci&oacute;n de la Cola de Impresi&oacute;n de
- <application>LPD</application></link>, usado para controlar las
- impresoras y sus peticiones.</para>
-
- <para>Las tres opciones &man.lpr.1;, &man.lprm.1;, y &man.lpq.1;, aceptan el
- argumento <option>-P<replaceable>impresora</replaceable></option> para
- especificar en que impresora realizar la impresi&oacute;n/petici&oacute;n,
- de acuerdo a lo indicado en <filename>/etc/printcap</filename>. Esto le
- permite imprimir, remover o consultar los trabajos en varias impresoras.
- Si no usa el argumento <option>-P</option>, estos comandos haran uso de la
- impresora especificada en la variable de entorno <envar>PRINTER</envar>.
- Finalmente, si no cuenta con la variable de entorno <envar>PRINTER</envar>
- definida, estos comandos utilizar&aacute;n la impresora por default, que
- es <literal>lp</literal>.</para>
-
- <para>Por lo tanto, el termino <emphasis>impresora por default</emphasis>,
- hace referencia a la impresora definida en la variable de entorno
- <envar>PRINTER</envar>, o en su defecto a la impresora nombrada
- <literal>lp</literal>, cuando no este definida la variable de entorno
- <envar>PRINTER</envar>.</para>
-
- <sect2 id="printing-lpr">
- <title>Trabajos de Impresi&oacute;n</title>
-
- <para>Para imprimir un fichero, teclee:</para>
-
- <screen>&prompt.user; <userinput>lpr <replaceable>fichero</replaceable> <replaceable>...</replaceable></userinput></screen>
-
- <indexterm><primary>imprimir</primary></indexterm>
- <para>Lo anterior imprimir&aacute; los ficheros nombrados, en la impresora
- por default. Si no indica el nombre del fichero, &man.lpr.1;
- leer&aacute; los datos a imprimir de la entrada estandar. Por ejemplo,
- este comando imprime algunos ficheros importantes del sistema:</para>
-
- <screen>&prompt.user; <userinput>lpr /etc/host.conf /etc/hosts.equiv</userinput></screen>
-
- <para>Para seleccionar una impresora, teclee:</para>
-
- <screen>&prompt.user; <userinput>lpr -P <replaceable>nombre-de-la-impresora</replaceable> <replaceable>fichero</replaceable> <replaceable>...</replaceable></userinput></screen>
-
- <para>Este ejemplo imprime una larga lista del directorio actual, en la
- impresora nombrada <literal>rattan</literal>:</para>
-
- <screen>&prompt.user; <userinput>ls -l | lpr -P rattan</userinput></screen>
-
- <para>En virtud de que no se le paso fichero alguno para imprimir a
- &man.lpr.1;, <command>lpr</command> toma los datos de la entrada
- estandar, que en este caso es la salida del comando <command>ls
- -l</command>.</para>
-
- <para>EL comando &man.lpr.1; tambi&eacute;n puede aceptar gran variedad de
- opciones para controlar el formato, aplicar conversiones a los ficheros,
- generar copias multiples, etc.. Para mayor informaci&oacute;n, vea la
- secci&oacute;n <link linkend="printing-lpr-options">Opciones de
- Impresi&oacute;n</link>.</para>
- </sect2>
-
- <sect2 id="printing-lpq">
- <title>Verificando los Trabajos</title>
-
- <indexterm><primary>trabajos de impresi&oacute;n</primary></indexterm>
- <para>Cuando usted utiliza &man.lpr.1; para imprimir, los datos que desea
- imprimir se colocan juntos en un paquete llamado <quote>trabajo de
- impresi&oacute;n</quote>, el cual es enviado al sistema de cola de
- <application>LPD</application>. Cada impresora cuenta con un orden de
- impresi&oacute;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&aacute; los primeros-en-llegar son los primeros-en-salir.
- </para>
-
- <para>Para ver los trabajos pendientes de la impresora por default, teclee
- &man.lpq.1;. Para una impresora en especial, use la opci&oacute;n
- <option>-P</option>. Por ejemplo, el comando
-
- <screen>&prompt.user; <userinput>lpq -P bamboo</userinput></screen>
-
- le muestra los trabajos pendientes de la impresora
- <literal>bamboo</literal>. Aqui tenemos un ejemplo de la salida del
- comando <command>lpq</command>:</para>
-
- <screen>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</screen>
-
- <para>Esto muestra que hay tres trabajos en espera, para
- <literal>bamboo</literal>. El primer trabajo enviado por el usuario
- kelly, tiene asignado en <quote>numero de trabajo</quote> 9. Cada
- trabajo en una impresora, se le asigna un numero &uacute;nico. La
- mayor parte del tiempo puede ignorar el numero de trabajo, pero este
- ser&aacute; necesario en caso de que desee cancelar el trabajo; vea
- la secci&oacute;n <link linkend="printing-lprm">Eliminando
- Trabajos</link> para mas detalles al respecto.</para>
-
- <para>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
- <literal>active</literal> bajo la columna <quote>Rank</quote>), 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
- <username>mary</username>; 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.</para>
-
- <para>La primer l&iacute;nea de la salida de &man.lpq.1; tambi&eacute;n es
- de utilidad: esta le indica que esta haciendo la impresora en este
- momento (o cuando menos, que es lo que <application>LPD</application>
- piensa que la impresora esta haciendo).</para>
-
- <para>El comando &man.lpq.1; tambien cuenta con la opci&oacute;n
- <option>-l</option>, para generar una salida mas detallada. Aqui tenemos
- un ejemplo de <command>lpq -l</command>:</para>
-
- <screen>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</screen>
- </sect2>
-
- <sect2 id="printing-lprm">
- <title>Eliminando Trabajos</title>
-
- <para>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>
-
- <para>Para eliminar un trabajo de la impresoras por default, primero use
- &man.lpq.1; para saber el numero de trabajo. Despu&eacute; teclee:</para>
-
- <screen>&prompt.user; <userinput>lprm <replaceable>numero-trabajo</replaceable></userinput></screen>
-
- <para>Para eliminar un trabajo de un a impresora especifica, utilice la
- opci&oacute;n <option>-P</option>. El siguiente comando elimina el
- trabajo numero 10 de los trabajos pendientes de la impresora
- <literal>bamboo</literal>:</para>
-
- <screen>&prompt.user; <userinput>lprm -P bamboo 10</userinput></screen>
-
- <para>El comando &man.lprm.1; cuenta con algunas opciones:</para>
-
- <variablelist>
- <varlistentry>
- <term>lprm -</term>
-
- <listitem>
- <para>Elimina todos los trabajos (de la impresora por default) y que le
- pertenezcan a usted.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>lprm <replaceable>usuario</replaceable></term>
-
- <listitem>
- <para>Elimina todos los trabajos (de la impresora por default) que
- pertenecen a <replaceable>usuario</replaceable>. El superusuario puede
- eliminar trabajos de otros: usted solo puede eliminar sus trabajos.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>lprm</term>
-
- <listitem>
- <para>Cuando no se pasa ningun nombre de usuario, o <option>-</option>,
- en la l&iacute;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.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Simplemente use la opci&oacute;n <option>-P</option> 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 <literal>rattan</literal>:</para>
-
- <screen>&prompt.user; <userinput>lprm -P rattan -</userinput></screen>
-
- <note>
- <para>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:</para>
-
- <screen>&prompt.user; <userinput>lpr -P rattan mifichero</userinput>
-&prompt.user; <userinput>rlogin orchid</userinput>
-&prompt.user; <userinput>lpq -P rattan</userinput>
-Rank Owner Job Files Total Size
-active seeyan 12 ... 49123 bytes
-2nd kelly 13 mifichero 12 bytes
-&prompt.user; <userinput>lprm -P rattan 13</userinput>
-rose: Permission denied
-&prompt.user; <userinput>logout</userinput>
-&prompt.user; <userinput>lprm -P rattan 13</userinput>
-dfA013rose dequeued
-cfA013rose dequeued
- </screen>
- </note>
- </sect2>
-
- <sect2 id="printing-lpr-options">
- <title>M&aacute;s alla del Texto Plano: Opciones de Impresi&oacute;n</title>
-
- <para>El comando &man.lpr.1; cuenta con soporte para multiples opciones que
- controlan el formato del texto, conversi&oacute;n de gr&aacute;ficos y
- otros formatos, producci&oacute;n de copias multiples, manejo de los
- trabajos, y m&aacute;s. Esta secci&oacute;n describe estas opciones.
- </para>
-
- <sect3 id="printing-lpr-options-format">
- <title>Opciones de Formato y Conversi&oacute;n</title>
-
- <para>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;.</para>
-
- <indexterm><primary>TeX</primary></indexterm>
- <para>Por ejemplo, el siguiente comando imprime un fichero DVI (desde un
- sistema de escritura TeX) llamado <filename>fish-report.dvi</filename>
- a la impresora <literal>bamboo</literal>:</para>
-
- <screen>&prompt.user; <userinput>lpr -P bamboo -d fish-report.dvi</userinput></screen>
-
- <para>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&oacute;n que corresponda a cada trabajo.</para>
-
- <note>
- <para>Todas estas opciones, excepto <option>-p</option> y <option>-T
- </option> requieren de filtros de conversi&oacute;n instalados para la
- impresora destino. Por ejemplo, la opci&oacute;n <option>-d</option>
- requiere de un filtro para DVI. La secci&oacute;n <link
- linkend="printing-advanced-convfilters">Filtros de Conversi&oacute;n
- </link> le da m&aacute;s detalles al respecto.</para>
- </note>
-
- <variablelist>
- <varlistentry>
- <term><option>-c</option></term>
-
- <listitem>
- <para>Imprimir ficheros cifplot.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-d</option></term>
-
- <listitem>
- <para>Imprimir ficheros DVI.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-f</option></term>
-
- <listitem>
- <para>Imprimir ficheros de texto FORTRAN.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-g</option></term>
-
- <listitem>
- <para>Imprimir datos plot.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-i<replaceable>numero</replaceable></option></term>
-
- <listitem>
- <para>Sangrar la salida con el <replaceable>numero</replaceable> de
- columnas indicado; si omite <replaceable>numero</replaceable>, el
- numero ser&aacute; de 8 columnas. Esta opci&oacute;n trabaja bien
- solo con algunos filtros de conversi&oacute;n.</para>
-
- <note>
- <para>No debe dejar espacios entre la opci&oacute;n <option>-i</option>
- y el numero.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-l</option></term>
-
- <listitem>
- <para>Imprimir datos de texto literal, incluyendo caracteres de
- control.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-n</option></term>
-
- <listitem>
- <para>Imprimir datos ditroff (troff independiente del dispositivo).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-p</term>
-
- <listitem>
- <para>Formatear el texto plano con &man.pr.1; antes de imprimir. Vea
- &man.pr.1; para m&aacute;s informaci&oacute;n.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-T <replaceable>titulo</replaceable></option></term>
-
- <listitem>
- <para>Use <replaceable>titulo</replaceable> en la cabecera de
- &man.pr.1;, en lugar del nombre del fichero. Esta opci&oacute;n solo
- tiene efecto cuando se usa con <option>-p</option>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-t</option></term>
-
- <listitem>
- <para>Imprimir datos troff.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-v</option></term>
-
- <listitem>
- <para>Imprimir datos raster.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Aqui tenemos un ejemplo: este comando imprime una bonita y formateada
- versi&oacute;n de la p&aacute;gina de ayuda de &man.ls.1;, en la impresora
- por default:</para>
-
- <screen>&prompt.user; <userinput>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</userinput></screen>
-
- <para>El comando &man.zcat.1; descomprime la fuente de la p&aacute;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 <application>LPD</application>. Como usamos la
- opci&oacute;n <option>-t</option> con &man.lpr.1;, el sistema de cola va
- a convertir la salida GNU troff a datos entendibles para la impresora,
- cuando se imprime.</para>
- </sect3>
-
- <sect3 id="printing-lpr-options-job-handling">
- <title>Opciones para Manejar los Trabajos</title>
-
- <para>Las siguientes opciones de &man.lpr.1;, le indican a
- <application>LPD</application> que debe manejar el trabajo de
- una forma especial:</para>
-
- <variablelist>
- <varlistentry>
- <term>-# <replaceable>copias</replaceable></term>
-
- <listitem>
- <para>Producir un numero de <replaceable>copias</replaceable> de cada
- fichero en el trabajo, en vez de una sola copia. Un administrador
- puede inhabilitar esta oprci&oacute;n para reducir el desgaste de la
- impresora y alentar el uso de la fotocopiadora. Vea la secci&oacute;n
- <link
- linkend="printing-advanced-restricting-copies">Restricc&oacute;n
- de Copias Multiples</link>.</para>
-
- <para>Este ejemplo imprime tres copias de
- <filename>parser.c</filename> seguido de tres copias de
- <filename>parser.h</filename> en la impresora por default:</para>
-
- <screen>&prompt.user; <userinput>lpr -#3 parser.c parser.h</userinput></screen>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-m</term>
-
- <listitem>
- <para>Enviar correo despu&eacute;s de completar el trabajo. Con esta
- opci&oacute;n, el sistema <application>LPD</application> enviara un
- correo a su cuenta cuando termina de imprimir. En su mensaje, le
- informar&aacute; si el trabajo termino con exito o si hubo algun
- error, y (normalmente) que tipo de error fu&eacute;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-s</term>
-
- <listitem>
- <para>No copie el fichero al directorio de la cola, en su lugar crear
- un enlace simbolico.</para>
-
- <para>Si usted esta imprimiendo un trabajo de gran tama&ntilde;o,
- quiz&aacute;s esta es una buena opci&oacute;n. Esta opci&oacute;n le
- ahorra espacio en el directorio de cola (donde su trabajo puede
- terminar con el espacio libre donde reside su directorio). Esta
- opci&oacute;n tambi&eacute;n le ahorra tiempo, en virtud de que
- <application>LPD</application> no tendr&aacute; que copiar todos y
- cada uno de los bytes del trabajo al directorio.</para>
-
- <para>Aunque esto tiene su inconveniente: dado que
- <application>LPD</application> estar&aacute; haciendo uso del fichero
- original, no lo podr&aacute; modificar o eliminar hasta que termine
- la impresi&oacute;n.</para>
-
- <note>
- <para>Si usted esta en un entorno de red, <application>LPD</application>
- eventualmente copiar&aacute; ficheros del host local al host remoto,
- as&iacute; que la opci&oacute;n <option>-s</option> le puede ahorrar
- espacio solo en el directorio del host local, no en los remotos.
- Aun con esto, la opcion es de gran utilidad.</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-r</term>
-
- <listitem>
- <para>Eliminar los ficheros del trabajo, una vez que hayan sido
- copiados al directorio de la cola, o despu&eacute;s de que hayan sido
- impresos, cuando se use la opci&oacute;n <option>-s</option>. Tenga
- cuidado con esta opci&oacute;n!</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
-
- <sect3 id="printing-lpr-options-misc">
- <title>Opciones de P&aacute;ginas de Encabezado</title>
-
- <para>Cuando alguna de las siguientes opciones son pasadas a &man.lpr.1;,
- ajustan el texto que normalmente aparece en la p&aacute;gina encabezado
- del trabajo. Si las p&aacute;ginas de encabezado son suprimidas, estas
- opciones no tendr&aacute;n efecto alguno. Vea la secci&oacute;n <link
- linkend="printing-advanced-header-pages">P&aacute;ginas de
- Encabezado</link> para m&aacute;s informaci&oacute;n sobre la
- configuraci&oacute;n de las P&aacute;ginas de Encabezado.</para>
-
- <variablelist>
- <varlistentry>
- <term>-C <replaceable>texto</replaceable></term>
-
- <listitem>
- <para>Reemplazar el nombre del host del encabezado con este
- <replaceable>texto</replaceable>. Normalmente el nombre del host es el
- nombre del host del cual se esta imprimiendo.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-J <replaceable>texto</replaceable></term>
-
- <listitem>
- <para>Reemplazar el nombre del trabajo en el encabezado con este
- <replaceable>texto</replaceable>. Normalmente el nombre del trabajo es
- el nombre del primer fichero del trabajo, o <filename>stdin</filename> si
- esta imprimendo de la entrada estandar.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>-h</term>
-
- <listitem>
- <para>No imprimir p&aacute;gina de encabezado.</para>
-
- <note>
- <para>En algunos sitios esta opci&oacute;n puede no tenere efecto alguno,
- debido al metodo usado para generar las p&aacute;ginas de encabezado.
- Vea la secci&oacute;n <link
- linkend="printing-advanced-header-pages">P&aacute;ginas de
- Encabezado</link> para m&aacute;s detalles.</para>
- </note>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect3>
- </sect2>
-
- <sect2 id="printing-lpc">
- <title>Administraci&oacute;n de la Cola de Impresi&oacute;n de
- <application>LPD</application></title>
-
- <para>Como administrador de sus impresoras, usted deber&aacute;
- instalarlas, configurarlas, y probarlas. Con el comando &man.lpc.8;
- usted podr&aacute; interactuar con las impresoras de una forma m&aacute;s
- completa. Con &man.lpc.8; usted podr&aacute;</para>
-
- <itemizedlist>
- <listitem>
- <para>Iniciar y detener las impresoras</para>
- </listitem>
-
- <listitem>
- <para>Habilitar y deshabilitar sus trabajos pendientes</para>
- </listitem>
-
- <listitem>
- <para>Modificar el orden de los trabajos pendientes.</para>
- </listitem>
- </itemizedlist>
-
- <para>Primero, una nota de terminolog&iacute;a: si una impresora es
- <emphasis>detenida</emphasis>, no podr&aacute; contar con una cola de
- trabajos pendientes. Los usuarios podr&aacute;n enviar sus trabajos,
- que quedar&aacute;n en espera hasta que la impresora se
- <emphasis>iniciada</emphasis> o su cola de trabajos pendientes sea
- purgada.</para>
-
- <para>Si la cola de trabajos pendientes es
- <emphasis>deshabilitada</emphasis>, ningun usuario (excepto
- <username>root</username>) podr&aacute; enviar trabajos a la impresora.
- Una cola de trabajos pendientes <emphasis>habilitada</emphasis>,
- permitir&aacute; el envio de trabajos. Una impresora puede ser
- <emphasis>iniciada</emphasis> para una cola de trabajos que esta
- deshabilitada, en cuyo caso continuar&aacute; imprimiendo los trabajos de
- la cola de trabajos pendientes, hasta que ya no exista ninguno.</para>
-
- <para>En general, usted debe de contar con privilegios de
- <username>root</username> 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.</para>
-
- <para>Aqui tenemos un resumen de los comandos de &man.lpc.8;. La mayor
- parte de estos comandos usan el argumento
- <replaceable>nombre-impresora</replaceable> para indicarle en cual debe
- operar. Como este argumento puede usar <literal>all</literal>, para
- indicarle que opere en todas las impresoras listadas en el fichero
- <filename>/etc/printcap</filename>.</para>
-
- <variablelist>
- <varlistentry>
- <term><command>abort
- <replaceable>nombre-impresora</replaceable></command></term>
-
- <listitem>
- <para>Cancelar el trabajo actual y detener la impresora. Los usuarios
- podr&aacute;n aun enviar sus trabajos si la cola de pendientes esta
- habilitada.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>clean
- <replaceable>nombre-impresora</replaceable></command></term>
-
- <listitem>
- <para>Eliminar ficheros viejos del directorio de cola de
- impresi&oacute;n. Ocasionalmente, los ficheros que ya han sido
- impresos no son eliminados correctamente por
- <application>LPD</application>, particularmente si hubo errores durante
- la impresi&oacute;n o si se realizaron otros trabajos administrativos
- durante la misma. Este comando localiza ficheros que no pertenecen al
- directorio y los elimina.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>disable
- <replaceable>nombre-impresora</replaceable></command></term>
-
- <listitem>
- <para>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 (<username>root</username>)
- siempre podr&aacute; enviar trabajos, incluso cuando se use esta
- opci&oacute;n.</para>
-
- <para>Este es un comando &uacute;til cuando se esta probando una nueva
- impresora o instalando un filtro: deshabilitar la cola de pendientes y
- enviar los trabajos como <username>root</username>. Otros usuarios no
- podr&aacute;n enviar trabajos, hasta que la impresora haya sido
- configurada correctamente y se re-habilite la cola de pendientes, con
- el comando <command>enable</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>down <replaceable>nombre-impresora</replaceable>
- <replaceable>mensaje</replaceable></command></term>
-
- <listitem>
- <para>Usar el comando down para una impresora, equivale a usar el comando
- <command>disable</command> seguido del comando <command>stop</command>.
- El <replaceable>mensaje</replaceable> que se ingrese, aparecer&aacute;
- como el estatus de la impresora, cada vez que un usuario verifique su
- estatus con &man.lpq.1; o con <command>lpc status</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>enable
- <replaceable>nombre-impresora</replaceable></command></term>
-
- <listitem>
- <para>Habilitar la cola de pendientes. Los usuarios pueden enviar sus
- trabajos pero la impresora no imprimira nada hasta que se
- inicializada.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>help
- <replaceable>nombre-del-comando</replaceable></command></term>
-
- <listitem>
- <para>Mostrar la ayuda del comando
- <replaceable>nombre-del-comando</replaceable>. Si no se indica el
- <replaceable>nombre-del-comando</replaceable>, se muestra un resumen
- de los comandos disponibles.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>restart
- <replaceable>nombre-impresora</replaceable></command></term>
-
- <listitem>
- <para>ReIniciar la impresora. Los usuarios comunes pueden usar esta
- opci&oacute;n en caso de que por alguna raz&oacute;n
- <application>LPD</application> se paralice, pero no pueden iniciar una
- impresora detenida con algunos de los comandos <command>stop</command>
- o <command>down</command>. El comando <command>restart</command> es
- equivalente a ejecutar <command>abort</command> seguido del comando
- <command>start</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>start
- <replaceable>nombre-impresora</replaceable></command></term>
-
- <listitem>
- <para>Iniciar la impresora. La impresora comenzar&aacute; a imprimir
- los trabajos en la cola de pendientes.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>stop
- <replaceable>nombre-impresora</replaceable></command></term>
-
- <listitem>
- <para>Detiene la impresora. La impresora terminar&aacute; el trabajo
- actual y dejar&aacute; de imprimir. Aun cuando la impresora esta
- detenida, los usuarios pueden enviar sus trabajos a la cola de
- pendientes de la impresora.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>topq <replaceable>nombre-impresora</replaceable>
- <replaceable>trabajo-o-usuario</replaceable></command></term>
-
- <listitem>
- <para>Modificar el orden de la cola de pendientes de la impresora
- <replaceable>nombre-impresora</replaceable>, colocando los trabajos con
- el identificador <replaceable>trabajo</replaceable> o que pertenecen al
- usuario <replaceable>usuario</replaceable>, en primer lugar de la cola.
- Para este comando no puede hacer uso de la opci&oacute;n
- <literal>all</literal> en lugar de
- <replaceable>nombre-impresora</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>up
- <replaceable>nombre-impresora</replaceable></command></term>
-
- <listitem>
- <para>Usar el comando up en una impresora; es lo opuesto al comando
- <command>down</command>. Equivalente a <command>start</command>
- seguido del comando <command>enable</command>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>&man.lpc.8; acepta estos comandos desde la l&iacute;nea de comandos.
- Si no ingresa aglun comando, &man.lpc.8; entra en modo interactivo, donde
- puede ingresar los comandos hasta que teclee <command>exit</command>,
- <command>quit</command> o fin-del-archivo (EOF).</para>
- </sect2>
+ <para>Pendiente de traducci&oacute;n.</para>
</sect1>
-
+
<sect1 id="printing-lpd-alternatives">
- <title>Alternativas al Sistema de Impresi&oacute;n Est&aacute;ndar</title>
-
- <para>Si ha estado leyendo este manual desde el principio, para este momento
- usted ha aprendido practicamente todo lo que debe saber del sistema
- <application>LPD</application> que viene con FreeBSD. Y ha podido observar
- algunas de sus debilidades, lo que naturalmente nos lleva a la pregunta:
- <quote>&iquest;Qu&eacute; otros sistema de impresi&oacute;n existen (y que
- trabajen bajo FreeBSD)?</quote>.</para>
+ <title>Alternativas a LPD</title>
- <variablelist>
- <varlistentry>
- <term>LPRng</term>
+ <para>Pendiente de traducci&oacute;n</para>
- <indexterm><primary>LPRng</primary></indexterm>
- <listitem>
- <para><application>LPRng</application>, que presumiblemente significa
- <quote>LPR: the Next Generation</quote> (<quote>LPR: la Siguiente
- Generaci&oacute;n</quote>), es PLP completamente hecho de nuevo. Patrick Powell
- y Justin Mason (el encargado principal de PLP) colaboraron en crear
- <application>LPRng</application>. El principal sitio de
- <application>LPRng</application> es <ulink
- url="http://www.astart.com/lprng/LPRng.html">http://www.astart.com/lprng/LPRng.html</ulink>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
</sect1>
- <sect1 id="printing-troubleshooting">
- <title>Resoluci&oacute;n de Problemas</title>
-
- <para>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&oacute;n:</para>
-
- <variablelist>
- <varlistentry>
- <term>Trabajo, despu&eacute;s de un tiempo; o no expulso completamente
- la hoja.</term>
-
- <listitem>
- <para>La impresora llevo a cabo la impresi&oacute;n, pero espero bastante
- o bien finalmente no hizo nada. De hecho, es posible que haya sido
- necesario presionar en su impresora el bot&oacute;n para poner a la
- impresora EN LINEA o bien de ALIMENTACION DE PAGINA.</para>
-
- <para>Si este es el caso, su impresora esperaba a ver si exisitian
- m&aacute;s datos para imprimir, antes de comenzar con la
- impresi&oacute;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&eacute;n es recomendable verificar que cada
- trabajo enviado se haya impreso en una p&aacute;gina completa, de tal
- forma que el siguiente trabajo no comience en la mitad de la
- &uacute;ltima p&aacute;gina del trabajo previo.</para>
-
- <para>El siguiente ShellScript se puede utilizar como reemplazo de
- <filename>/usr/local/libexec/if-simple</filename>, para imprimir un
- caracter de alimentaci&oacute;n de p&aacute;gina:</para>
-
- <programlisting>#!/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 &amp;&amp; printf "\f" &amp;&amp; exit 0
-exit 2</programlisting>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Se produce un <quote>efecto de escalera.</quote></term>
-
- <listitem>
- <para>Usted obtiene la siguiente impresi&oacute;n:</para>
-
- <programlisting>!"#$%&amp;'()*+,-./01234
- "#$%&amp;'()*+,-./012345
- #$%&amp;'()*+,-./0123456</programlisting>
-
- <indexterm><primary>MS-DOS</primary></indexterm>
- <indexterm><primary>OS/2</primary></indexterm>
- <indexterm><primary>ASCII</primary></indexterm>
- <para>Usted es otra v&iacute;ctima del <emphasis>efecto de
- escalera</emphasis>, causada por el conflicto de interpretaci&oacute;n,
- sobre cual caracter indica la nueva l&iacute;nea. Los sistemas
- operativos estilo-Unix, usan un caracter sencillo: c&oacute;digo
- ASCII 10, alimentaci&oacute;n de l&iacute;nea (LF). MS-DOS, OS/2 y
- otros utilizan un par de caracteres, c&oacute;digo ASCII 10
- <emphasis>y</emphasis> c&oacute;digo ASCII 13 (retorno de carrete o
- CR). Muchas impresoras usan la forma de MS-DOS, para representar los
- saltos de l&iacute;neas.</para>
-
- <para>Cuando usted imprime con FreeBSD, su texto hace uso del caracter de
- nueva l&iacute;nea. La impresora, una vez que detecta el caracter de
- nueva l&iacute;nea, avanza el papel una l&iacute;nea, pero manteniendo
- la misma posici&oacute;n horizontal, para la impresi&oacute;n del
- siguiente caracter. Para eso es el caracter de retorno de carrete: para
- mover la posici&oacute;n horizontal al borde izquierdo del papel.</para>
-
- <para>Aqui tenemos lo que FreeBSD desea que haga su impresora:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <tbody>
- <row>
- <entry>Impresora recibe CR</entry>
- <entry>Impresora imprime CR</entry>
- </row>
-
- <row>
- <entry>Impresora recibe LF</entry>
- <entry>Impresora imprime CR + LF</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Aqui tenemos algunas formas de llevar esto a cabo:</para>
-
- <itemizedlist>
- <listitem>
- <para>Usar los botones de configuraci&oacute;n de la impresora o el
- panel de control, para modificar su interpretaci&oacute;n de estos
- caracteres. Verifique el manual de su impresora para ver como
- hacer esto.</para>
-
- <note>
- <para>Si cuenta con otro sistema operativo en su maquina, ademas de
- FreeBSD, quiz&aacute;s sea necesario
- <emphasis>reconfigurar</emphasis> la impresora, para usar la
- interpretaci&oacute;n de los caracteres de CR y LF del otro sistema
- operativo. Puede escoger una de las otras soluciones que se
- comentan m&aacute;s adelante.</para>
- </note>
- </listitem>
- <listitem>
- <para>Puede hacer que el controlador serial de FreeBSD,
- autom&aacute;ticamente convierta LF en CR+LF. Claro esta, que esta
- alternativa funciona <emphasis>solo</emphasis> en impresoras
- seriales. Para habilitar esta habilidad, establezca el bit
- <literal>CRMOD</literal>, en la caracter&iacute;stica
- <literal>fs</literal> del fichero <filename>/etc/printcap</filename>
- para la impresora.</para>
- </listitem>
-
- <listitem>
- <para>Envie un <emphasis>c&oacute;digo de escape</emphasis> a la
- impresora para que temporalmente de un tratamiento diferente a
- los caracteres LF. Consulte el manual de su impresora para ver
- los c&oacute;digos de escape soportados por su impresora. Una vez
- que localice el c&oacute;digo correcto, modifique su filtro de
- texto, para que se envie este c&oacute;digo primero y despu&eacute;s
- el trabajo a imprimir.</para>
-
- <indexterm><primary>PCL</primary></indexterm>
- <para>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&oacute;n; y por &uacute;ltimo envia un caracter de
- alimentaci&oacute;n de p&aacute;gina, para expulsar la &uacute;ltima
- p&aacute;gina del trabajo. Este filtro debiese funcionar con casi
- todas las impresoras Hewlett Packard.</para>
-
- <programlisting>#!/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&amp;k2G" &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp; exit 0
-exit 2</programlisting>
-
- <para>Aqui tenemos un ejemplo de <filename>/etc/printcap</filename>
- para un host llamado <hostid>orchid</hostid>. Solo cuenta con una
- impresora conectada al puerto paralelo, una Hewlett Packard LaserJet
- 3Si, llamada <literal>teak</literal>. Se esta usando el script
- anterior como filtro de texto:</para>
-
- <programlisting>#
-# 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:</programlisting>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Cada l&iacute;nea se sobreescribe.</term>
-
- <listitem>
- <para>La impresora no avanza ninguna l&iacute;nea. Todas las l&iacute;neas
- son impresas una sobre otra en un solo rengl&oacute;n.</para>
-
- <para>Este problema es lo <quote>opuesto</quote> al efecto de escalera,
- descrito anteriormente, y es poco com&uacute;n. En algun lugar, los
- caracteres de LF, que usa FreeBSD para indicar un salto de l&iacute;nea,
- la impresora los identifica como CR, de tal forma que regresa el punto
- de impresi&oacute;n al borde del papel, pero sin saltar al siguiente
- rengl&oacute;n.</para>
-
- <para>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:</para>
-
- <informaltable frame="none">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Impresora recibe</entry>
- <entry>Impresora imprime</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry>CR</entry>
- <entry>CR</entry>
- </row>
-
- <row>
- <entry>LF</entry>
- <entry>CR + LF</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Al imprimir se pierden caracteres.</term>
-
- <listitem>
- <para>Mientras imprime, algunos caracteres no son impresos en cada
- l&iacute;nea. El problema puede agravarse conforme se usa la
- impresora, perdiendo m&aacute;s y m&aacute;s caracteres.</para>
-
- <para>El problema es que la impresora no puede mantener el ritmo al cual
- la computadora envia los datos por medio de la l&iacute;nea serial
- (este problema no se debiese presentarse en impresoras conectadas al
- puerto paralelo). Existen dos formas de solucionar este problema:</para>
-
- <itemizedlist>
- <listitem>
- <para>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&iacute;stica <literal>fs</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Si la impresora cuenta con soporte para el control de flujo
- externo (carrier), especifique el bit <literal>MDMBUF</literal> en
- la caracter&iacute;stica <literal>fs</literal>. Asegurese de que
- el cable utilizado para conectar la impresora a la computadora cuenta
- con soporte para este tipo de control de flujo.</para>
- </listitem>
-
- <listitem>
- <para>Si la impresora no cuenta con soporte para el control de flujo,
- use una combinaci&oacute;n de los bits <literal>NLDELAY</literal>,
- <literal>TBDELAY</literal>, <literal>CRDELAY</literal>,
- <literal>VTDELAY</literal> y <literal>BSDELAY</literal> en la
- caracter&iacute;stica <literal>fs</literal>, para a&ntilde;adir el
- retraso apropiado en la cadena de informaci&oacute;n enviada a la
- impresora.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Solo imprime basura.</term>
-
- <listitem>
- <para>La impresora imprime lo que parece ser basura al azar, pero no el
- texto deseado.</para>
-
- <para>Esto normalmente es otro s&iacute;ntoma de una configuraci&oacute;n
- incorrecta en los par&aacute;metros de comunicaci&oacute;n de una
- impresora serial. Verifique el rango de bps en la caracter&iacute;stica
- <literal>br</literal> y la paridad de bits en <literal>fs</literal> y
- <literal>fc</literal>; asegurese de que la impresora use los mismos datos
- especificados en el fichero <filename>/etc/printcap</filename>.</para>
- </listitem>
- </varlistentry>
+ <sect1 id="printing-troubleshooting">
+ <title>Soluci&oacute;n de problemas</title>
- <varlistentry>
- <term>No sucede nada.</term>
+ <para>Pendiente de traducci&oacute;n</para>
- <listitem>
- <para>Si no sucede nada, probablemente el problema es con FreeBSD y no con
- su hardware. Incluya un fichero de registros (log), con la
- caracter&iacute;stica <literal>lf</literal>, en la entrada de su
- impresora en el fichero <filename>/etc/printcap</filename>. Por ejemplo,
- aqui esta la entrada de <literal>rattan</literal>, con la
- caracter&iacute;stica <literal>lf</literal> :</para>
+ </sect1>
- <programlisting>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</programlisting>
- <para>Posteriormente, intente imprimir de nuevo. Verifique el fichero de
- registros (en nuestro ejemplo, <filename>/var/log/rattan.log</filename>)
- para buscar cualquier mensaje de error que aparezca. Basado en ese
- mensaje trate de resolver el problema.</para>
- <para>Si no especifica la caracter&iacute;stica <literal>lf</literal>,
- entonces <application>LPD</application> utilizar&aacute;
- <filename>/dev/console</filename> como la salida por default.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
</chapter>
<!--