SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: titipower en Viernes 19 de Diciembre de 2003, 16:22

Título: Modificar Pie Y Encabezado De Pagina Desde Builder
Publicado por: titipower en Viernes 19 de Diciembre de 2003, 16:22
He buscado en mil sitios como modificar el pie y encabezado de una plantilla word desde builder.

Se como modificar el texto de la plantilla, pero no se como poder modificar el texto que se encuentra en el pie de página o en el encabezado de esa plantilla. No se acceder a esos elementos ni encuentro información de como hacerlo desde builder.

A ver quien aporta alguna idea de como meterle mano a esto ...  :smartass:
Título: Re: Modificar Pie Y Encabezado De Pagina Desde Builder
Publicado por: eduardomaldo en Lunes 22 de Diciembre de 2003, 02:39
La forma más sencilla es hacerlo primero desde macro en Word, luego ese código que es Visual Basic para Aplicaciones, programarlo desde C++ Builder.

Espero le sirva de algo.

Eduardo Maldonado
 :scream:
Título: Re: Modificar Pie Y Encabezado De Pagina Desde Builder
Publicado por: titipower en Viernes 9 de Enero de 2004, 11:35
Lo q me dices ya lo sabia y no me vale.
Esta es la solución. Me la dierón en el foro de builder:

// Añadimos: #include <comobj.hpp>

Variant word, doc, sections, footers, footer, range, font;
WideString nombreDoc = "c:\\_Leo.doc";
WideString textoAnyadir = "Texto pie";

word = CreateOleObject("Word.Application");
word.OlePropertySet("DisplayAlerts", false);
doc = word.OlePropertyGet("Documents").OleFunction("Open", nombreDoc);

sections = doc.OlePropertyGet("Sections");
footers = sections.OlePropertyGet("First").OlePropertyGet("Footers");
footer = footers.OleFunction("Item", 1 /*wdHeaderFooterPrimary*/);

range = footer.OlePropertyGet("Range");
font = range.OlePropertyGet("Font");
font.OlePropertySet("Name", "Tahoma");
font.OlePropertySet("Size", 7);
font.OlePropertySet("Italic", true);
font.OlePropertySet("Bold", true);

range.OleProcedure("InsertAfter", textoAnyadir);

doc.OleProcedure("Close", 0xFFFFFFFF /*wdSaveChanges*/);
word.OleProcedure("Quit");

Un saludo. :rolleyes: