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.
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Visual Basic Tags:
PDF,
Visual Basic
La función Replace de Visual Basic reemplaza un string formado por uno o varios caracteres en una cadena por otro string formado por uno o varios caracteres.
Su sintaxis es simple no necesita ejemplos.
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Visual Basic
Se utiliza la función Split:
Visual Basic:
Dim matStrings() As String
txtstrings = "Uno,Dos,Tres"
matStrings = Split(txtStrings, ",")
Obtenemos una matriz de Strings con cada uno de los elementos:
matstrings(1) = "Uno"
matstrings(2) = "Dos"
matstrings(3) = "Tres"
VN:F [1.4.6_730]
Rating: 3.0/5 (1 vote cast)
Posted in
Visual Basic Tags:
Strings,
Visual Basic
Hay varias formas de crear un hipervínculo en un formulario de Visual Basic y abrir una página Web.
Una muy sencilla es la siguiente:
- Crear una label en el formulario y en el Caption poner el texto que queramos, la dirección o el nombre de la página que queremos abrir.
- Cambiar la proipedad Font poniendo la característica de subrayado
- Cambiar la propiedad ForeColor y ponerle Azul
- Cambiar la propiedad MouseIcon y buscar un icono típico de Hipervínculo por ejemplo en: C:\Archivos de programa\Microsoft Visual Studio\Common\Graphics\Cursors
- Cambiar la propiedad MousePointer a 99 (personalizado)
Crear en el formulario el Evento Click y poner una llamada a la API ShellExecute pasando como parámetro la URL que queremos abrir.
VN:F [1.4.6_730]
Rating: 4.0/5 (1 vote cast)
Posted in
Visual Basic
Obtener un fragmento de una Cadena (String)
Visual Basic:
Visual Basic:
Dim MyString As String
MyString = "This is string example"
MsgBox Mid(MyString, 5, 10)
PHP:
PHP:
$MyString =
"This is string example";
echo substr($MyString,
5,
10);
Nota: En ambos casos el contador de caracteres empieza en 0
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Funciones,
Visual Basic Tags:
PHP,
Visual Basic
Descripción de los nombres que se deben utilizar al crear un control ActiveX.
Se toma como ejemplo un control de INTEX WinBol que calcula la tabla de clasificación de una competición:
|
Elemento
|
Nombre
|
Comentario
|
Control
|
|
|
| Nombre del Control |
Clasificacion |
Descripción Nmemotécnica |
| Nombre de fichero |
Clasificacion.ctl |
= Control |
| Nombre del OCX |
Clasificacion.ocx |
= Control |
Proyecto
|
|
|
| Nombre de fichero |
ClasificacionP.vbp |
= Control + P |
| Nombre del proyecto |
ClasificacionP |
= Control + P |
| Descripción del Proyecto |
INTEX WinBol Clasificacion |
Es lo que se ve en Referencias, se pone delante la aplicación a la que pertenece. |
Proyecto de Test
|
|
|
| Nombre de fichero |
Proyecto1.vbp |
Nombre poco importante |
| Nombre del proyecto |
Proyecto1 |
Nombre poco importante |
| Formulario de Test |
Form1 |
Nombre poco importante |
Grupo de Proyectos
|
Grupo1 |
Nombre poco importante |
VN:F [1.4.6_730]
Rating: 0.0/5 (0 votes cast)
Posted in
Visual Basic Tags:
Nomenclatura,
Visual Basic