2010-07-05 22 views
10

Qt 4.5.3 ve Windows XP kullanıyorum. Uygulamam ve kullanılan bilgileri içeren belgeleri oluşturmak için uygulamanıza ihtiyacım var. Kullanılmakta olan bilgi sadece dizgiler olacak (daha spesifik olması için QString) ve üretilen bilgiler de dizgiler ve görüntüler olacaktır.Word belgeleri (.doc/.odt) C++/Qt aracılığıyla oluşturuluyor

Ben belgeleri (.doc) MS word belgesi olarak veya bir Açık Belge Biçimi (.odt) Ayrıca ben belgeler verilerin yazı tipleri, resimler, tablolar ile biçimlendirilmiş olmak istiyorum olabilir istiyoruz bazı arka plan renkleri ve tüm .

Ben yaratma derginin PDF QTextDocument, QTextCursor ve QPrinter kullanarak dosyaları yaptık. Ama aynı odt için aynı QTextDocument'u kullanmaya çalıştığımda, ben sadece biçim hatası ile bitti.

C++ kullanan diğer kütüphaneleri kullanarak bu tür belgeleri oluşturmanın bir yolu var mı? Siz bu tür belgeleri oluşturmak için nasıl kullanıyorsunuz (.odt /. doc) C++? Herhangi bir işaretçi, bağlantı, bununla ilgili örnekler memnuniyetle karşılanır.

cevap

8

Bunu Qt yoluyla yaptım. ActiveQt modülünü kullanarak.

MS Word referans belgeler, yoluyla elde edilebilir aslında MS Word ActiveX apis sahip VBAWD10.chm dosyaya işaret

MSDN documentation

.

Word uygulama

QAxBase::querySubObject() 

örneğin için,

QAxWidget wordApplication("Word.Application"); 

fonksiyonu sayesinde elde edilebilir kelimesinin uygulamasının alt nesneler tarafından ilkleyebiliriz:

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

Elde edilen alt nesneyi argüman olarak geçmek için,

.210
QVariant QAxBase::asVariant() const 

kullanarak işlevini kullanarak çağrılabilir kelime nesneyi içeren her türlü fonksiyon çağrıları , örneğin için

QAxBase::dynamicCall() 

: mücadelesi ve birkaç ikna oldukça iyi bir miktar sonra

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

, bu kadar iyi çalışıyor.

Tüm benzer çözümler arayanlar için yardımcı olur umarım ...