忽略DocX文件中的拼写错误

时间:2015-02-16 20:33:17

标签: ms-word openxml

使用OpenXML,我将一些文本插入到我知道将被标记为拼写不正确的文档中(因为它是产品名称)并且在文件中将标记为愤怒的红线/波浪形在Word中打开。如何标记XML以使其知道该单词的拼写是否正确?

我已经尝试过使用ProofError,将它放在与我的段落和运行相关的不同位置以及不同的类型值,但无法弄清楚是否有&#39 ;使用它来标记错误的方法。

3 个答案:

答案 0 :(得分:2)

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

让我们说你在奔跑中得到了一个词:

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

你可以告诉单词客户端的拼写/语法检查引擎忽略这个单词进行检查,在运行属性中如下所示

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

您还可以全局禁用拼写/语法检查引擎,通过在文档settings部分中指定为:

来停止查找文档中的错误
<w:proofState w:spelling="clean" w:grammar="clean"/>

以上内容阻止客户端的拼写/语法检查启动,直到下一次对文档进行编辑为止。

希望这会有所帮助。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

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

这在以下情况下非常有用 - 在我的情况下 - 您可以从模板中自动生成文档,其中知道所有文本都拼写正确。此外,当您动态添加的内容来自外部来源或充满特定于域的词语时 - 例如药品术语。