2010-07-05 15 views
10

Ich verwende Qt 4.5.3 und Windows XP. Ich brauche meine Anwendung, um Dokumente zu generieren, die die Informationen enthalten, die verwendet und generiert werden. Die Informationen, die verwendet werden, sind nur Zeichenfolgen (QString, um genauer zu sein) und die Informationen, die generiert werden, sind Zeichenfolgen und Bilder sowie.Generieren von Word-Dokumenten (.doc/.odt) über C++/Qt

Ich möchte Dokumente ein MS Word-Dokument sein (.doc) oder ein Open Document Format (.odt) sein Auch ich will die Dokumente mit Schriften, Bilder, Tabellen von Daten, Farben und alle einige Hintergrund formatiert werden .

Ich habe die Schaffung PDF Dateien erfolgt mit QTextDocument, QTextCursor und QPrinter. Aber als ich versuchte, das gleiche QTextDocument für odt anzuwenden, endete ich mit nur Formatfehler.

Gibt es eine Möglichkeit, solche Dokumente mit anderen Bibliotheken zu generieren, die C++ verwenden? Wie benutzt ihr solche Dokumente (.odt /. doc) in C++? Alle Hinweise, Links, Beispiele dazu sind willkommen.

Antwort

8

Ich habe dies über die Qt Weg getan. d. h. unter Verwendung des Moduls ActiveQt.

Die Referenzdokumentation für MS Word erhalten durch werden,

MSDN documentation, die tatsächlich auf die VBAWD10.chm Datei darauf, dass der ActiveX-APIs für MS Word hat.

Die Word-Anwendung kann durch

QAxWidget wordApplication("Word.Application"); 

Die Unterobjekte des Wortes Anwendung initialisiert werden kann durch die Funktion,

QAxBase::querySubObject() 

Für zB erhalten:

QAxObject *activeDocument = wordApplication.querySubObject("ActiveDocument"); 

Übergeben des erhaltenen Unterobjekts als Argument

QVariant QAxBase::asVariant() const 

Funktionsaufrufe das Wort Objekt beinhalten, können mit der Funktion,

QAxBase::dynamicCall() 

Für zB genannt werden:

activeDocument->dynamicCall("Close(void)"); 

Nach einer ziemlich gute Menge an Kampf und einige überzeugt, es ist funktioniert gut.:)

Hoffe es hilft für diejenigen, die alle nach ähnlichen Lösungen suchen ...