单词 - 通过超链接替换文本

时间:2017-05-16 13:03:22

标签: c# ms-word vsto

我正在研究一个MS-Word插件,它读取文档的内容并用超链接替换每个特定单词的出现。

到目前为止,我想出了这个工作算法。

// Initializes the Find parameters
searchRange.Find.ClearFormatting();
searchRange.Find.Forward = true;
searchRange.Find.Text = "foo";
do
{  
      searchRange.Find.Execute(Wrap: Word.WdFindWrap.wdFindStop);

      if (searchRange.Find.Found)
      {
           // Creates a Hyperlink at the found location in the current document 
           this.WordDocument.Hyperlinks.Add(searchRange, externalLink, link, "bar");
      }
      searchRange.Find.Execute(Wrap: Word.WdFindWrap.wdFindStop);
} while (searchRange.Find.Found);

此代码有效,但在较大的文档上可能会很慢。因此,我不想逐个添加超链接,而只想使用Find.Replacement对象和WdReplace.ReplaceAll属性。

但是,我无法通过超链接替换我的搜索结果。

有没有办法用Replace方法用超链接替换一段文字? 换句话说,我想找到一种方法:

Find.Replacement.Text = new Hyperlink(...);

另一方面,我已经看到,通过在Word中点击Alt + F9,我们可以看到超链接作为代码。 代码如下所示: { HYPERLINK \l "link" \o "Caption" }

另一个解决方案是能够将文本替换设置为该字符串并使Word解释它,从而创建链接。

感谢阅读。

1 个答案:

答案 0 :(得分:1)

据我所知,字段只能以编程方式插入,或者使用CTRL-F9。我看到有两个可能的原因:

  • 它们不是简单的文字。它们有两个范围,CodeResult,其中只有一个会随时显示。
  • 除非有一个特殊的机制来创建一个代码,否则用户如何插入看起来像代码但不应该是一个代码的文本?