begin process at 2012 02 10 16:57:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Automation de Word avec les MFC


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Automation de Word avec les MFC

mardi 24 mai 2005 à 14:53:23 | Automation de Word avec les MFC

vieira_alice

Bonjour,

j'essaie de faire un petit programme permettant de compléter un fichier .doc via la technologie OLE Automation de Word.

J'arrive à ouvrir le .doc, à aller jusqu'aux signets qui m'intéressent, écrire du texte puis sauvegarder et fermer le document.
Je souhaite maintenant insérer une image à partir d'un fichier dans le document.

A l'heure actuelle je n'ai pas trouvé grand chose à ce sujet, .

Je pensais au début utiliser la fonction Selection::InsertFile mais quand je l'utilise lors de l'exécution Windows m'enguirlande en me disant que le type n'est pas bon (le type de quoi je sais pas).
                COleVariant Range ;
               COleVariant confirmConv;
               COleVariant link;
               COleVariant attachment ;

               Range.vt = VT_DISPATCH ;
               Range.ppdispVal = (0,0) ;

               confirmConv.vt = VT_BOOL ;
               link.vt = VT_BOOL ;
               attachment.vt = VT_BOOL ;

               confirmConv.boolVal = false ;
               link.boolVal = false ;
               attachment.boolVal = false ;
  
               //wchar_t t_test ;
               char test[20] ;
               sprintf(test, "test.doc") ;
              // MultiByteToWideChar (CP_OEMCP,MB_PRECOMPOSED,test,-1,&t_test,0) ;

               selObj.InsertFile(
                  _T("test.doc"),  // chemin du fichier à insérer
                  &Range,        // If the specified file is a Word document,
                                 // this parameter refers to a bookmark. If the file is another type
                                 // (for example, a Microsoft Excel worksheet),
                                 // this parameter refers to a named range or a cell range
                                 // (for example, R1C1:R3C4).
                  &confirmConv,  // demande à l'utilisateur de confirmer l'insertion du fichier : true sinon false
                  &link,         // True to insert the file by using an INCLUDETEXT field.
                  &attachment    //  True to insert the file as an attachment to a WordMail message
                  ) ;

J'ai vu en VB qu'ils utilisaient :   docWord.Selection.InLineShapes.AddPicture

En c++, cela devrait devenir : selOvj.GetInLineShape() mais après je n'ai aucune fonction ressemblant à un AddPicture

Est ce que vous auriez une idée ?

Alice


mardi 24 mai 2005 à 16:22:29 | Re : Automation de Word avec les MFC

speeddo

bonjour Alice,

tu devrais peut-être regarder la bibliothèque Word. AddPicture se trouve dans la Class InLineShape, qui se trouve elle même dans la class Selection, qui se trouve dans la class Application.
Pour voir ces class  fais Alt + F11, puis F2.

En gros ça donnerait quelquechose comme ça:

// Déclaration
Variant  vMSWord;
Variant  vFileName;
Variant  vSelection;
Variant  vInLineShape;

// Connection  ou ouverture de Word
try {
    vMSWord = Variant::GetActiveObject("WordApplication");
} catch(...) {
    vMSWord = Variant::CreateObject("Word.Application");
}
vFileName=C:\\Mes Documents\\MonImage;" // Chemin d'accès de ton image

vSelection = vMSWord.OlePropertyGet("Selection");
vInLineShape = vSelection.OlePropertyGet("InLineShape");
vInLineShape.OleFunction("AddPicture",vFileName); //ouverture

En espérant que cela puisse t'aider!
Tiens moi au courant!!



 
mardi 24 mai 2005 à 17:22:34 | Re : Automation de Word avec les MFC

vieira_alice

je n'est pas accès directement à Variant mais à COleVariant
mais je sais comment récpérer la sélection.
pour le inLineShape merci à toi, tu m'as enlevé mon doute quand à la fonction getInLineShape, c'est le bon.

Après je n'ai pas de OleFunction mais possibilité de faire un invoke ()

je vais chercher de ce côté là.

Merci encore.



Alice

