Export nach Word

tobiasb

Grünschnabel
Hallo,
kennt jemand von euch eine kompfortable Möglichkeit, Word-Dokumente aus C++ heraus zu erstellen?
Ich habe schon das hier gefunden, frage mich aber, on es vielleicht noch eine einfach zu bedienende Bibliothek oder etwas Ähnliches gibt.

Hoffe, ihr könnt mir helfen,

Tobi
 
Da es mittlerweile etliche WORD-Format gibt, ist der sicherste und beste Weg dieses direkt über WORD als Automationserver zu tun. Dieses wird ja auch in dem von Dir gefundenem Bsp. gezeigt. Nachteil ist:
dieses läuft natürlich nur unter Windows und setzt eine Installtion von MS-Word auf jedem Rechner vorraus, auf dem Dein Programm laufen soll. Solltest Du unter LINUX arbeiten, wäre ein ähnlicher Weg über OpenOffice möglich. Da Du leider keine Angaben zu Compiler und OS gemacht hast, gehe ich mal davon aus, dass Du unter Windows arbeitest.
Ich würde mir erst einmal folgende Fragen stellen:
1.) Welche Texte musst Du in welches Word-Format übertragen und warum unbedingt das Word-Format verwendet werden soll bzw. muss
2.) Käme statt des Wordformates auch RTF in Frage (kann jede Wordversion lesen und schreiben)
3.) Kann vorrausgesetzt werden, dass auf jedem Zielrechner auf dem Dein Programm laufen soll, MS-Word installiert ist
Ist die Formatierung in WORD unbedingt erforderlich, komme ich zu obiger Aussage "nehme Word als Automationsserver" zurück.
Einfacher als in dem genannten Bsp. geht es dann wirklich nicht mehr.
Solltest Du mit Borlands CBUILDER arbeiten, könntest Du in diesem Fall die Wrapper Klassen (Komponenten) für MS-Office verwenden, die Dir ein wenig Arbeit abnehmen, aber prinzipiell nichts anderes machen als in Deinem Bsp gezeigt.

Gruß

Gerhard
 
Vielen Dank, für die schnelle Antwort.
Die Fragen beantworte ich dir gerne:

Also Word-Version ist 2000 und alles unter Windows 2000/XP

1.) Welche Texte musst Du in welches Word-Format übertragen und warum unbedingt das Word-Format verwendet werden soll bzw. muss
Im Moment handelt es sich um sehr homogene Tabellen. Später sollen dann auch Fließtext und Bilder hinein. Word benutzen wir, weil es für den Kunden am einfachsten ist. Word ist überall installiert und jeder kann es ausdrucken...
2.) Käme statt des Wordformates auch RTF in Frage (kann jede Wordversion lesen und schreiben)
Hmm, warum eigentlich nicht. Gibt es denn einfachere Mittel zum erstellen von RTF-Dokumenten?
//Ok, hab gegoogelt - es gibt wohl einige Bibliotheken dazu
3.) Kann vorrausgesetzt werden, dass auf jedem Zielrechner auf dem Dein Programm laufen soll, MS-Word installiert ist
Erstellt wird das Dokument nur auf einem Rechner. Der hat dann Word. Von dort wird dann nur das Dokument weitergegeben.

Ich frage mich gerade, was du mit
nehme Word als Automationsserver
meinst. Das ist, was das Beispiel macht? Was bedeutet Automationsserver?
 
Zuletzt bearbeitet:
Also die RTF-Alternative hört sich ganz interessant an.
Leider habe ich dazu nur "RTFlib1.0" gefunden, deren Funktionalitäten aber leider nicht wirklich ausreichen. Kennt jemand etwas umfangreicheres? Kann auch ein komerzielles Produkt sein.
 
Hallo Tobias,

-Word 2000
hier bekommst Du schon ein Problem, wenn ein Kunde Word97 installiert hat

- Tabellen, Bilder Fließtext
Woher kommen den die Daten ? Unabhängig davon, ist es nicht ganz trivial aus verschiedenen Daten ein Dokument zu erzeugen. Sollten die Daten aus einer DB kommen, könnte man eventuell mit einer Mailmerge-Funktion arbeiten.

