【问题标题】:Word - Replace text by hyperlinksWord - 用超链接替换文本
【发布时间】:2017-10-15 14:00:21
【问题描述】:

我正在开发一个 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.ReplaceAllproperty。

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

有没有办法使用Replacemethod 用超链接替换一段文本? 换句话说,我想找到一种方法来做到这一点:

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

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

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

感谢阅读。

【问题讨论】:

    标签: c# ms-word vsto


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 1970-01-01
      • 2023-01-25
      相关资源
      最近更新 更多