如何在带有delphi的word模板中的id之后添加文本?

时间:2016-03-08 13:58:37

标签: delphi ms-word delphi-7

我有一个“模板”,一个常规的word文件,我需要在特定的地方插入文字。我从这里改编了代码:

http://www.swissdelphicenter.ch/torry/showcode.php?id=1304

以满足我的需求。所以我在word文件中添加了一些标识符并使​​用了replace函数。它工作正常但我无法插入备忘录的文本,因为它对于单词替换功能来说太大了......

简而言之,我需要一种方法来找到一个id(#social)并用大文本替换它...我已经看过范围函数但是不明白它是如何工作的。我需要一个例子来了解如何做到这一点。

1 个答案:

答案 0 :(得分:2)

更好的Word模板方法是在需要以编程方式添加信息的任何位置插入书签。在Word模板中,只需突出显示要转换为书签的范围,然后使用Insert -> Bookmark或按 Ctrl + Shift + F5

enter image description here

为书签指定名称,然后插入文字,如:

var
  LWordDoc : WordDocument;
  R : WordRange;

// ...open the document, etc

if LWordDoc.Bookmarks.Exists('My Bookmark') then begin
  R := LWordDoc.Bookmarks.Item('My Bookmark').Range;
  R.InsertAfter('foo');
end else begin
  // handle missinng bookmark
end;

此处,使用.InsertAfter文本将添加到书签之后。您还可以使用任何其他Range方法或属性,例如R.Text := 'foo';,将突出显示的范围替换为您提供的文字。

将书签名称存储在某种智能结构中非常有用 - 您决定如何做到这一点取决于您。