-Ich weiß nicht mit welcher Entwicklungsumgebung Du arbeitest, aber auf jeden Fall gibt es sowohl unter VC++ als auch Borland eine entsprechende Richedit Klasse bzw. Komponente

- Wenn es was komerzielles sein kann, kann ich aus persönlicher Efahrung WPTools von:
http://www.wpcubed.com/index.htm
empfehlen. Neben der erwähnten Mergefunktion kannst Du damit auch PDF Dokumente erzeugen, deren Weitergabe noch unkomplizierter sit als ein Dokument in Word-Format (Einen PDF-Reader hat jeder bzw. kann sich jeder kostenlos herunterladen

-Automationsserver
MS hat etliche Pogramme mit einer COM Schnittstelle ausgestattet, mit denen man Methoden aus diesen Programmen aufrufen kann. Dieses trifft für MS Word genauso zu, wie für Outlook, Excel usw. Wenn man diese Methoden benutzt ohne das Programm direkt aufzurufen, spricht man von einem Automationsserver

Gruß
Gerhard
 
Hallo,

-Word 2000
hier bekommst Du schon ein Problem, wenn ein Kunde Word97 installiert hat
anscheinend habe ich das Szenario nicht gut genug beschrieben. Also wir entwickeln diese Software hier für "Kunden" in unserem Werk, haben also immer im Griff, welche Word-Version sie benutzen. Das Ganze bleibt also quasi intern.
- Tabellen, Bilder Fließtext
Woher kommen den die Daten ? Unabhängig davon, ist es nicht ganz trivial aus verschiedenen Daten ein Dokument zu erzeugen. Sollten die Daten aus einer DB kommen, könnte man eventuell mit einer Mailmerge-Funktion arbeiten.
Ein Großteil der Daten wird aus der Datenbank ausgelesen und dann aufwändig verarbeitet. Bisher ist das mit VBA geschehen. Dort funktioniert die Ausgabe in Word natürlich völlig problemlos und durch den direkten Zugriff auf das Objektmodell super kompfortabel.
Jetzt soll das System aber grunderneuert werden und da haben wir auch entschieden, das ganze gleich als eigenständige Software zu implementieren.
-Ich weiß nicht mit welcher Entwicklungsumgebung Du arbeitest, aber auf jeden Fall gibt es sowohl unter VC++ als auch Borland eine entsprechende Richedit Klasse bzw. Komponente
Wir arbeiten momentan mit VisualStudio 6.
Das Problem sehe ich mittlerweile nicht mehr darin, an sich etwas in ein Word- bzw. RTF-Dokument zu schreiben, sondern vielmehr die speziellen Funktionen, die RTF und Word bieten, äquivalent nachzubilden (sich wiederholender Tabellenkopf, Ausrichtung, ...). Deswegen hätte ich gerne eine Bibliothek, die die ganzen Probleme schon einmal gelöst hat
- Wenn es was komerzielles sein kann, kann ich aus persönlicher Efahrung WPTools von:
http://www.wpcubed.com/index.htm
empfehlen. Neben der erwähnten Mergefunktion kannst Du damit auch PDF Dokumente erzeugen, deren Weitergabe noch unkomplizierter sit als ein Dokument in Word-Format (Einen PDF-Reader hat jeder bzw. kann sich jeder kostenlos herunterladen
Das sieht interessant aus. Momentan schaue ich mir http://www.x-publisher.com/ an. Leider akzeptiert der Kunde keine PDF-Dokumente, bzw will er auf jeden Fall die Möglichkeit haben, das Dokument noch bearbeiten zu können.
-Automationsserver
MS hat etliche Pogramme mit einer COM Schnittstelle ausgestattet, mit denen man Methoden aus diesen Programmen aufrufen kann. Dieses trifft für MS Word genauso zu, wie für Outlook, Excel usw. Wenn man diese Methoden benutzt ohne das Programm direkt aufzurufen, spricht man von einem Automationsserver
Ist das dann in Verbindung mit OLE oder ist das wieder etwas anderes?

Vielen Dank für deine Mühen
 
Zurück