![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемы с Word.Basic [D6, WinME, WinXP]
nsvi © (2006-09-23 06:14:00)Я использую Word.Basic для пакетного конвертирования файлов Word в другие форматы файлов, например, в RTF:
procedure TForm1.CorvertDocToRtf(inname, outname: string);
var
WordApp: Variant;
begin
try
WordApp := CreateOleObject('Word.Basic');
if not VarIsEmpty(WordApp) then
begin
WordApp.FileOpen(inname);
WordApp.FileSaveAs(Name := outname, Format := 6);
WordApp.AppClose;
WordApp := Unassigned;
end;
except
showmessage('Error create Ole Object');
end;
end;
Работает прекрасно но... При конвертировании запускается кратковременно само окно Word-а, а это неприятно отражается на интерфейсе моей программы. Как не допустить запуск окна Word? или в Word.Basic это невозможно? К сожалению, поиск ответа в Интернете ничего не дал, поиск описания методов Word.Basic тоже. А есть ли возможность у Word.Application сохранять в другом формате, я не знаю, об этом также ничего не нашел.
nsvi (2006-09-24 06:02:00) [1]БОЛЬШОЕ СПАСИБО! Этот код работает как надо!
EvS (2006-09-23 14:44:00) [2]
uses ComObj, WordXP(Word2000);
procedure TForm1.Button1Click(Sender: TObject);
var FileName:String;
begin
FileName:= 'c:\Document.doc';
If ConvertDoc2Rtf(FileName) then
begin
ShowMessage('Word document has been converted to .rtf');
RichEdit1.Lines.LoadFromFile(FileName);
end;
end;
function ConvertDoc2Rtf(var FileName: string) : Boolean;
var
oWord: OleVariant;
oDoc: OleVariant;
begin
Result := False;
try
oWord := GetActiveOleObject('Word.Application');
except
oWord := CreateOleObject('Word.Application');
end;
oWord.Documents.Open(FileName);
oDoc := oWord.ActiveDocument;
FileName := ChangeFileExt(FileName, '.rtf');
oDoc.SaveAs(FileName,wdFormatRTF);
oWord.ActiveDocument.Close(EmptyParam, EmptyParam, EmptyParam);
oWord.Quit(EmptyParam, EmptyParam, EmptyParam);
oDoc := VarNull;
oWord := VarNull;
Result := True;
end;
nsvi (2006-09-23 13:08:00) [3]Спасибо, но чтоб просто поменять расширение, как делает этот код, не надо запускать Word.Application!
Больше он ничего не делает и формат файла с doc на rtf не меняет.
EvS (2006-09-23 10:49:00) [4]А есть ли возможность у Word.Application
> сохранять в другом формате, я не знаю, об этом также ничего
> не нашел.
http://delphiworld.narod.ru/base/save_word_like_rtf.html