Как сохранить текст MS Word в другом формате?

Open a new Application and place:
a button named Button3,
a RitchText object named WordEditor
and an OpenDialog component.
From now on, you can browse for any *.doc file and load it into the RitchText object.
NOTE: Format:=6 instructs Word to save the file as RTF. Extension is not enough.
Other File Formats:
Argument Format File Format
0 Normal (Word format)
1 Document Template
2 Text Only (extended characters saved in ANSI character set)
3 Text+Breaks (plain text with line breaks; extended characters saved in ANSI character set)
4 Text Only (PC-8) (extended characters saved in IBM PC character set)
5 Text+Breaks (PC-8) (text with line breaks; extended characters saved in IBM PC character set)
6 Rich-text format (RTF)

procedure TImport_Form.ToolButton3Click(Sender: TObject);

var

 WordApp: Variant;

begin

 if OpenDialog1.Execute then

 begin

  Edit1.Text := ExtractFileName(OpenDialog1.FileName);

  StatusBar1.SimpleText := OpenDialog1.FileName;

  WordApp := CreateOleObject('Word.Basic');

  if not VarIsEmpty(WordApp) then

  begin

  WordApp.FileOpen(OpenDialog1.FileName);

  WordApp.FileSaveAs(Name := 'c:\temp_bb.rtf', Format := 6);

  WordApp.AppClose;

  WordApp := Unassigned;

  WordEditor.Lines.LoadFromFile('c:\temp_bb.rtf');

  end

  else

  ShowMessage('Could not start MS Word');

 end;

end;

How to prevent word from opening password-protected files or resume wizard files and sometimes causing application to hang ?
The sollution is to add the folowing query before openning the document:
if WordApp.ActiveDocument.HasPassword = True then
MsgBox("Password Protected");
You can even preset the password propery as:
WordApp.Password := 'mypassword";
NOTE: If the above code generates an "Undefined property: ActiveDocument" change the:
CreateOleObject('Word.Basic');
with
CreateOleObject('Word.Application');
Взято с Delphi Knowledge Base: http://www.baltsoft.com/

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...