La culpa fue del spectrum

La culpa fue del spectrum

lunes, 28 de marzo de 2011

Convertir Listados AS400 a PDF

Hay muchas formas de convertir un listado de AS400 pdf, todos pasan por crear impresoras o colas virtuales donde todo lo que mandemos se convertirá a pdf.

Para la gente bien, los que tienen máquinas modernas y euros para comprar productos esta claro que lo mejor es el infoprint server de la propia IBM, este permite muchas posibilidades no solo convierte a pdf sino que te lo manda por correo electrónico, te lo deja en recurso del ifs, etc...

Para los pobres, los que tenemos máquinas antiguas y que solo tendremos acceso al infoprint server cuando sea gratis (no se si en la actualidad ya lo es) hay otras alternativas más o menos elegantes que yo he tenido el gusto o la necesidad de probar.

Una es configurar una sesión de impresora con Client Access y redirigirla a una impresora virtual creada con pdfcreator en windows. Esto requiere de paciencia para que los listados queden bien según sean de un tamaño u otro, hay que realizar unas cuantas pruebas, si además te encuentras listados muy, muy raros como es el caso de la empresa donde estoy puede llegar a desquiciarte. Como ventaja tenemos que pdfcreator tiene bastantes opciones y permite fusionar documentos pdf cosa que es muy útil para algunos usuarios. Además pdfcreator es software libre con lo cual costo 0.

Como curiosidad encontré también un software que se llama PDFing que instalado en un pc permite crear una cola remota que convierta en pdf todo lo que envíes a ella. Aparentemente funciona bastante bien, pero la versión completa hay que pagarla y además no es software libre con lo cual no sabemos si hace algo más.

Mi opción favorita es la de instalar en un linux el tn5250 y utilizar la configuración de impresora para generar una impresora virtual que convierta a pdf. Esto lo rediriges a una carpeta en el propio linux o un recurso compartido que tengas montado en él y ya la tienes. Funciona bastante bien, aunque en mis pruebas hay algunos listados que bloqueaban la impresora y tenía que volver a arrancarla. No se si es normal o bien por el tipo de listado ya que en listados "normales" realizados con prtf nunca me da el problema. El único inconveniente que le encuentro es que a mucha gente linux todavía le causa respeto y no se atreven con él.

Para instalarlo la cosa es sencilla, casi todas las distribuciones medianamente serias lo llevan como paquete, yo que para estas cosas uso debian, simplemente ejecuto como root
aptitude install tn5250
Después creamos una carpeta donde queramos guardar los pdf que generemos
mkdir /home/pdf
Esta carpeta será la que luego compartiremos para que toda la red pueda ver los pdfs.
Ahora editamos .tn5250rc en la carpeta del usuario que lo queremos usar (yo como editor uso nano que es muy simple y sencillo)
nano .tn5250rc
Dentro escribimos lo siguiente

host=ip AS400
map=284
env.DEVNAME=nombre dispositivo impresora
outputcommand=scs2pdf>/home/pdf/pdf400-$$.pdf

La última línea el $ lo sustituirá por el número de trabajo de linux (si no recuerdo mal) quedando que todos los archivos se llamarán pdf400-número aleatorio. pdf.

Para arrancarlo desde una línea de comandos escribimos
lp5250d
Esto arrancará la impresora en nuestro AS400.

Si se utiliza en un servidor linux, y este esta programado para que se reinicie periódicamente o bien el que se reinicia es el AS400 (la verdad es que ninguno de los dos lo necesita), para esos casos siempre podemos programar una tarea que ejecute el comando utilizando cron. Pero esto ya es otra historia.




2 comentarios:

  1. No conocía esta funcionalida y la estoy probando, gracias por los datos.
    Cuando envío un archivo a la impresora emulada por este medio, esta se caee y no genera el documento, no tengo log de error o similar, alguna vez le paso?

    ResponderEliminar
  2. A mi esto me ocurre cuando envío listados con preformatos, cosa que este tipo de emulación no soporta, el resto los imprime correctamente. Prueba por ejemplo con una impresión de pantalla o algo muy simple para ver que te ocurre.

    Un saludo.

    ResponderEliminar

Conduce entre la niebla

La culpa fue del spectrum