Documentos PDF en Visual Basic
1505
post-template-default,single,single-post,postid-1505,single-format-standard,ajax_fade,page_not_loaded,,vertical_menu_enabled,qode-title-hidden,side_area_uncovered_from_content,qode-theme-ver-11.0,qode-theme-bridge,wpb-js-composer js-comp-ver-5.0.1,vc_responsive

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 tables 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 como 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.

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 niguna 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 Sourgeforge que permite asignar valores a los campso 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 mucho 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 quese debe tener en cuenta es que el String sustituido debe tener el mismo tamaño exacto.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Cargando…
Tags:
,
No Comments

Deja un comentario

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