# Las opciones de &CUPS; presentes y no disponibles a través de &kcontrol;

Este capítulo le ofrece algunas sugerencias sobre opciones de configuración que pueden no estar disponibles en &kdeprint; desde el interfaz gráfico para &CUPS;.

## Resumen de la prestaciones ofrecidas

Casi todas las propiedades y funciones más usadas proporcionadas por &CUPS; están soportadas en &kdeprint;.

- La administración de impresión está soportada: añadir, eliminar, modificar, configurar, probar desactivar, activar...

- La administración de trabajos está soportada: cancelar, mantener, soltar, mover a una impresora diferente.

- Opciones de impresión: para un control total tal y como se proporciona en &CUPS;.

## Dónde encontrar ayuda para utilizar &CUPS;

Mucha información sobre el funcionamiento interno de &CUPS; está disponible a través del interfaz web, que siempre soportará &CUPS;. Funciona con cualquier navegador (sí, incluso con los de sólo texto). Simplemente vaya a http://localhost:631/ para iniciar. Allí encontrará un enlace a la documentación disponible de &CUPS; en formato HTML y PDF si usted es nuevo en &CUPS;.

&CUPS; es accesible a través de otros medios diferentes de &kdeprint;: la línea de órdenes y el navegador son dos interfaces nativos de &CUPS;. Las muchas utilidades de la línea de órdenes agrupadas consiguen el mayor control posible sobre &CUPS;. El interfaz web es sólo un subconjunto de todas las opciones de configuración o control disponibles.

Esto también es cierto para &kdeprint;. Generalmente, con el desarrollo de &CUPS; las nuevas propiedades se implementarán primero a través de la línea de órdenes. Asegúrese de comprobar las últimas versiones de las páginas de man para &CUPS; para mantenerse actualizado con las nuevas propiedades después de instalar una nueva versión.

Dependiendo de su método de actualización para &CUPS;, su archivo de configuración activo podría no ser reemplazado por uno nuevo, de modo que su nuevo y más potente demonio de &CUPS; podría no conocer las nuevas propiedades porque está leyendo el antiguo archivo de configuración.

