Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-08-2008
luxus luxus is offline
Miembro
 
Registrado: oct 2004
Posts: 134
Poder: 20
luxus Va por buen camino
modificar una plantilla de word

Hola amigos,

¿Me podriais indicar cómo puedo abrir una plantilla de Word, el cual ya tiene su encabezado y pie de pagina para rellenar el texto que quiero añadir a partir de una aplicación en delphi?


En otras palabras, pulsando un boton en la aplicación se debería abrir una plantilla de word y rellenar la informacion de un memo en el que voy cargando el texto que quiero mostrar al final en el archivo de word.

Gracias y un saludo
Responder Con Cita
  #2  
Antiguo 26-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No estoy seguro, pero quizá lo de este hilo te sirva.

// Saludos
Responder Con Cita
  #3  
Antiguo 26-08-2008
luxus luxus is offline
Miembro
 
Registrado: oct 2004
Posts: 134
Poder: 20
luxus Va por buen camino
Documentos de Word

Hola Roman,

Muchas gracuas por tu rápida respuesta. En verdad, es más sencillo de lo que te he explicado. Supongamos que tengo un archivo de word que se llama plantilla.doc.

Lo que quiero hacer es que la aplicación abra dicho archivo (plantilla.doc) y luego se vuelca el texto que tengo un memo al archivo de word.

Gracias por tu ayuda
Responder Con Cita
  #4  
Antiguo 26-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues aplica por igual. Aquí un ejemplo:

Código Delphi [-]
var
  Word: Variant;
  Documento: Variant;
  Texto: String;

begin
  (* Creas un objeto Word *)
  Word := CreateOleObject('Word.Application');

  (* Añades un documento basado en la plantilla *)
  Word.Documents.Add('C:\ruta\al\memo.dot');
  Documento := Word.Documents.Item(1);

  (* Copias el texto del memo al documento *)
  Texto := StringReplace(Memo1.Lines.Text, #13#10, #13, [rfReplaceAll]);
  Documento.Variables.Add('texto', Texto);

  (* Actualizas el campo *)
  Documento.Fields.Update;

  (* Fuerzas a mostrar el contenido del campo *)
  Word.ActiveWindow.View.ShowFieldCodes := false;

  Word.Visible := true;
end;

Aquí, memo.dot es una plantilla de Word así:

Código:
A quien corresponda

{ DOCVARIABLE  texto  \* MERGEFORMAT }

Gracias.
// Saludos
Responder Con Cita
  #5  
Antiguo 26-08-2008
luxus luxus is offline
Miembro
 
Registrado: oct 2004
Posts: 134
Poder: 20
luxus Va por buen camino
Plantilla

Hola Roman

Muchas gracias por tu respuesta. ¿Me podrías decir como puedo implementar la plantilla memo.dot?

Yo he creado una plantilla en word pero no tengo ni idea como asociar la variable

{ DOCVARIABLE texto \* MERGEFORMAT }
Gracias por tu ayuda
Responder Con Cita
  #6  
Antiguo 26-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Está escrito en el hilo que te indiqué. Sólo tienes que ir al menú Insertar|Campo y escoger el que dice DocVariable. Te pregunta cuál es el nombre que quieres para el campo y ahí escribes texto o como quieras llamarle con tal de que coincida con el que uses en el código delphi:

Código Delphi [-]
Documento.Variables.Add('texto', Texto);

// Saludos
Responder Con Cita
  #7  
Antiguo 26-08-2008
luxus luxus is offline
Miembro
 
Registrado: oct 2004
Posts: 134
Poder: 20
luxus Va por buen camino
Error

Hola Roman

Este es el codigo que he implementado:

Word := CreateOleObject('Word.Application');
aux:=ExtractFilePath(Application.ExeName)+'\Archivos\certificado de asistencia.dot';
Word.Documents.Add(aux);


Una vez que llega a este punto me sale el siguiente error:

"WORD NO PUEDE LEER ESTE DOCUMENTO. PUEDE QUE ESTE DAÑADO.
PRUEBE LO SIGUIENTE:
* ABRA Y REPARE EL ARCHIVO.
* ABRA EL ARCHIVO CON EL CONVERTIDOR DE TEXTO"

¿Cual es el error?
Responder Con Cita
  #8  
Antiguo 26-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Asegúrate que la ruta sea correcta. Si mal no recuerdo, ExtractFilePath ya incluye la diagonal final, de manera que tendrías que omitir la que pones antes de Archivo.

Nota: Por favor, usa las etiquetas [delphi] para el código que pongas aquí.

// Saludos
Responder Con Cita
  #9  
Antiguo 26-08-2008
luxus luxus is offline
Miembro
 
Registrado: oct 2004
Posts: 134
Poder: 20
luxus Va por buen camino
Error

Hola Roman,

Perdona las molestias que te pueda causar.

Tal como dijiste ExtractFilePath ya incluye la diagonal, así que corregí este fallo y me sigue indicando el mismo error.

Tengo el office 2007 aunque he creado la plantilla usando el modo compatibilidad con office 2003. Me parece que el error no está por este lado ¿no?
Responder Con Cita
  #10  
Antiguo 26-08-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cuando hice la prueba del código que te puse, me salía el mismo error hasta que me di cuenta que no le estaba poniendo la ruta exacta. Prueba primero ponérsela directo.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
word:rellenar plantilla. ¿mediante busacar y reemplazar? rikitriki Servers 0 16-07-2007 12:56:48
Modificar margenes en Word jzk Servers 4 15-09-2005 11:13:06
modificar documento word sin el word instalado joaquinmol Servers 0 30-03-2005 19:58:54
Registro en Plantilla Word JulioGO Firebird e Interbase 2 12-09-2004 00:42:34
Alguien sabe cómo pasar parámetros a una plantilla Word?? Muten Servers 2 01-04-2004 00:07:43


La franja horaria es GMT +2. Ahora son las 19:55:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi