忽略 DocX 文件中的拼写错误

Ignore spelling error in DocX file

使用 OpenXML,我在文档中插入了一些文本,我知道这些文本会被标记为拼写错误(因为它是产品名称)并且会被标记为愤怒的红色 line/squiggly 在 Word 中打开文件时。我怎样才能标记 XML 以便它知道该词的拼写是正确的?

我试过摆弄 ProofError,将它放在与我的段落和 运行 相关的不同位置,并使用不同的类型值,但无法弄清楚是否有一种使用它来将某些东西标记为不是错误的方法。

ProofError实际上是用愤怒的红线标记文本运行。要排除 运行 中的文本以进行拼写/语法检查,请使用 noProof

假设您在 运行 中得到一个词:

<w:p>
  <w:r>
    <w:t>Cfgcfgcyhgjguih</w:t>
   </w:r>
</w:p>

您可以在运行属性中告诉spell/grammar client这个词的检查引擎忽略这个词进行检查,如下

<w:p>
  <w:rPr>
    <w:noProof w:val="true"/>
  </w:rPr>
  <w:r>
    <w:t>Cfgcfgcyhgjguih</w:t>
  </w:r>
</w:p>

您还可以全局禁用 spell/grammar 检查引擎以停止在文档中查找错误,方法是在文档 settings 部分指定为:

<w:proofState w:spelling="clean" w:grammar="clean"/>

以上内容阻止了客户端的 spell/grammar 检查启动,直到对文档进行下一次编辑。

希望这对您有所帮助。

刚刚在 c# 中添加了代码片段。

正在创建 NoProof class 的实例并将其值设置为 true,然后附加到 RunProperties

的实例
   NoProof np = new NoProof();
   np.Val = OnOffValue.FromBoolean(true);
   runProp.Append(np);

如果您使用的是 SDK,则可以执行以下操作来隐藏整个文档中的所有拼写错误:

var hideSpellingErrors = new HideSpellingErrors();            
hideSpellingErrors.Val = OnOffValue.FromBoolean(true);
document.MainDocumentPart.Document.Append(hideSpellingErrors);

当您从您知道所有文本拼写正确的模板自动生成文档时,这会很有用。此外,当您动态添加的内容来自外部来源或充满特定领域的词时 - 例如医药术语。