Nevis, Используй OLE. Легко и не принуждённо делается.
правда у меня твм затык вышел. Вариант для CBuilder могу завтречка выложить(если на счету деньги останутся). Там довольно простые функции. Говорят описание можно найти в хелпах для разработчиков на VB в MS Office правда они обычно не установленны в стандартной конфигурации.
Хотя нет завтра не выложу выложу сейчас.
bool ServerIsRunning;
IUnknown *Unknown;
HResult Result;
AnsiString AppProgID;
Variant App;
Variant Doc;
AppProgID = "Word.Application";
ServerIsRunning = false;
Result = GetActiveObject(ProgIDToClassID(AppProgID),NULL,&Unknown);
if (Result == MK_E_UNAVAILABLE) {
App = CreateOleObject(AppProgID);
}
else {
App = GetActiveOleObject(AppProgID);
ServerIsRunning = true;
}
App.OlePropertySet("Visible",true);
App.OlePropertyGet("Documents",&Doc);
Doc.OleFunction("Add");
if (!ServerIsRunning)
App.OleFunction("Quit");
App = Unassigned;
/* WA->Connect();
WA->set_Visible(true);
// WA->ShowMe();
// WA->Visible = true;
// WA->Documents->Add();
_Document *WD = WA->Documents->Add();
WD->Paragraphs->Add();//->set_Style((Variant) "Heading 1");
// WD->Paragraphs->Item(1)->get_Style("");
// WD->Paragraphs->Item(1)->set_Style((Variant) "Heading 1");
Range *DR = WD->Paragraphs->Item(1)->get_Range();
// Range *DR = WD->Range(0,0);
DR->set_Start(0);
DR->set_End(0);
DR->set_ShowAll(true);
DR->set_Style((Variant) "Heading 1");
DR->InsertAfter((wchar_t *) "HELP HELP HELP");
DR->set_Text((wchar_t *) "HELP HELP HELP");
WD->TextEncoding = msoEncodingCyrillic;
// WA->Documents->Add();
;*/
Я в коде игрался с двумя вариантами обращения к OLE. Первый не закоментенный это обращение непосредственно к OLE, второй закоментенный это предварительно импортировал библиотеку для работы с вордом в билдер. Должен заметить второй вариант компилится так долго, что хочется застрелится или застрелить.
Возник при работе с этим делом вопрос вот эти две процедуры
DR->InsertAfter((wchar_t *) "HELP HELP HELP");
DR->set_Text((wchar_t *) "HELP HELP HELP");
по идее должны были вставить текст в документ, но они меня проигнорировали а вот функция создания абзаца и стиля для него нормально работаю.
Странно всё это.
Может кто сталкивался. Word 2003, Винда XP.