Una lista completa de los archivos y páginas de manual disponibles debería venir con el manual del administrador de software de &CUPS; (http://localhost:631/sam.html#FILES). En el campo de &URL;/dirección de &konqueror; introduzca `man:/lpadmin` y `man:/cupsd.conf` para encontrar información acerca de las órdenes más importantes y del archivo de configuracón. Como seguramente sepa, &konqueror; puede mostrar páginas de manual de &UNIX;. Desde allí podrá encontrar sugerencias más interesantes y enlaces a otra páginas de manual y de documentación.

### Cómo encontrar páginas de man relacionadas con &CUPS;

Aquí hay un medio de encontrar qué páginas de man relacionadas con &CUPS; existen en su sistema:

    kurt@transmeta:~
    > apropos cups

    cups-calibrate (8)- Herramienta de calibración de impresoras ESP
    lpstat (1)        - Información de el estado de impresión cups
    cups-lpd (8)      - recibir trabajos de impresión + informar del estado de la impresora a clientes  lpd
    classes.conf (5)  - archivo de configuración de clases para cups
    backend (1)       - interfaces de transmisión de terminales de cups
    filter (1)        - interfaces de filtros de conversión de archivos
    cups-polld (8)    - demonio de muestreo de impresora de cups
    mime.types (5)    - archivo de descripción de tipos mime para cups
    cupsd (8)         - demonio de sistema de impresión común de unix
    lpadmin (8)       - configurar impresoras cups y clases
    cupsd.conf (5)    - archivo de configuración de servidor para cups
    mime.convs (5)    - archivo de conversión de tipos mime para cups
    printers.conf (5) - archivo de configuración de impresora para cups
    mime.convs (5)    - archivo de conversión de tipos mime para cups
    cups-polld (8)    - demonio de monitorización de impresora de cups
    lpstat (1)        - información de estado de impresión cups
    backend (1)       - interfaces de transmisión de terminal de cups
    mime.types (5)    - archivo de descripción de tipos mime para cups
    cupsd (8)         - demonio de sistema de impresión común de unix
    lpadmin (8)       - configurar impresoras cups y clases
    printers.conf (5) - archivo de configuración de impresora para cups
    cupsd.conf (5)    - archivo de configuración de servidor para cups
    filter (1)        - interfaces de filtros de conversión de archivos

## Fuera de &kdeprint;: Sugerencias, consejos y trucos con &CUPS; en la línea de órdenes

Aquí tiene una serie de ejemplos de opciones que sólo están disponibles si utiliza la línea de órdenes.

### Permitiendo o denegando acceso a ciertos usuarios

Al instalar (o modificar) una impresora a través de la línea de órdenes, puede denegar o permitir el uso de esa impresora para ciertos usuarios:

    lpadmin -pHeidelbergDigimaster9110 -v lpd:/10.160.16.99/mqueue -u allow:kurt,sylvi,hansjoerg -E -P /home/kurt/PPDs/DVHV.ppd

Permitirá el uso de esta impresora (créame: muy estético y muy profesional) sólo para los tres usuarios mencionados y al mismo tiempo denegárselo al resto. Si otro usuario quiere imprimir en el DigiMaster a través del servidor &CUPS;, recibirá un mensaje de error junto con las líneas client-error-not-possible.

    lpadmin -p HeidelbergDigimaster9110 -v lpd:/10.160.16.99/mqueue -u deny:tackat,boss,waba -E -P /home/kurt/PPDs/DVHV.ppd

denegará el uso de esta misma impresora a los tres usuarios mencionados y al mismo tiempo permitirá el uso a los otros. Si el usuario «denegado» desea imprimir en el DigiMaster a través de este servidor &CUPS;, recibirá un mensaje de error junto con las líneas client-error-not-possible.

Sólo se puede utilizar una de las dos opciones, en este momento no hay soporte para disponer de una opción similar basada en grupos. Se implementará en el futuro.

### Poniendo cuotas para ciertas impresoras

Algunas veces desea poner cuotas a ciertas impresoras. Con cuotas puede establecer límites superiores para el número de páginas o la cantidad de datos a ser impresos durante un cierto periodo para una impresora.

Las cuotas se pueden establecer con la opción `-o`, al instalar una impresora con la orden `lpadmin`, o después para una impresora ya existente. A continuación hay varias guías (que faltan en el momento de escribir en la documentación oficial de &CUPS;):

- Con &CUPS; puede tener cuotas basadas en el número de páginas -y en el tamaño de los archivos- para cada impresora de forma individual.

- Las cuotas se calculan para cada usuario individualmente (de modo que un conjunto de límites se aplica a todos los usuarios para la impresora en cuestión).

- Las cuotas incluyen páginas de anuncios (si se utilizaran).

- Ésto significa que usted puede limitar cada usuario a 20 páginas por día en una impresora cara, pero no puede limitar todos los usuarios excepto Pedro o root.

- Las opciones `job-k-limit`, `job-page-limit` y `job-quota-period` se pueden introducir al configurar una impresora.

- `job-quota-period` establece un intervalo de tiempo para cáculo de cuotas (los intervalos se determinan en segundos, de modo que un día es 60x60x24=86.400, una semana 60x60x24x7=604,800 y un mes 60x60x24x30=2.592.000 segundos).

- Para forzar cuotas, el periodo de tiempo más al menos un job-limit debe ser diferente de cero.

- El valor predeterminado de 0 para `job-k-limit` especifica que no existe límite.

- El valor predeterminado de 0 para `job-page-limit` especifica que no existe límite.

- El valor predeterminado de 0 para `job-quota-period` especifica que el límite se aplica a todos los trabajos que se han impreso por un usuario que es todavía conocido por el sistema.

#### Ejemplos de funcionamiento:

Se definen ejemplos que funcionan con límites de periodo de tiempo y uno o dos límites de trabajos de impresión.

    lpadmin -p danka_infotec_4850 -o job-quota-period=604800 -o job-k-limit=1024

Configura un límite de 1 MB (en total) para cada usuario de la impresora ya existente, danka_infotec_4850, durante una semana.

    lpadmin p danka_infotec_4105 -o job-quota-period=604800 -o job-page-limit=100

Configura un límite de 100 páginas (en total) para cada usuario de la impresora, ya existente, danka_infotec_4105 durante una semana.

    lpadmin -p danka_infotec_P450 -o job-quota-period=604800 -o job-k-limit=1024 -o job-page-limit=100

Configura un límite combinado de 1 MB (en total) y 100 páginas (en total) para cada usuario de la impresora, ya existente, danka_infotec_P450 durante una semana. El primer límite que se alcance será el que surta efecto.

#### Ejemplos que no funcionan

NO funcionan, como sólo un periodo de tiempo o límite de trabajo definido.

    lpadmin -p danka_infotec_P320 -o job-quota-period=604800

    lpadmin -p danka_infotec_FullColor -o job-page-limit=100

    lpadmin -p danka_infotec_HiSpeed -o job-k-limit=1024

#### Mensajes de error relacionados

Cuando un usuario alcanza su límite de cuota, recibirá un mensaje client-error-not-possible, si desea imprimir.

### Instalando una impresora en «bruto»

Hay varios modos diferentes de definir una impresora «en bruto». Una cómoda es utilizar la orden `lpadmin`. Simplemente no defina un archivo &PPD; para usar con dicha impresora y será una impresora en bruto:

    lpadmin -p Raw_Danka_infotec -E -v lpd://10.160.16.137/PORT1

Las impresoras en bruto son aquellas que no modifican el archivo de impresión para transformalo en un formato diferente. Necesita esto por ejemplo al imprimir desde clientes &Windows; a través de Samba usando un servidor &CUPS; para una impresora PCL: en ese caso el controlador de impresora de &Windows; generaría el formato final de la impresora para la impresora de destino y filtrarlo utilizando los filtros de &CUPS; sólo estropearía el archivo. Bajo ciertas circunstancias (si desea asegurarse de que el archivo llega a la impresora «sin ser filtrado» por &CUPS;) «`lpadmin` sin un &PPD;» es práctico.

## Solucionando problemas de &CUPS; en &kdeprint;

Esta sección del manual de &kdeprint; depende de los comentarios de los lectores. Aquí se ofrece un pequeño comienzo.

### Mensajes de error

¿Qué significa el error client-error-bad-request?

El usuario envió un archivo a &CUPS; que el servidor no pudo procesar. Este mensaje también se obtiene enviando un archivo «vacío».

¿Y client-error-not-possible?

No se permite al usuario imprimir sobre cierta impresora o alcanzado su límite de cuota (basada en el tamaño del archivo y/o número de páginas).

¿Y qué significa client-error-not-found?

El usuario está intentando acceder a un recurso inexistente en el servidor &CUPS;, tal como intentar imprimir un archivo inexistente, o para el no tiene permiso de lectura.

### Preguntas y respuestas

¿Cómo puedo reiniciar mis trabajos?

Para poder reiniciar sus trabajos «completados» desde el interfaz de la web, necesita una opción en el archivo `/etc/cups/cupsd.conf`: configúrelo como `PreserveJobFiles True`.

¿Cómo me deshago de la larga lista de trabajos completados en el interfaz web?

A completar.

¿Cómo funciona el recuento de las páginas?

&CUPS; realiza la «contabilización de la impresión» pasando casi todos los trabajos a través del filtro «pstops». Este filtro, entre otros, cuenta las páginas. La salida de este filtro se puede inyectar en otros filtros (como pstoraster --> rastertopcl) o enviarlo a la impresora directamente (si fuera una impresora &PostScript;).

En cualquier caso, este funciona igual para impresoras en red, en el puerto paralelo, serie o USB. Para que pstops funcione, necesita DSC, &PostScript; (o casi equivalente) conforme a Document Structuring Convention (Convención estructurada de documentos) como entrada. De modo que calcula las páginas durante el filtrado al servidor de impresión y escribe información acerca de cada página (hora, usuario, ID del trabajo y nombre, impresora, número de páginas del documento, tamaño en kB), en `/var/log/cups/page_log`.

Por cierto, en mi «lista de deseos» personal hay un arreglo para que «webalizer» lea y analice el registro de páginas y genere una salida similar. ¿alguien se anima?

Sin embargo, no da resultados correctos en los siguientes casos:

- La impresora se atasca y quiza expulsa el trabajo (experiencia real, o quizá expulsa el trabajo debido a problemas con el formato de los datos).

- Los trabajos imprimidos en «bruto» siempre se cuentan como si su tamaño fuera de 1 página (y quizá múltiples copias).

Por tanto el recuento en &CUPS; «sólo» es aproximada (en muchos casos excelente, o buena y en otros pobre). El única recuento fiable es la que hace internamente la impresora (porque es la única por la que usted paga). Algunas, pero pocas, impresoras ofrecen dicha información utilizando SNMP (Simple Network Management Protocol). Esto significa, en una red mayor con muchas impresoras diferentes, que no hay una herramienta fiable y exacta de contar páginas.

¿Por qué no funciona el recuento de páginas con clientes de &Windows;?

Desde los cliente de &Windows; los trabajos se deben enviar en la mayor parte de los casos «en bruto». ¿Por qué? Si &CUPS; funciona como servidor de impresión para clientes de &Windows; utilizando el controlador nativo de &Windows; para el dispositivo de destino se garantiza el formato correcto del trabajo en los clientes, por tanto, el servidor no debe modificarlo e imprimir «en bruto» y el filtrado no se inicia (esto no es posible ya que la entrada desde los clientes no es &PostScript; como espera pstops y por ello sólo se cuenta «1» página.

¿Cómo obtengo una lista de las opciones disponibles para una impresora o un archivo &PPD;?

Consulte la página de man de la orden `lpoptions`. Puede investigar en una casilla de activación de &CUPS; acerca de cualquier opción de las impresoras disponibles. No es necesario que la impresora esté instalada localmente. Mientras la impresora está disponible localmente (a través de la propiedad de &CUPS; «navegación de impresoras»), también funcionará en remoto.

Para solicitar una opción de impresora introduzca ``lpoptions` `-p` `HitachiDDP70MicroPress` `-l`` le ofrecerá un largo listado de las opciones disponibles tal y como se obtienen de un archivo &PPD; para una impresora Hitachi-Printer (en mi caso instalado en el servidor remoto transmeta). El servidor remoto Transmeta y el demonio &CUPS; así como el demonio del servidor local de &CUPS; necesitan estar funcionando para que esto tenga éxito.

¿Cómo leo el listado recuperado por la orden `lpoptions`?

Usted sabe que para los fabricantes de impresoras &PostScript; es «legal» definir sus propios nombres y procedimientos internos incluso para opciones estándar de &PostScript;. Mientras el controlador sea capaz de recuperar la opción de &PPD; y mostrarla al usuario en un modo comprensible es aceptable. Pero ¿qué hacer si usted desea usar alguna opción oscura de impresora en la línea de órdenes? ¿Cómo encontrar la sintáxis exacta?

Usemos un ejemplo. Echemos un vistazo a la impresora Hitachi's DDP70 y veámos cómo implementa la impresión duplex, es revelador. ¿Cómo le puede indicar que imprima en doble cara? ¿duplex o Duplex? ¿O quizá otro nombre?

    lpoptions -h transmeta -p Hitachi_DDP70_ClusterPrintingSystem -l | grep uplex

Ésto genera la siguiente salida:

    TR-Duplex/Duplex: False *True

Que se debe interpretar como sigue:

- El nombre de la opción investigada es `TR-Duplex`.

- Junto al guión usted puede ver la traducción de la opción, como debería ser mostrada en un interfaz gráfico o web («Duplex»).

- La opción puede tomar uno de dos valores `Falso` o `Verdadero`.

- La opción actual es `Verdadero` como se puede reconocer por el `*`.

Para evitar la opción actual predefinida (duplex) e imprimir el trabajo en una sóla cara necesita utilizar la siguiente orden:

    lpr -P Hitachi_DDP70_ClusterPrintingSystem -o TR-Duplex=False /ruta/a/su/documento

¿Cómo obtengo una lista formateada de las opciones disponibles para una cierta impresora o &PPD;?

Utilice la orden `lphelp` que se puede instalar localmente en su sistema. Todavía no existe una página man para `lphelp`.

    lphelp infotecP450

Ésto producirá una lista de las opciones disponibles para la impresora en cuestión. La lista se muestra en un formato agradable de leer y explica todas las opciones disponibles. Puede solicitar las diferentes opciones de las impresoras de una sola vez:

    lphelp infotec7410color DANKA_fullcolor_D2000 HP_ColorLaserJet8550

También funciona con archivos &PPD;. Simplemente especifique la ruta al &PPD;:

    lphelp /home/kurt/PPDs/HP-ColorLaserJet8550.ppd

### Solucionando problemas

Ningún sistema es perfecto. Aquí hay varios problemas en los que la gente cae frecuentemene.

Mi impresora, denominada «3-lp-duplex» muestra un comportamiento errático ¿Por qué?

Los nombres de impresora en &CUPS; deberían comenzar por una letra y pueden contener 128 caracteres, números o guiones bajos. El uso de guiones puede producir problemas. A propósito de los nombres: los nombres de las impresoras en &CUPS; no distinguen mayúsculas de minúsculas. De modo que una impresora llamada Lo_mejor_de_Danka será igual que lo_mejor_de_danka o LO_MEJOR_DE_DANKA (este es un requisito de &IPP; que &CUPS; cumple totalmente).

¿Por qué obtengo Unable to connect to SAMBA host: Success con mi impresora compartida desde &Windows; a la que se accede a través de Samba?

¿Son correctos los privilegios en la máquina remota &Windows;? ¿Se le permite imprimir en la impresora compartida de &Windows;?

Los archivos que envio a la impresora lp algunas veces desaparecen misteriosamente y dos días después me dice que se imprimieron en una impresora tres pisos por encima de mi oficina ¿Qué ocurrió?

Créame, es bastante improbable que su impresora sea la única con el nombre lp. Puede que &CUPS; le esté jugando una mala pasada. Como puede que usted tenga activada la opción «ImplicitClasses On», &CUPS; intenta enviarlo a todas las impresoras de la red cuya «Clase» sea lp. Todos los trabajos destinados lp se envian a esta clase y el primer miembro disponible lo imprime. ¿Qué le parece si deja que ese agradable compañero (que escuchó con atención cuando usted despotricaba de &CUPS; y &kdeprint;) le instale &CUPS; y le deje configurar el sistema?

Siga mi consejo: elija un nombre único de impresora para cualquier impresora de red. (recuerde que incluso la impresora en su puerto paralelo puede ser una impresora de red accesible a todo el mundo si no es cuidadoso con sus opciones de configuración).