Главная страница
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.48 MB
Время: 0.043 c
6-1150176235
piople
2006-06-13 09:23
2006.11.05
Поиск по ftp сервера


15-1160664532
Александр Иванов
2006-10-12 18:48
2006.11.05
Существуют ли в России единые базы нормативных документов?


3-1157714659
NotGooDP
2006-09-08 15:24
2006.11.05
Проблема с передачей параметров


2-1161322857
_Mouse_
2006-10-20 09:40
2006.11.05
Привязка открытия сайта на кнопку в программе.


15-1160584602
Pazitron_Brain
2006-10-11 20:36
2006.11.05
Есть кто из Казани?