Grafik in Word Dokument einfügen



  • soory, du musst "Grafik laden " hinschreiben , dann passts 😉
    Tipp: Wähl mal MFC und C++ aus
    Und was sagst du?



  • Ich habe natürlich eh nur in CBulder Foren gesucht.
    Da scheint es einer geschafft zu haben. Mein Compiler meldet jedoch Error wenn ich dem Pointer ein = NULL zuweisen möchte. Auch weiss ich nicht was "spDispDokument" sein soll. Mein VARIANT ist es scheinbar nicht kompatibel. Verdammt viel was er da machen muss um ein Bild auszutauschen X.X

    Kann sich eventuell einer mal das obige Beispiel laden und in die Vorlage ein Bild einfügen was er dann ersetzt und hier zeigen wie das geht? Sowas wäre sicherlich für viele nützlich.. Man findet unter Google keine Hilfe aber massenweise von Leutz die genau sowas suchen und scheinbar bleibt die Lösung für immer geheim 🙄



  • So ersetze ich die Grafik mit Text

    AnsiString text="123abc";
    vSelection.Exec(Procedure("GoTo") << (int)wdGoToBookmark << 0 << 0 << "Grafik");
    vSelection.OleProcedure("TypeText",(VARIANT)((Variant)text.c_str()));
    

    Aber wie ersetze ich nun die Grafik mit einer Grafik?
    Irgendwie muss sowas einfliessen (VBA): ActiveDocuments.InlineShapes.AddPicture





  • Das Problem liegt wie schon erwähnt an den ersten Zeilen

    IDispatchPtr spBookmarks = NULL; // Konvertierung von 'int' nach 'IDispatchPtr' nicht möglich

    spDispDokument.GetPropertyByName(L"Bookmarks", &vResult); // Undefiniertes Symbol 'spDispDokument'

    Und viele weitere Folgefehler.

    Du kannst ja selber mal schnell http://www.bytesandmore.de/rad/cpp/files/WordControlSrc.zip laden und versuchen das Beispiel dort einzuarbeiten. Wäre überrascht und erfeut wenn es hinbekommen würdest 🤡



  • was willst du überhaupt mit dem anderen Projekt da machen ?
    Tu mal den code hier reinschreiben,dann klappts
    http://www.a-m-i.de/tips/office/officeautomation.php#cppexample_word
    okay?



  • Ich danke dir das versuchst zu helfen, jedoch funktioniert dein Beispiel so gut es scheinen mag nur mit Visual Studio und selbst da bricht es bei mir mit Speicherfehler ab bei 0 Error und 0 Fehler Compilierung.



  • versuch mal folgendes (müßte auch mit Jpg funktionieren):

    vSelection.Exec(Procedure("GoTo") << (int)wdGoToBookmark << 0 << 0 << "Grafik");
     vSelection.OlePropertyGet("InlineShapes").OleProcedure("AddPicture","C:\\Temp\\Dein_Bild.bmp");
    

    die Quelle war übrigends ein russisches Forum, gut das der Code standardisiert ist 😃

    Grüße
    Linnea



  • Hallo,
    ich lasse jetzt einfach mal diesen Beitrag nach sieben Jahren nochmal aufleben.
    Und zwar habe ich das Problem, dass ich die Grafiken in den InlineShapes nicht richtig skalieren kann. Ich habe jetzt schon versucht, die InlineShapes in eine normale CanvasShape zu konvertieren und dann die Größe usw. zu verändern.
    Das ist mir leider aber auch nicht gelungen.
    Habt ihr eine Idee, wie man die Größe der Grafik in Word anpassen könnte?
    Liebe Grüße



  • DerPizzaProf schrieb:

    ich lasse jetzt einfach mal diesen Beitrag nach sieben Jahren nochmal aufleben.

    Grundsätzlich: Für jede Frage ein eigenen Thread, und alte Threads auch in Ruhe lassen...



  • Das passt schon; die Faustregel lautet 'Ein Thema pro Thread, ein Thread pro Thema'.

    DerPizzaProf schrieb:

    Und zwar habe ich das Problem, dass ich die Grafiken in den InlineShapes nicht richtig skalieren kann.

    Was genau willst du erreichen?
    Generell gilt bei der Office-Automation: versuche zuerst, die Funktionalität direkt in Office per Makro bzw. VBA abzubilden. Den so entstandenen Code kann man dann u.U. leichter in den BCB übertragen.


Anmelden zum Antworten