Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Проблемы с Word.Basic   Найти похожие ветки 

 
nsvi   (2006-09-23 06:14) [0]

Я использую 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 сохранять в другом формате, я не знаю, об этом также ничего не нашел.


 
EvS ©   (2006-09-23 10:49) [1]

А есть ли возможность у Word.Application
> сохранять в другом формате, я не знаю, об этом также ничего
> не нашел.

http://delphiworld.narod.ru/base/save_word_like_rtf.html


 
nsvi   (2006-09-23 13:08) [2]

Спасибо, но чтоб просто поменять расширение, как делает этот код, не надо запускать Word.Application!
Больше он ничего не делает и формат файла с doc на rtf не меняет.


 
EvS ©   (2006-09-23 14:44) [3]

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-24 06:02) [4]

БОЛЬШОЕ СПАСИБО! Этот код работает как надо!



Страницы: 1 вся ветка

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
2-1161623431
HelloWord
2006-10-23 21:10
2006.11.05
Версия файла


11-1137435264
Vladimir Kladov
2006-01-16 21:14
2006.11.05
RefInc / RefDec - пора разобраться


15-1161131078
SerJaNT
2006-10-18 04:24
2006.11.05
Сравнение 2х цветов


15-1160854249
Ученик чародея
2006-10-14 23:30
2006.11.05
Как вы относитесь к фильмам, весь смысл которых -


15-1161170065
_Mouse_
2006-10-18 15:14
2006.11.05
Поиск изменений в коде.