OpenXmlDoc Word:如何添加标记项目以进行索引?

OpenXmlDoc Word: How to add Mark an item for indexing?

我正在使用 DocumentFormat.OpenXml 以编程方式生成 Word 文档。

conceptual content for Word 中,我找不到任何关于标记项目以便将它们包含在文档索引中的提及。 类 我可以使用什么?

我做了一个非常简单的文档,其中仅包含 This is an apple.,其中 an apple 标记为索引,主要条目:apple。 Xml内容如下:

<w:p w:rsidR="000975CB" w:rsidRDefault="00B83C06" w:rsidP="007969F3">
 <w:r>
  <w:t xml:space="preserve">This is </w:t>
 </w:r>
 <w:r w:rsidR="007969F3"><w:t>an apple</w:t></w:r>
 <w:r><w:fldChar w:fldCharType="begin"/></w:r>
 <w:r><w:instrText xml:space="preserve"> XE "</w:instrText></w:r>
 <w:r w:rsidRPr="00246108"><w:instrText>apple</w:instrText></w:r>
 <w:r><w:instrText xml:space="preserve">" </w:instrText></w:r>
 <w:r><w:fldChar w:fldCharType="end"/></w:r>
 <w:bookmarkStart w:id="0" w:name="_GoBack"/>
 <w:bookmarkEnd w:id="0"/>
 <w:r><w:t>.</w:t></w:r>
</w:p>
<w:p w:rsidR="007969F3" w:rsidRPr="007969F3" w:rsidRDefault="007969F3" w:rsidP="007969F3"/>
...

标记为索引的项目是 field code (w:instrText) of type XE. A field code has to be inside a complex field character (w:fldChar)。

示例文档中的相关标记是:

<w:r><w:fldChar w:fldCharType="begin"/></w:r>
  <w:r><w:instrText xml:space="preserve"> XE "</w:instrText></w:r>
  <w:r><w:instrText>apple</w:instrText></w:r>
  <w:r><w:instrText xml:space="preserve">" </w:instrText></w:r>
<w:r><w:fldChar w:fldCharType="end"/></w:r>

上面显示的字段代码元素可以组合在一起:

<w:r><w:instrText>XE "apple"</w:instrText></w:r>

上面生成的示例代码:

Tuple<Run,Run,Run> MarkEntryForIndex(string item)
{
    Run run0 = new Run();
     FieldChar fieldChar1 = new FieldChar() { FieldCharType = FieldCharValues.Begin };
     run0.Append(fieldChar1);
    Run run1 = new Run();
     FieldCode fieldCode1 = new FieldCode() { Space = SpaceProcessingModeValues.Preserve };
     fieldCode1.Text = " XE \"" + item + "\"";
     run1.Append(fieldCode1);
    Run run2 = new Run();
     FieldChar fieldChar2 = new FieldChar() { FieldCharType = FieldCharValues.End };
     run2.Append(fieldChar2);
    return Tuple.Create(run0, run1, run2);
}