Rellenar un formulario en Word y gardarlo como PDF desde Visual Foxpro 9

Posted on febrero 24, 2016

1



Este ejemplo es válido para generar contratos u otros informes que nos interesa rellenar desde una plantilla de Microsoft Word existente, con los datos de nuestra aplicación, sin que tengamos que recurrir a combinar correspondencia.

El ejemplo rellena 3 variables de un documento plantilla de Word con campos desde VFP.

Paso 1. Crear el documento en word, que grabaremos con extensión .DOTX

El documento de ejemplo tiene una línea con datos varios de la persona:

Sr. {DOCVARIABLE “Nombre”}, de {DOCVARIABLE “Localidad”}, que vive en la calle {DOCVARIABLE “Direccion”}. ¡Gracias por comprar!

Los datos se guardan en campos de Word. Para añadir un campo de Word, hay que pulsar CTRL+F9. Se abrirán unos corchetes que tendremos que rellenar con las variables de documento que nos interese. Se pueden repetir en varios sitios diferentes del documento. Por ejemplo, es normal repetir el nombre de la persona varias veces en un contrato.

En lugar de usar CTRL+F9, también se puede usar en el ribbon la opción INSERTAR, del grupo TEXTO elegir ELEMTENTOS RAPIDOS y la opción que pone CAMPOS.

Una vez tengamos el documento generado, vamos a guardar como, elegimos Plantilla de Word y ponemos el nombre de la plantilla, por ejemplo PLANTIVFP.DOTX

Paso 2. Rellenar los campos desde VFP y generar el PDF.

* Generar el contrato e viaje.

LOCAL oWord as Word.Application
oWord = CREATEOBJECT(“Word.Application”)
oWord.Visible = .f. && Toggle this to True to see if there’s
&& any difference
oDoc = oWord.Documents.Add(“c:\ejemplo\PLANTIVFP.DOTX”)

* Asignas valores a los campos *
oDoc.Variables.Add(‘Nombre’, ‘David Acuña’)
oDoc.Variables.Add(‘Direccion’, ‘Plaza Mercadal, s/n’)
oDoc.Variables.Add(‘Localidad’, ‘Balaguer’)

oWord.ActiveWindow.View.ShowFieldCodes = .f.
oDoc.Fields.Update

oWord.Visible = .T. && Inspect the results

MESSAGEBOX(“Mira el word que hay abierto, y podrás ver como queda.”)

oDoc.SaveAs2(“c:\ejemplo\RESULTADO.PDF”, 17) && Guardar como PDF el documento generado.
oWord.Quit(.F.) && Salir sin guardar cambios.

RELEASE oWord