Hat schon mal jemand erfolgreich versucht, eine Word (docx) Datei selbst aus einen C Programm (oder ähnliches) heraus zu erzeugen? docx scheint eine ZIP-Datei zu sein, welche mehrere *.xml Dateien enthält. Ist da Dokumentation vorhanden, welche XML Dateien man erzeugen muss, und was darin wie stehen muss?
Verwende Java und Apache POI, das ist eine gute Library für MS Office Dokumente. Solche Dateien direkt manuell zu erzeugen ist sehr kompliziert, das kannst du vergessen...
Peter P. schrieb: > Ist da Dokumentation vorhanden, welche XML Dateien man erzeugen > muss, und was darin wie stehen muss? Ja selbstverständlich. DOCX ist OfficeOpen XML. Die handliche Spezifikation von rund 6000 Seiten kannst du dir bei der ISO besorgen... Warum zum Geier will man heute noch freiwillig OOXML erzeugen?! Das war doch schon überholt, als es erfunden wurde.
@Nase In was würde es man denn sonst erzeugen, so dass es mit Word kompatibel ist?
Ich kenne deine Anwendung ja nicht. Muss es denn explizit Word-kompatibel sein oder willst du eigentlich eher ein PDF erzeugen? "Word" und "kompatibel" in einem Satz ist sowieso gewagt.
Peter P. schrieb: > @Nase > In was würde es man denn sonst erzeugen, > so dass es mit Word kompatibel ist? RTF http://de.wikipedia.org/wiki/Rich_Text_Format
Ich habe im Endeffekt ein (in Word vorgegebenes) Template (mit Kopf- und Fusszeile) und möchte die Daten, die dort eingefüllt werden (mehr oder weniger wahrscheinlich nur Text, keine Bilder oder sonstiges, vielleicht noch Farben und Fontgrößen/Fonts) per Programm erzeugen. Fallback ist, die Daten per Cut&Paste dort reinzukopieren, aber schöner wäre es, wenn man das ganze Dokument in einem Rutsch erzeugen könnte. Geht es mit PDF einfacher? Gibt es hier bessere Möglichkeiten? Ist eine *.pdf Datei mehr als ein proprietäres Binary? Laut http://de.wikipedia.org/wiki/Portable_Document_Format gibt es schon Varianten z.B. von XML zu PDF, aber ob dies mein Problem mit dem Template löst? Ich habe so etwas vor (sehr) langer Zeit mal mit RTF (Rich Text Format) gemacht, aber bei RTF habe ich jetzt gedacht, dass dies vielleicht nicht mehr ganz so "state-of-the-art" ist... http://de.wikipedia.org/wiki/Rich_Text_Format
Peter P. schrieb: > und möchte die Daten, die dort eingefüllt > werden (mehr oder weniger wahrscheinlich nur Text, keine Bilder > oder sonstiges, vielleicht noch Farben und Fontgrößen/Fonts) per > Programm erzeugen. Sofern auf dem Rechner, auf dem das geschehen soll, Word installiert ist, lässt sich das auch mit Word selbst erledigen. Das nämlich lässt sich per Automation ganz gut steuern. Diese Automation beherrscht u.a. das bei Windows mitgelieferte VBscript.
Dr. Sommer schrieb: > Verwende Java und Apache POI, das ist eine gute Library für MS Office > Dokumente. Solche Dateien direkt manuell zu erzeugen ist sehr > kompliziert, das kannst du vergessen... U.U. kann es hier reichen ein Dokument mit eindeutigen Platzhaltern für den später einzufügenden Text als Vorlage zu erzeugen und das dann im eigenen Programm zu verarbeiten. So was in der Art wie: Docx-Zip öffnen, im "word"-Verzeichnis document.xml öffnen und Texte ersetzen, wieder alles verpacken und speichern. https://msdn.microsoft.com/en-us/library/aa338205%28v=office.12%29.aspx Ansonsten mit bspw. mit dem Open XML SDK arbeiten: https://www.microsoft.com/en-us/download/details.aspx?id=30425 bzw. die Quelltexte dazu https://github.com/OfficeDev/Open-XML-SDK
oder mal google 'nen Blick auf "spire.doc" werfen lassen
:
Bearbeitet durch User
Hab ich schon mal für den gleichen Zweck verwendet... fertiges Docx Template mit Messdaten, generierten Bildern und Diagrammen füllen. Hat sehr gut funktioniert. https://docx.codeplex.com/
Peter P. schrieb: > Geht es mit PDF einfacher? Gibt es hier bessere Möglichkeiten? Die Liste aller Möglichkeiten wäre mit Sicherheit viel zu lang, um sie hier auch nur näherungsweise erschöpfend darstellen zu können. Wichtig wäre es zunächst einmal zu wissen, was denn das Ergebnis Deiner Bemühungen sein soll? Geht es um die Erstellung eines fertigen Dokumentes das dann nur noch verschickt, gedruckt und gelesen wird oder soll das erstellte Word-Dokument noch weiter bearbeitet werden? Im ersten Fall würde ich auf Office-Pakete ganz verzichten und immer ein Textsatzsystem verwenden, von denen TeX/LaTeX der bekannteste Vertreter sein dürfte. Denen kannst Du die Inhalte in einer Markup-Sprache präsentieren, die sich technisch ganz einfach erzeugen lässt, eine ganze Liste von Anregungen dazu findest du hier: http://docscript.sourceforge.net/docscript.pdf Das Ergebnis lässt sich leicht in viel gängige portable Formate wandeln. Die benötigten Tools sind bei jeder Linux-Distribution dabei und sicher auch für Windows zu haben. Ist es dagegen wichtig, dass ein Word-Dokument entsteht um es weiter bearbeiten zu können, dann würde ich es auf jeden Fall erst einmal über die Word-internen Werkzeuge versuchen. Ich habe zwar seit fast 20 Jahren nicht mehr mit Word gearbeitet aber jedes Office-Paket kommt heute mit einen Makro-Recorder und einer oder mehreren Skriptsprachen. Dabei bieten sich grundsätzlich zwei mögliche Ansätze: Entweder Du modifizierst Dein Template so, dass es sich die einzufügenden Inhalte selbst aus einer Datenbank oder von einem Server holt, eventuell kannst Du auch Programme aus Word heraus aufrufen, die die Daten liefern. Oder Du erzeugst aus Deinem Programm heraus eine Makro-Aufzeichnung oder ein Skript, das Du dann aus Word heraus aufrufst und das dann die Daten an den entsprechenden Stellen einfügt. Das würde ich allerdings nur versuchen, wenn das Dokument völlig neu erstellt wird. Das Einfügen in ein vorhandenes Dokument oder Template kann schnell Probleme machen, wenn sich in der Vorlage irgendetwas ändert.
Ich kann für deinen Fall auch nur Latex empfehlen. Ich benutze TeXstudio unter Win7, funktioniert gemeinsam mit MikTex einwandfrei. Man braucht am Anfang zwar ein bisschen Einlernphase, danach gehts aber ziemlich gut. Sind vorallem viele Informationen und Tutorials im Internet. Von dort würd ich mir mal auch auch Dokumentvorlagen herunterladen und anschauen, da kannst du einiges Lernen. Ausgabe in pdf ist Problemlos möglich.
Peter P. schrieb: > Geht es mit PDF einfacher? Gibt es hier bessere Möglichkeiten? Naja, es gibt zumindest gefühlte 200 vernünftig dokumentierte Bibliotheken für PDF. Word automatisieren ginge ja auch, wie schon vorgeschlagen. Für dein Platzhalterkram würde ich aber vielleicht eher auf etwas wie LaTeX zurückgreifen, oder XLS-FO.
Ich mache es immer in Postscript, lasse einen Platzhalter ersetzen. Dann nach PDF konvertieren. Postscript ist recht einfach zu verstehen.
Rufus Τ. Firefly schrieb: > Peter P. schrieb: >> und möchte die Daten, die dort eingefüllt >> werden (mehr oder weniger wahrscheinlich nur Text, keine Bilder >> oder sonstiges, vielleicht noch Farben und Fontgrößen/Fonts) per >> Programm erzeugen. > > Sofern auf dem Rechner, auf dem das geschehen soll, Word installiert > ist, lässt sich das auch mit Word selbst erledigen. Das nämlich lässt > sich per Automation ganz gut steuern. Diese Automation beherrscht u.a. > das bei Windows mitgelieferte VBscript. Hast Du hier vielleicht einen Link auf ein Beispiel wie man das konkret machen koennte?
Ein paar allgemeine Beispiele für VBS http://www.robvanderwoude.com/vbstech.php Eine Sammlung von Office-Automationsdingen https://technet.microsoft.com/library/ee332540.aspx hieraus beispielsweise das hier: https://technet.microsoft.com/en-US/library/59b64fd1-5a25-40cc-9b12-31fe4cc6bf82 Zum Ausprobieren den Code als *.vbs abspeichern und in der Konsole/Eingabeaufforderung mit cscript aufrufen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.