Fred.Orange

首页 CNDEV 网志 联络 (RSS 2.0) (Atom) 登录
  随笔 124 :: 收藏 2 :: 评论 0 :: 寻迹: 0

随笔

随笔归档

收藏

图库

To me

开发论坛

魔兽论坛

去朋友的线

// Word 文档 转换成 Text 文档
// Created 2004-6-28
// @author pal

// windows2003, office2003, delphi7

// uses WordXP, Variants

TDoc2Text = class(TObject)
private
  FWordApp: TWordApplication;
  FWordDoc: TWordDocument;
  FIsEnable: Boolean;
public
  constructor Create;
  destructor  Destroy; override;
  function  Transfer(DocFileName, TxtFileName: string): Boolean;

  property IsEnable: Boolean   read FIsEnable write FIsEnable;
end;


{ TDoc2Text }

constructor TDoc2Text.Create;
begin
  FWordApp   := TWordApplication.Create(nil);
  FWordDoc   := TWordDocument.Create(nil);
 
  try
    FWordApp.Connect;
    FWordApp.Visible := False;
    {Turn Spell checking of because it takes a long time if enabled and slows down Winword}
    FWordApp.Options.CheckSpellingAsYouType := False;
    FWordApp.Options.CheckGrammarAsYouType  := False;

    FIsEnable := True;
  except
    FIsEnable := False;
    Abort;
  end;
end;

destructor TDoc2Text.Destroy;
begin
  try
    FWordApp.Quit;
    FWordApp.Disconnect;
  except
    on E: Exception do
    begin
      FWordApp.Disconnect;
    end;
  end;

  FreeAndNil(FWordApp);
  FreeAndNil(FWordDoc);
 
  inherited;
end;


function TDoc2Text.Transfer(DocFileName, TxtFileName: string): Boolean;
var
  FileName: OleVariant;
  Index: OleVariant;
  FileFormat: OleVariant;
  ovVisible: OleVariant;
begin
  Result := False;
  if not FIsEnable then
    Exit;

  FileName := DocFileName;
  try
    // EmptyParam 空参数 
    ovVisible := False;   
    FWordApp.Documents.Open2000(FileName, EmptyParam, EmptyParam, EmptyParam,
                                EmptyParam, EmptyParam, EmptyParam,
                                EmptyParam, EmptyParam,
                                EmptyParam, EmptyParam, ovVisible);
                                      
    Index := 1;
    FWordDoc.ConnectTo(FWordApp.Documents.Item(Index));
    FileName   := TxtFileName;
    FileFormat := wdFormatText;
    FWordDoc.SaveAs2000(FileName, FileFormat);
    FWordDoc.Disconnect;
    FWordApp.Documents.Item(Index).Close(EmptyParam, EmptyParam, EmptyParam);

    Result := True;
  except
    Result := False;
    Abort;
  end;
end;

posted on 2004-06-28 16:34

Feedback

# re: Word 文档 转换成 Text 文档 2004-06-28 18:13:00 piip
恩,参考一下

发表评论

标题:  
署名:  
链接:
内容:
验证码: