Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

miércoles, 1 de abril de 2015

TRUCO: Crear un programa para rellenar un impreso


TRUCO:
Crear un programa
para rellenar un impreso

Os dejo un pequeño tutorial, donde explico como crear un programa para rellenar impresos, usando herramientas de softwarelibre (inkscape y gambas3):

Pasos a seguir:
1º Crear un archivo tipo .svg (con inkscape)
2º Poner de fondo la imagen del formulario/impreso escaneado
3º Poner etiquetas de texto, donde quiero que aparezcan los datos
     Por ejemplo, las etiquetas de texto pueden contener el texto:"DatoNombre", "DatoApellido", etc
4º Luego guardo el archivo en el directorio de Datos de un  proyecto de gambas3
5º El programa, cada vez que va a hacer un impreso relleando lo que hace es copiar el archivo .svg al directorio temporal
6º Leo el archivo .svg, con la orden: contenido=file.load("/tmp/plantilla.svg")
7º Empiezo a hacer los reemplazos: (GAMBAS3) contenido=Replace(contenido,"DatoNombre", dato)
8º Una vez que hago todos los reemplazos, guardo el archivo
9º Y lo convierto en .png, para imprimirlo (ese paso es opcional, puedo imprimir directamente como .svg)
A continuación podéis ver un vídeo explicando el proceso,  he añadido la forma de cambiar el tamaño y el tipo de letra, para ajustarse mejor al impreso:

El código del ejemplo que habeis visto en el video:
Public Sub ButtonRellenar_Click()

Dim contenido As String

contenido = File.Load("plantilla.svg")

contenido = Replace(contenido, "DatoNif", TextBoxNIf.text)
contenido = Replace(contenido, "DatoNombre", TextBoxNombre.text)
contenido = Replace(contenido, "DatoMunicipio", TextBoxMunicipio.text)
contenido = Replace(contenido, "DatoProvincia", TextBoxProvincia.text)

File.Save("/tmp/rellenado.svg", contenido)

Message.Info("Archivo svg rellando creado en /tmp/rellenado.svg")


End
Os podeis descargar el Código Fuente en: alojado en google drive

4 comentarios:

  1. Hola. Primero agradecer por todo el contenido que tienes publicado sobre Gambas.

    Quisiera saber si puedes ayudarme con un error que tengo en un código.
    Tengo la siguiente linea de código:
    nombreAnterior = Replace(archivo, " ", "\ ")
    Quiero reemplazar todos los espacios blancos del archivo por la constante \ . Debe contener el caracter \ seguido de un espacio en blanco. Al intentar ejecutar la aplicación me muestra el siguiente error: Caracter constante en cadena incorrecta en FMain.class
    Gracias por tu ayuda

    ResponderEliminar
    Respuestas
    1. Me autorespondo.

      Solucione el requerimiento de la siguiente manera:
      nombreAnterior = Replace$(archivo, " ", Chr(92) & " ")

      Eliminar
    2. el error fue que el caracter a ser reemplazado no existe; querias reemplazar los espacios: " ", pero escribiste: "", es decir: no hay caracter.

      Eliminar
  2. Tambien puedes usar:

    nombreAnterior = Replace(archivo, " ", "\\ ")

    ResponderEliminar

A falta de donativos... un poco de publicidad