PDFCreator una buena altenativa

PDFCreator_01Estaba inmerso en otro de aquellos imposibles proyectos… en el que necesitaba urgentemente un sistema para crear ficheros PDF de una forma automática, pudiendo definir previamente la ruta y el nombre de dicho fichero.

Si alguien ha trabajado con Adobe Acrobat, la creación de PDFs se hace muy cómoda con su propia impresora virtual. Y la verdad, a mi este sistema me ha sacado de algún que otro apuro, librándome de tener que reprogramar y reformatear interminables informes.

Pero dicha impresora tiene un fallo, o mas bien una incomodidad, al enviar la impresión se abre un cuadro de dialogo solicitando la ruta y el nombre del fichero PDF a crear. Algo que impide crear aplicaciones totalmente autónomas.

Pues bien, buscando por la web, y softonic (http://www.softonic.com), me tope con PDFCreator, de pdfforge (http://www.pdfforge.org), una aplicación gratuita (GPL).

Esta aplicación permite crear PDF, entre otra infinidad de formatos, de una formar rápida y cómoda mediante un impresora de windows virtual, de igual manera que lo hace Adobe Acrobat.

Una vez instalada la aplicación, tendremos como una impresora mas de Windows nuestra nueva PDFCreator y en el escritorio un acceso directo que nos llevara al “Monitor de impresión PDF”.

A través de este monitor de impresión accedemos a las opciones (Ctrl-O).

Me centrare en la sección “Autoguardado” que es lo que me interesa explicar…

PDFCreator_02

Con solo activar esta opción cada vez que mandemos imprimir a través de la impresora PDFCreator se nos creara un fichero en el formato, la ruta y el nombre definidos previamente en las opciones.

Pero todo no podía ser perfecto (“I never promise you a roses garden”)… el autoguardado funciona muy bien, evitamos la apertura del cuadro de dialogo,… pero los ficheros siempre se crearan en el mismo formato, directorio y nombre.

Y claro… (ahora vengo yo… y lo complico) yo necesito crear el PDF con un nombre y una ruta determinada pero que seguramente nunca se repite.

Por tanto, recurriendo al oscuro registro del Windows. Allí nos encontramos con la clave de la solución:

[HKEY_CURRENT_USER\Software\PDFCreator\Program]
"AutosaveDirectory"="C:\\Users\\"
"AutosaveFilename"="Mi_Fichero_PDF"
"AutosaveFormat"="0"
"UseAutosave"="1"

En dicha clave del registro encontramos muchas mas subclaves pero para el fin que busco con estas cuatro son suficientes.

Como se puede ver son todas claves de tipo REG_SZ o Texto:

AutosaveDirectory:

En ella anotaremos el path que vamos a utilizar para el auto guardado.

AutosaveFilename:

Aquí el nombre del fichero que deseamos crear, si nos lo curramos un poco incluso podemos utilizar variables o elementos predefinidos propios de la aplicación. Aunque si lo vas usar a través de otra aplicación seguramente no te hará falta.

AutosaveFormat:

Formato del fichero de salida, el 0 corresponde con PDF.

Moviéndonos en el combo de las “Opciones” y revisando esta clave podemos sacar los demás formatos. Muy recomendable tenerlo en la manga porque tiene multitud de formatos de salida, JPEG, BMP, TIFF, etc…

UseAutosave:

La subclave de todo, con 1 y 0, activamos o desactivamos el autoguardado.

Anuncios

Acerca de Robert Ale
Soy yo un simple tipo que quiere estar en la red... aunque no se si lo conseguiré algún día...

7 Responses to PDFCreator una buena altenativa

  1. Pingback: PDFCreator-una-buena-altenativa : Sysmaya

  2. rodrigo says:

    como hago para que despues de generarse y guardarse el pdf en el directorio que le especico, que se abra el documento guardado
    estoy usandopdfcreator desde fox
    gracias

    • robertale says:

      Ok, a ver que te parece esto:

      Podemos hacerlo manualmente, desde las propiedades del PDFCreator:
      -> PDFCreator
      – Opciones
      – Auto-guardado
      – Activar “Usar auto-guardado”
      – Activar “Después de autoguardar abrir el documento con el programa predeterminado”

      O modificando el registro del windows:
      Solo debemos modificar la clave “AutosaveStartStandardProgram”, dandole valor 0 o 1, si “NO” o si “SI” queremos que se habra el ficheros.
      Modificando esta clave estaremos activando o desactivando el checkbox “Después de autoguardar abrir el documento con el programa predeterminado”

      Saludos y gracias por particiar”
      Robert

  3. Santiago Fernández Celorrio says:

    Estoy haciendo uso de las claves de registro que comentas para el autosave, el AutoSaveFileName y AutoSaveDirectory desde visual 6 modificando el registro mediante la siguiente sentencia al principio del codigo:
    Set objWSH = CreateObject(“WScript.Shell”)
    objWSH.RegWrite “HKEY_CURRENT_USER\Software\PDFCreator\Program\UseAutoSave”, 1, “REG_SZ”
    objWSH.RegWrite “HKEY_CURRENT_USER\Software\PDFCreator\Program\UseAutoSaveDirectory”, 1, “REG_SZ”

    y luego para darle el nombre al documento:

    objWSH.RegWrite “HKEY_CURRENT_USER\Software\PDFCreator\Program\AutoSaveDirectory”, strAutoSaveDirectory, “REG_SZ”
    objWSH.RegWrite “HKEY_CURRENT_USER\Software\PDFCreator\Program\AutoSaveFileName”, strAutoSaveFileName, “REG_SZ”

    Cuando genero un sólo documento me va perfecto, el problema es cuando quiero imprimir varios documentos seguidos, una secuencia de facturas por ejemplo y es que se le va la pinza y me crea por ejemplo la factura 56 con los datos de la 55, se me salta la 60, pero todo esto aleatoriamente. Si hago la ejecución paso a paso lo hace todo bien, pero si le doy que lo haga todo corrido me hace tonterías de ese tipo. Yo creo que o el pdfcreator es muy lento a la hora de generar el documento, o tarda a la hora de modificar el registro o no se cual es exactamente el problema. He probado a ponerle funiones de espera como la funcion sleep de la kibreria kernel32.dll durante 3, 5, 10, 15 y hasta 30 segundos para darle tiempo a hacer todo y aun asi no me lo hace bien. Qué puede pasar? Cómo podría solucionarlo?

    Un saludo

    Santy

    • Robert Ale says:

      Hola Santi,

      Primero pedirte disculpas por la tardanza, pero estoy teniendo una época muy ajetreada y el blog lo tengo un poco abandonado.

      Ese problema me suena bastante. No con PDFCreator pero si con otras aplicaciones que he ido desarrollando.

      A mi entender existe un problema de sincronización. En concreto entre el final de la “impresión PDF” de una factura y el inicio de la siguiente. Podríamos decir que hay que dejarle “respirar”.

      La idea de Sleep es buena, y a veces funciona. Pero el problema parece más serio.

      La escritura del registro es correcta, pero la programación de la impresión?
      Me explico, es como si abrieras la impresión (o el objeto de la impresora) y no le cerraras.

      Otra cosa… a veces he comprobado (dependiendo del ordenador) que la creación del PDF es un poco lenta.
      Te propongo una cosa, en ese bucle de impresión de facturas hagas lo siguiente:

      1º – Imprimes una factura.

      2º – Lanza un bucle de chequeo del PDF que está creado (además te servirá para esperar unos segundos). Veras como el PDF va creciendo en tamaño hasta que se estabilizada (esto puede ser muy rapido, pocos segundos).

      Cuando este estabilizado el fichero cerramos todos los objetos y volvemos para imprimir la siguiente factura.

      Algo similar lo he hecho en una aplicación que monitoria otra, la cual a su vez crea un fichero que la primera aplicación tiene que procesar.

      Espero noticias!

      Saludos y muchas gracias por acercarte a mi blog.
      Robert

    • Juan says:

      Santi resolviste ese problema?

  4. ana says:

    Estoy usando fox y quiero guardar archivos en pdf para esto utilizo pdfcreator, pero esto lo quiero hacer con varios archios asi que lo pongo en un for, pero solo me imprime el ultimo archivo y los primeros me los elimina, ¿qué puedo hacer?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: