Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



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



Mostrando entradas con la etiqueta impresos. Mostrar todas las entradas
Mostrando entradas con la etiqueta impresos. Mostrar todas las entradas

sábado, 27 de agosto de 2016

miércoles, 18 de febrero de 2015

TRUCO: Crear un programa para rellenar un impreso y convertirlo en pdf( 2º parte)

TRUCO: 

Crear un programa para rellenar un impreso y convertirlo en .pdf (2º parte)


En la entrada de la 1º parte  (enlace), explique como rellenar un impreso y convertirlo a formato  .svg


En el siguiente video tienes la explicación:



Ahora vamos a ver dos cosas más:
1) Como rellenar varias lineas
2) Como convertir el archivo .svg en formato .pdf

Vamos a ello:

1) Rellenar varias lineas.
Si necesitamos rellenar un texto largo, lo suyo es que por cada linea pongamos un código. En la siguiente captura vemos que en la plantilla .svg, he añadido varias DatosObservacionesXX ( DatosObservaciones01,DatosObservaciones02,DatosObservaciones03) para poder asi tener 3 lineas a rellenar


En el formulario del programas lo que haremos es tener un textbox por cada linea que queramos rellenar.

Nota:
Se podria tener en cuenta el limite de caracteres que nos caben en una linea y avisar al usuario que no lo supere, pero esto depende mucho  del tipo de letra y tamaño que tengan en la etiqueta del .svg.


2) Como convertir el archivo .svg en formato .pdf
 Para convertir el archivo .svg a .pdf, tendremos que usar el programa
rsvg-convert , que se instala de la siguiente forma:

$ sudo apt-get install librsvg2-bin

La linea en gambas seria:

 Shell "rsvg-convert -f pdf -o /tmp/rellenado.pdf /tmp/rellenado.svg" Wait

Os dejo aqui el código completo:


' Gambas class file

Public Sub _new()

End

Public Sub Form_Open()

End

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)
contenido = Replace(contenido, "DatoObservacion01", TextBox1.text)
contenido = Replace(contenido, "DatoObservacion02", TextBox2.text)
contenido = Replace(contenido, "DatoObservacion03", TextBox3.text)

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

Shell "rsvg-convert -f pdf -o /tmp/rellenado.pdf /tmp/rellenado.svg" Wait

'Nota: Tienes que activar el compoenente gb.desktop
'y tener instalado librsvg2-bin
'con el siguiente comando:
'sudo apt-get install librsvg2-bin
Desktop.Open("/tmp/rellenado.pdf")

End


Enlace de descarga del codigo fuente: alojado en drive google


Fuentes:
Conversión de .svg a .pdf: enlace

miércoles, 19 de noviembre de 2014

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