Impresión desde aplicaciones Java con CUPS

Las JVM tienen un bug reportado y solucionado hace poco que afectan a las versiones tanto de java 5 (fixeado en update 12), como java 6 (hasta el update 1). Curiosamente en los repositorios de ubuntu tenemos las versiones justo anteriores a éstas, por lo tanto existe el bug. Este bug consiste en que es imposible imprimir desde aplicaciones Java a impresoras que usen CUPS. Todas tus impresoras te saldrán como “Not accepting jobs” (No se aceptan trabajos). Vaya putada, ¿no?.
 
¿La solución? Muy simple, puedes optar por descargar la última versión de Java de la web de Sun, o usar esta simple solución:

  • Crear enlace simbólico, en ubuntu no existe, en otras distros puede que tampoco

    $ sudo ln -s /usr/lib/libcups.so.2 /usr/lib/libcups.so

  • declarar CUPS_SERVER como localhost

Es decir, si queremos ejecutar una supuesta aplicación Java llamada, por ejemplo, AlAtunTunTun, desde la cual queremos imprimirnos El Quijote, hacemos algo tal que así para iniciarla:

$ export CUPS_SERVER=localhost
$ /ruta/alProgramita/AlAtunTunTun

Y problema resuelto :).

6 Thoughts on “Impresión desde aplicaciones Java con CUPS

  1. muy bueno el post, de las soluciones que planteas para resolver el problema me incline por la segunda, ahora ya logro que mi impresora acepte trabajos, pero sigo sin poder imprimir; cuando en la consola escribo:
    $lpc status
    DeskJet3740:
    la impresora está conectada a ‘usb’ velocidad -1
    la cola está activada
    la impresión está activada
    1 entradas –> me indica que si me envio el archivo que quiero imprimir desde java
    demonio presente

    pero solo envia los archivos a la cola de impresion pero no imprime, no se a que se debe.

    Dejo alguna informacion para facilitar la ayuda:

    Al imprimir un documento con el openoffice write no tengo problemas

    Distros usada : Ubuntu 6.06

    Java Version: java version “1.6.0”
    Java(TM) SE Runtime Environment (build 1.6.0-b105)
    Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)

    Si necesita mas informacion se la hare llegar.

    Disculpe por la molestia y gracias de antemano por la respuesta.

  2. Seguro que la impresora no está “pausada”? Mira los archivos dentro del directorio /var/log/cups/ quizás haya más información

  3. gracias por la respuesta, respecto al estado de la impresora queda descartado que esta pausada, porque lo he vuelto a comprobar y está activa. Mire los archivos que se encuentran en el directorio /var/log/cups (específicamente el archivo error_log) tal como me dijo y he notado estas líneas sospechosas que no sé interpretarlas, las cuales se las apunto a continuacion:
    ———————————————————————————————————————-
    E [14/Nov/2007:09:42:41 -0500] [Job 30] No %%BoundingBox: comment in header!
    E [14/Nov/2007:09:42:41 -0500] [Job 30] No %%Pages: comment in header!
    E [14/Nov/2007:09:42:43 -0500] [Job 30] /configurationerror in –setpagedevice–
    E [14/Nov/2007:09:42:43 -0500] PID 7898 (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!
    ———————————————————————————————————————–
    Despues escribi en consola:
    $lpq -a
    Rango Propiet. Trabajo Archivo(s) Tamaño total
    1st freeman 30 Java Printing 3072 bytes

    esas lineas de error que se encuentran en el archivo /var/log/cups/error_log
    se crean cada vez que intento imprimir con mi aplicacion java.

    Espero antentamente su respuesta.

  4. juvayda on 21 May, 2008 at 19:46 said:

    hey yi tengo el mismo problema pero en debian que libreria debo usar o como soluciono el problema.

  5. dave on 6 August, 2008 at 13:27 said:

    hey bueno espero sea de ayuda, yo tengo ubuntu hardy y tenia el problema con mis aplicaciones java, la solucion para q pudiera imprimir, es bastante sencilla, solo tuve que ir a sistema->administracion->impresoras y en orientacion hay que quitar aquello de automatico y darle una orientacion p.e. vertical y bingo todo me funciono correctamente..

    Ojala sea util

Post Navigation