如何使用Delphi MSWord自动化对齐段落?

时间:2014-05-25 14:31:54

标签: delphi ms-word automation

我想将文本对齐到中心,我不知道如何实现它。 这是我的代码:

  try
    MsWord := GetActiveOleObject('Word.Application');
  except
    try
      MsWord := CreateOleObject('Word.Application');
      MsWord.Visible := True;
    except
      Exception.Create('Error');
    end;
  end;
  MSWord.Documents.Add;
  MSWord.Selection.Font.Size := 22;
  MSWord.Selection.Font.Bold := true;
  MSWord.Selection.TypeText(#13#10);
  MSWord.Selection.TypeText('I want this to be center-aligned'); 
  ...
  MSWord.ActiveDocument.SaveAs('C:\doc2.doc');

请帮忙。

由于

1 个答案:

答案 0 :(得分:4)

这对我有用:

procedure TForm1.Button1Click(Sender: TObject);
var
  MSWord : OleVariant;
begin
  try
    MsWord := GetActiveOleObject('Word.Application');
  except
    try
      MsWord := CreateOleObject('Word.Application');
      MsWord.Visible := True;
    except
      Exception.Create('Error');
    end;
  end;
  MSWord.Documents.Add;
  MSWord.Selection.Font.Size := 22;
  MSWord.Selection.Font.Bold := true;
  MSWord.Selection.TypeText(#13#10);
  MSWord.Selection.TypeText('I want this to be center-aligned');
  MSWord.Selection.ParagraphFormat.Alignment := wdAlignParagraphCenter;
  MSWord.ActiveDocument.SaveAs('C:\doc2.doc');
end;

顺便说一下,自己找到答案的方法是进入Word,开始录制宏,执行操作,停止录制然后编辑宏以查看Word生成的代码。如果您使用后期绑定(通过OleVariant从Delphi访问Word),将其转换为Delphi通常是相当简单的,但如果您使用早期绑定,可能会有点长篇大论,因为早期绑定需要所有参数指定,而后期绑定允许你将大部分内容留出。