Bild & Text in .doc Datei einfügen

  • Hi,


    Bei dem unten stehenden Code kann ich mehrere Images auswählen, welche dann problemlos in eine .doc Datei eingefügt werden. Das Problem dabei ist jedoch, dass die Bilder nebeneinander eingefügt werden und nicht untereinander! Des Weiteren möchte ich gerne unter den einzelnen Bildern jeweils einen Text einfügen können (Beispielsweise den Dateinamen under einfach nur "Text ...". Wenn ich 2 Bilder auswähle, soll die .doc Datei so aussehen:


    [IMAGE]


    Text 1


    [IMAGE]


    Text 2


    Mit dem unten stehenden Code kann man also schon Bilder einfügen. Was mir noch fehlt ist das Einfügen von einem Text UNTER DEM BILD & ein Zeilenumbruch, damit das nächste Bild unter dem Text vom vorherigen Bild ist (und nicht nebeneinander). Fehlender Code ist hier einzufügen:"// ADD ALSO TEXT HERE AND A LINE BREAK"


  • Alles klar, danke :)


    Funktioniert jetzt so:



    Weißt du eigentlich ob es gehen würde ein byte[] (oder eine Metafile oder ein Graphics) in ein .doc Dokument einzufügen?


    Ich hab also 3 Abläufe. Beim ersten Ablauf erstelle ich ein byte[] (für sonstige Bearbeitung), beim zweiten Ablauf speichere ich das byte[] als Bild-Datei auf meiner Festplatte, beim dritten Ablauf wähle ich die Bild-Datei aus und füge sie ins Word Dokument ein.


    Anstatt also jetzt folgenden Code auszuführen

    Code
    1. oPara2.Range.InlineShapes.AddPicture(filename, ref oMissing, ref oMissing, ref oMissing);

    möchte ich anstatt die ausgewählte Bilddatei gleich den ersten Ablauf aufrufen (return wert ist byte[]) und diesen byte[] als Bild-Datei in das Word Dokument einfügen.
    Da ich vor dem erstellen des byte[] eine Metafile (bzw. Graphics) generiere und von dem Metafile das die bytes in einen byte[] speichere wäre es natürlich auch möglich die Metafile direkt ins Word Dokument zu speichern.


    Verallgemeinert: Wie kann ich, anstatt eine Bild-Datei von meiner Fesplatte auszuwählen und diese in mein Word Dokument einfüge, ein byte[] oder eine Metafile oder eine Graphics in ein Word Dokument (als Paragraph wie oben) einfügen, ohne es zuerst auf meine Festplatte temporär zu speichern?

  • Hey,


    mit den Office Interopts kenne ich mich nicht so aus, da ich das OpenXML SDK einsetze, da es sich schneller anfühlt und auch ohne installiertem Office geht, aber afaik kannst du bei Office kein byte[], Metafile oder Graphics einfügen. Die Datei muss wohl auf der Platte liegen, damit das Interopt sie einfügen kann, keine Ahnung warum genau.
    Afaik geht das aber im OpenXML SDK über Steams, allerdings müsstest du den Code wohl umbauen und er wäre etwas komplexer, dafür hast du dann mehr Kontrolle.