2016-03-08 70 views
0

我有一个“模板”,一个普通的单词文件,我需要在特定的地方插入文本。我适应代码从这里:如何在delphi中使用word模板中的id后添加文本?

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

适合我的需要。所以我在word文件中添加了一些标识符并使​​用替换函数。它工作正常,但我不能这样做,插入一个备忘录的文本,因为它是太大的单词替换功能...

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

回答

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';)将突出显示的范围替换为您提供的文本。

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

+0

非常感谢,男士。我最终使用替换函数来替换id为'',然后调用typetext,因为范围已经在位。但我从现在开始肯定会使用书签。 – PabloGB

相关问题