Documentos PDF en Visual Basic. Icono de PDF

Documentos PDF en Visual Basic

Hay algunas aplicaciones que permiten que una persona firme un documento en una tableta digital y es necesario guardar una copia del mismo en el PC. Existen varias tabletas digitalizadoras que permiten realizar la firma e insertarla automáticamente en un documento PDF que tengamos abierto en ese momento.

El objetivo de esta entrada es describir cómo podemos generar PDF a partir de un modelo fijo con campos de formulario para fecha, nombre de la persona, etc. y una base de datos de nombres que tengamos en Access utilizando para ello Visual Basic 6.0 for Applications, es decir, VBA.

Para ello tendremos un proyecto de Visual Basic con un formulario en el cual pondremos un primer desplegable para seleccionar de nuestra base de datos la persona que va a firmar el documento PDF. En caso de no tener las personas en base de datos podemos poner un campo de texto para escribir el nombre de la persona.

Seguidamente debemos tener un botón que permita seleccionar el PDF que se va a firmar. Si sólo tenemos un PDF basta con poner su ruta como valor interior o de formulario, si tenemos varios modelos debe haber un sistema que permita la sección del modelo a utilizar.

El problema surge en el momento de rellenar los campos del formulario PDF desde Visual Basic, a pesar de cargar todas las DLL disponibles de Acrobat en ninguna de las clase aparecen métodos que permitan cambiar el valor de los campos de un formulario, o por lo menos, no lo supe encontrar. Existe una librería en Sourceforge que permite asignar valores a los campos entre muchas otras funciones pero el problema es que está diseñada para Visual .Net y no es compatible con Visual Basic.

Sin embargo googleando un poco encontré una solución distinta y que me ha servidor, se trata de crear los campos en el documento PDF y después para a modo de relleno y asignar a cada campo un valor distinto, por ejemplo:

  • Fecha: C01-123456
  • Nombre: C02-1234567890123456789012345678901234567890123456
  • DNI: C03-12345678

Después se abre el PDF en modo binario y con la instrucción Replace cambios estos valores por los valores del formulario, por ejemplo:

Open "InputDocument.pdf" For Binary As #1
strBytes = Space$(LOF(1))
Get #1, 1, strBytes
Close #1
strBytes = Replace(strBytes, "C01-123456", Format(Date, "dd-mm-yyyy"))
strBytes = Replace(strBytes, "C03-12345678", "B45123678")
' Grabar fichero de salida
Open strDocumento For Binary As #2
Put #2, , strBytes
Close #2

Lo que se debe tener en cuenta es que el String sustituido debe tener el mismo tamaño exacto.

Si quieres conocer más rutinas interesantes te recomiendo mi artículo Trucos y ejemplos de VBA para Microsoft Access.

1 comentario en “Documentos PDF en Visual Basic”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies