首页 > 解决方案 > 如何在 Word 中强调文本,而不改变文档,就像在 Grammarly 中一样

问题描述

我正在为 Word(以及 Outlook)编写一个 VSTO 插件。我想强调文本的某些部分(检测到的错误)。据我所知,在 Microsoft.Office.Interop.Word 或其他库中没有这种强调的 API。

但是 Grammarly (www.grammarly.com) 找到了一种方法:

运行语法的 Word 屏幕转储

有谁知道你怎么能以同样的方式做到这一点?

标签: ms-wordvstooffice-interopoffice-addins

解决方案


我相信最好的方法是将所需的文本放入 aRange然后应用以下格式:

myRange.Font.Underline = Microsoft.Office.Interop.Word.WdUnderline.wdUnderlineThick;
myRange.Font.UnderlineColor = Microsoft.Office.Interop.Word.WdColor.wdColorRed;

这将如何与 Grammerly 一起使用

正如之前在问题的评论中指出的那样,添加重点的唯一方法是临时更改文档,这似乎是 Grammerly 以非常聪明的方式做的事情。Grammerly 仅在单击Open GrammerlyGrammerly 功能区上的按钮时才有效。如果你做一个简单的实验,你也许可以观察到 Grammerly 是如何控制它的临时变化的。

首先创建一个未保存的文档,其中包含一些显示波浪红线的拼写错误的单词。然后单击Open Grammerly按钮。请注意,加载项关闭拼写检查并将其替换为在文档中生成的它自己的 Web 触发标记,类似于上面代码生成的标记。然后保存文档。如果你仔细看,你会看到一个小小的闪烁,红色粗下划线消失了片刻。那是Document.BeforeSave在保存文档之前删除他们的标记的事件。通过依赖用户操作,Grammerly 控制标记出现的时间点。然后它使用代码和事件来确保标记不会与文档一起保存或干扰其他操作。

您可能想要查看的一些事件是:

Document.BeforeSave 事件

Document.BeforePrint 事件

Document.BeforeClose 事件


推荐阅读