 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Kosky Ens


Registrado: 17 Jun 2003Mensajes: 40Ubicación: Sant Joan de les Abadesses
|
Publicado: Mie 02 Jun, 2004 11:36 am Asunto: Automatizacion de Word. Problemas al Guardar un archivo. |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 03 Jun, 2004 4:30 am Asunto: |
|
|
| 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 |
|
 |
Kosky Ens


Registrado: 17 Jun 2003Mensajes: 40Ubicación: Sant Joan de les Abadesses
|
Publicado: Jue 03 Jun, 2004 10:10 am Asunto: Gracias Leo pero la funcion que me das esta limitada |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 03 Jun, 2004 2:10 pm Asunto: |
|
|
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 |
|
 |
Kosky Ens


Registrado: 17 Jun 2003Mensajes: 40Ubicación: Sant Joan de les Abadesses
|
Publicado: Jue 03 Jun, 2004 4:32 pm Asunto: Perfecto Leo |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|