我使用DocumentFormat.OpenXml以编程方式生成Word文档。
在conceptual content for Word中,我找不到任何标记项目的提及,以便它们可以包含在文档索引中。我可以使用哪些课程?
我做了一个非常简单的文档,其中只包含This is an apple.
,其中an apple
标记为使用Main条目进行索引: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"/>
...
答案 0 :(得分:0)
标记为要编制索引的项目是 field code 类型的XE(w:instrText
)。字段代码必须位于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);
}