Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Automatizacion de Word. Problemas al Guardar un archivo.

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Automatizacion de Word. Problemas al Guardar un archivo. Responder citando

Buenas a todos, tengo un problema, el caso es que estoy trabajando con un archivo Word, el qual modifico y luego intento guardarlo, hasta ahora siempre he guardado los archivos en otra ubicacion y por tanto utilizo la propiedad
vDocumento.OleProcedure( "SaveAs", nombrefichero.c_str() );
hasta aqui todo correcto, el problema lo tengo ahora cuando intento guardar el documento en la misma ruta, he utilizado las siguientes sentencias y las dos me dan el mismo resultado ( se quedan colgados )
vDocumento.Exec(Procedure("Save"));
o
vDocumento.OleProcedure( "Save");
pues lo dicho, estas dos sentencias me dejan colgado el programa, y si intento guardar el documento con SaveAs y guardandolo en la misma ruta pues me da error.

Otra duda es:


Trabajo con un documento Word de diferentes paginas al cual le sustituyo campos o valores, todo me va perfecto el problema es que si quiero pegar una imagen en la hoja 5 del documento, no consigo hacerlo, alguien me podia orientar ?
muchas gracias!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Cita:
... el problema lo tengo ahora cuando intento guardar el documento en la misma ruta...

¿Que error te da? ¿Puedes pegar un trozo de código completo para probarlo?

Cita:
...si quiero pegar una imagen en la hoja 5 del documento...

Aquí va un ejemplo. Lo probamos con un documento de Word abierto, de al menos 5 páginas:
Código:
Variant word = GetActiveOleObject("Word.Application");
Variant document = word.OlePropertyGet("ActiveDocument");

Variant range = document.OleFunction("GoTo",
            1 /*wdGotoPage*/, 1 /*wdGotoAbsolute*/, 5 /*nº.pag.*/);

Variant shapes = range.OlePropertyGet("InlineShapes");
Variant shape = shapes.OleFunction("AddPicture", "c:\\imagen.bmp");
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Gracias Leo pero la funcion que me das esta limitada Responder citando

Primero de todo, decir que el error que me generaba al querer guardar el docuento mediante la funcion "Save" pues està solucionado, el problema era tan sencillo como matar los processos de winword que estavan "corriendo" bueno matar almenos el correspondiente al documento con el que trabajo, una vez realizado esto todo va de maravilla.
Ahora el "problema" que tengo es que con tu codigo para insertar imagenes en cualquier pagina del documento me funciona bien, pero no puedo insertar la imagen en unas coordenadas concretas, me da un error de demasiados parametros, el caso es que he modificaco un poco tu codigo para poder insertar la imagen donde quiera utilizando un trozo de codigo que en su dia TU ( como siempre campeon ) me pasaste.

Variant vShape = vShapes.OleFunction("AddPicture",
RutaGrafico.c_str(), // Path a la imagen
false, // Vincular imagen al documento?
true, // Guardar la imagen vinculada con el documento?
174, // Coordenada X
275, // Coordenada Y
277, // Ancho de la imagen
223 // Alto de la imagen
);

creo que la limitacion es debida a esta asignacion, pero... no se, si me pudieras comentar un poco el tema te lo agradeceria. muchas gracias.

vShapes = vRango.OlePropertyGet("InlineShapes");

Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Es que hay varias formas de añadir una imagen. Cambia las dos líneas siguientes en el ejemplo anterior:

Código:
    Variant shapes = document.OlePropertyGet("Shapes");
    Variant shape = shapes.OleFunction("AddPicture", "c:\\imagen.bmp",
            false, true, 174, 275, 277, 223, range);
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Perfecto Leo Responder citando

Ok Leo, he provado con esta nueva linia y todo perfecto, justo lo que queria.
Muchas gracias, y referente al primer problema de guardar el archivo ya dije q lo solucione y el motivo del error.
Espero que la gente de este foro se acostumbre a publicar la respuesta a su pregunta en caso de que la solucion la haya efectuado él mismo, ya que muchas veces me encuentro de que se realiza una pregunta ( que pudiera ser de mi interes ) y luego responde con la simple respuesta de : ya lo he solucionado. Me gustaria que la gente se acostumbrara a decir tb la solucion que ha efectuado, para asi poder avanzar todos juntos.
Espero que me entendais.

Gracias Leo, Gracias a todos+

Oscar
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.