PS : alors là il est trop mimi ce chat !!! (c'est pas celui de shrek ?)

mercredi 25 mai 2005 à 08:55:05 | Re : Automation de Word avec les MFC

speeddo



tu n'as pas de OleFunction?? tu codes en quoi? et avec quoi? tu avais compris que Selection
InLineShape;AddPicture font parti du VB de Word?
 

P.S. Vi, c'est le Chat ...Potté!
mercredi 25 mai 2005 à 10:30:19 | Re : Automation de Word avec les MFC

vieira_alice

C'est bien ce qui me semblait ....
Mais je code pas avec l'éditeur de word ......

Je code en  C++ avec les MFC et j'utilise VC++ 6.0


mercredi 25 mai 2005 à 11:26:01 | Re : Automation de Word avec les MFC

speeddo


je sais que  tu code pas avec l'éditeur de word.
en fait he code en C++ (borland C++ builder) et j'appelle les fonctions et propriétés contenu dans Word (fonctions et propiétés en VB que tu vois dans l éditeur de Word)

Donc en résume mon code est du C++ qui pilote Word!!!
Donc... ça devrait être le même principe pour ton Visual C++.. non?
 
mercredi 25 mai 2005 à 14:21:15 | Re : Automation de Word avec les MFC

vieira_alice

Efectivement c'est ce que je fais (analogiquement parlant)

donc je cherche toujours la fonction qui me permettrait d'appeler quelquechose du style AddPicture ...



mercredi 25 mai 2005 à 16:10:39 | Re : Automation de Word avec les MFC

speeddo


tu arrive à appeler Word, Selection, InLineShapes ?
mais pas AddPicture??
 
mercredi 25 mai 2005 à 16:11:17 | Re : Automation de Word avec les MFC

vieira_alice

e suis toujours sur ces histoires d'automatisation de Word .

je souhaite modifier en cours de route la police du texte à écrire dans mon fichier word.

               _Font font ;
               font.m_lpDispatch = selObj.GetFont();
               font.SetName("Comic Sans MS");
               font.SetSize(16);
               font.SetBold(3) ;
               selObj.SetFont(font) ;


selObj est ma sélection en cours dans mon document word.

Si je ne mets pas selObj.SetFont tout ce passe bien mais la police n'est pas mise à jour.
Quand selObj.SetFont est présent, la police est mis à jour et windows me dit "mauvais paramètre" et me jette.

j'ai été voir SetFont et en entrée cela prend un LPDISPATCH et si je lui passe directement font.m_lpdispatch, le problème est le même.

t'aurais pas une idée ?


mercredi 25 mai 2005 à 16:14:54 | Re : Automation de Word avec les MFC

vieira_alice

C tout à fait ça j'arrive à l'obtention de l'objet inLinShape mais après je n'ai pas de fonctionnalité style AddPicture :


               LPDISPATCH pDisp ;
               pDisp = selObj.GetInlineShapes() ;


mais après j'ai un addRef () ou un invoke (....), je pense qu'il faut que je comprenne ce qu'est invoke mais c'est pas gagné.

ou alors je n'ai pas trouvé la bonne classe qui récupère le inLineShapes.




1 2

Cette discussion est classée dans : test, to, range, vt, attachment


Répondre à ce message

Sujets en rapport avec ce message

turboc++ icones .exe??? [ par idk ] Comment faire pour plus avoir cette icone horrible, (carré blanc avec du bleu en haut!)Dans le makefile faut faire quoi!voici le makefile d'un program int to char ! [ par nullspace ] Voila mon problème !J'ai une résultat sous forme de variable INT, et je veux que ce résultat soit affecté à une variable de type CHAR.Genre, si j'ai 6 Dll en ATL/COM [ par fviollet ] Bonjour,J'ai crée un dll pour Excel de type ATL/COM sous Visual Studio C++6.Elle fonctionne parfaitement mais je ne peux pas la transporter sur une ma Exporter une classe dans une DLL... [ par Clovis ] Salut,Je voudrais pouvoir exporter dans une DLL, si c'est possible, les fonctions et les objets du listing suivant. Car, je voudrais, par la suite pou HEEELLLLPPPP!!!!!!!!!!detruire un handle de com [ par mavric ] salut je fais un prog de com serie ds mon prog j'ouvre une com avec la fonction suivante :hcom=createfile("com2"...........puis je verifie si l'ouvert HEEELLLLPPPP!!!!!!!!!!detruire un handle de com [ par mavric ] salut je fais un prog de com serie ds mon prog j'ouvre une com avec la fonction suivante :hcom=createfile("com2"...........puis je verifie si l'ouvert Conversion Float to String [ par PierreP ] Bonjour à tous !je suis en train de me prendre la tête pour créer une fonction de conversion d'un réel en une chaine de caractère (problème du débutan HELP!!!!!!!!!!!!!! => comparaison de BMP [ par mavric ] bonjour ,je cherche a comparer 2 fichiers bmp ,mais de facon optimisé , pour le moment mon prog mais environ 20 sec et il faudrait qui mette moins de Switch et char [ par Stoomm ] Bonjour,Si j'ai :char test[10];strcpy (test, "monchar ";Si je souhaite faire un switch : Je fais comment ???switch (test){...}Il aime pas ! Quelqu'un Hexadécimal HELP ! [ par Xentor ] Bonjour,Mon problème est le suivant : je vient d'effectuer un AND sur une variable, et celle ci, bien que conservant son type unsigned int se met en h


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,380 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales