LPRng

De Astillas.net

Enlaces y referencias

Instalación

Para el proceso de instalación en una máquina funcionando con una distribución Linux muy antigua he tenido que descargar, configurar, compilar, instalar y poner en marcha los siguientes componentes software:

Recetario

Borrado de trabajos de impresión

Para borrar los trabajos de impresión de una cola se emplea el siguiente comando:

$ lprm [-P impresora|-a] [NNN|all]

donde:

  • -P impresora selecciona la cola de impresión de la cual queremos borrar trabajos.
  • -a selecciona todas las colas de impresión del sistema.
  • NNN número de trabajo de impresión a cancelar.
  • all indica todos los trabajos de impresión.

Naturalmente sólo se cancelan aquellos trabajos a los que tiene acceso de borrado el usuario que ejecuta la orden. Emplear al superusuario con los parámetros lprm -a all es una buena forma de purgar todo el sistema de impresión.

Verificación de printcap

El archivo /etc/printcap es donde se definen las impresoras del sistema. Una vez actualizado su contenido conviene revisarlo y llevar a cabo los cambios en los archivos que emplea el servidor. Para ello se emplea el programa checkpc desde la cuenta del administrador con el parámetro -f aunque utilizar -V también ayuda a entender qué ve en las definiciones y qué cambios hace en el sistema de archivos:

# checkpc -f -V 
LPRng-3.8.35, Copyright 1988-2003 Patrick Powell, <papowell@lprng.com>
Checking for configuration files '/etc/lpd/lpd.conf'
  found '/etc/lpd/lpd.conf', mod 0100644
Checking for printcap files '/etc/printcap'
Checking for lpd only printcap files '/etc/lpd/lpd_printcap'
 DaemonUID 2, DaemonGID 2
Using Config file '/etc/lpd/lpd.conf'
LPD lockfile '/var/run/lpd.515'

.names
 :.common=.common
 :canon=im0
 :factura-pdf=factura-pdf
 :im0=im0
...
Checking printcap info
Checking printer 'im0'
 Checking directory: '/var/spool/lpd/im0'
   directory '/'
   directory '//var'
   directory '//var/spool'
   directory '//var/spool/lpd'
   directory '//var/spool/lpd/im0'
  checking 'control.pr' file
  checking 'status.pr' file
  checking 'status' file
  checking 'log' file
  checking 'acct' file
  'filter' filter '/etc/magicfilter/adriano'
    executable '/etc/magicfilter/adriano'
Checking printer 'im0-raw'
 Checking directory: '/var/spool/lpd/im0-raw'
...
# 

Opciones de impresión

Estas son algunas de las opciones de impresión de trabajos que me han resultado útiles:

Paraḿetro/opción Descripción
-P printer Cola de impresión a la que enviar el trabajo
-J jobtitle Título del trabajo muy útil para la impresora virtual PDF.
-Kcopies|-#copies Número de copias del trabajo. Esto no siempre funciona porque depende mucho de que el sistema de impresión remoto lo acepte.

Filtros

Los filtros de impresión se encargan de:

  1. Convertir los trabajos de impresión a un formato compatible con la impresora
  2. Transferir el trabajo a la impresora
  3. Monitorizar el proceso en busca de problemas

En el archivo /etc/printcap el filtro se declara con la directiva filter o con las antiguas directivas de sistemas BSD asociadas al formato del trabajo de impresión. Este formato se asigna a cada trabajo nuevo y se representa con una letra minúscula que puede emplearse para seleccionar el filtro con más precisión.

Códigos de salida

Los filtros comunican su éxito o su fracaso al servidor de impresión a través del código de salida del proceso.

Clave Valor numérico de salida Significado
JSUCC 0 Trabajo filtrado con éxito
JFAIL 1, 32 Fallo en el proceso - reintentar más tarde
JABORT 2, 33 Abortar proceso y terminar el proceso de la cola.
JREMOVE 3, 34 Trabajo fallido, eliminarlo
4, 35 (Sin uso)
5, 36 (Sin uso)
JHOLD 6, 37 Conservar el trabajo y reimprimir más tarde
JNOSPOOL 7, 38 No encolar este trabajo aquí
JNOPRINT 8, 39 No imprimir desde esta cola
JSIGNAL 9, 40 Filtro terminado por una señal del sistema no reconocida.
JFAILNORETRY 10, 41 Trabajo fallido: no reintentar

Cualquier otro valor de salida debe ser tratado como JABORT.