Word控件Spire.Doc 【表单域】教程(七):在 C#、VB.NET 中的 Word 中创建对书签的交叉引用

我们已经演示了如何在创建 word 文档时添加一个全新的 TOC 。本文将向您展示如何将 TOC 插入到现有的带有样式的 Word 文档中,并从 Word 文档中删除 TOC。

Spire.Doc for.NET 最新下载

交叉引用是指同一文档中其他地方的相关信息。您可以创建对任何现有项目的交叉引用,例如标题、脚注、书签、题注和编号段落。本文将向您展示如何使用 Spire.Doc 与 C# 和 VB.NET 创建对书签的交叉引用。

第 1 步:创建一个 Document 实例。

Document doc = new Document();
Section section = doc.AddSection();

第 2 步:插入书签。

Paragraph paragraph = section.AddParagraph();
paragraph.AppendBookmarkStart("MyBookmark");
paragraph.AppendText("Text inside a bookmark");
paragraph.AppendBookmarkEnd("MyBookmark");

第 3 步:创建一个交叉引用字段,并通过书签名称将其链接到书签。

Field field = new Field(doc);
field.Type = FieldType.FieldRef;
field.Code = @"REF MyBookmark \p \h";

第 4 步:添加一个段落,并将字段插入该段落。

paragraph = section.AddParagraph();
paragraph.AppendText("For more information, see ");
paragraph.ChildObjects.Add(field);

第 5 步:在段落中插入一个 FieldSeparator 对象,作为字段中的分隔符。  

FieldMark fieldSeparator= new FieldMark(doc, FieldMarkType.FieldSeparator);
paragraph.ChildObjects.Add(fieldSeparator);

第 6 步:设置交叉引用字段的显示文本。

TextRange tr = new TextRange(doc);
tr.Text = "above";
paragraph.ChildObjects.Add(tr);

第 7 步:在段落中插入一个 FieldEnd 对象,用于标记字段的结束。

FieldMark fieldEnd = new FieldMark(doc, FieldMarkType.FieldEnd);
paragraph.ChildObjects.Add(fieldEnd);

第 8 步:保存到文件。

doc.SaveToFile("output.docx", FileFormat.Docx2013);

输出

交叉引用显示为将读者带到引用项目的链接。

Word控件Spire.Doc 【表单域】教程(七):在 C#、VB.NET 中的 Word 中创建对书签的交叉引用_第1张图片

完整代码

[C#]

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
namespace CreatCR
{
class Program
{
static void Main(string[] args)
{
Document doc = new Document();
Section section = doc.AddSection();
//create a bookmark
Paragraph paragraph = section.AddParagraph();
paragraph.AppendBookmarkStart("MyBookmark");
paragraph.AppendText("Text inside a bookmark");
paragraph.AppendBookmarkEnd("MyBookmark");
//insert line breaks
for (int i = 0; i < 4; i++)
{
paragraph.AppendBreak(BreakType.LineBreak);
}
//create a cross-reference field, and link it to bookmark
Field field = new Field(doc);
field.Type = FieldType.FieldRef;
field.Code = @"REF MyBookmark \p \h";
//insert field to paragraph
paragraph = section.AddParagraph();
paragraph.AppendText("For more information, see ");
paragraph.ChildObjects.Add(field);
//insert FieldSeparator object
FieldMark fieldSeparator = new FieldMark(doc, FieldMarkType.FieldSeparator);
paragraph.ChildObjects.Add(fieldSeparator);
//set display text of the field
TextRange tr = new TextRange(doc);
tr.Text = "above";
paragraph.ChildObjects.Add(tr);
//insert FieldEnd object to mark the end of the field
FieldMark fieldEnd = new FieldMark(doc, FieldMarkType.FieldEnd);
paragraph.ChildObjects.Add(fieldEnd);
//save file
doc.SaveToFile("output.docx", FileFormat.Docx2013);

}
}
}

[VB.NET]

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Namespace CreatCR
Class Program
Private Shared Sub Main(args As String())
Dim doc As New Document()
Dim section As Section = doc.AddSection()
'create a bookmark
Dim paragraph As Paragraph = section.AddParagraph()
paragraph.AppendBookmarkStart("MyBookmark")
paragraph.AppendText("Text inside a bookmark")
paragraph.AppendBookmarkEnd("MyBookmark")
'insert line breaks
For i As Integer = 0 To 3
paragraph.AppendBreak(BreakType.LineBreak)
Next
'create a cross-reference field, and link it to bookmark
Dim field As New Field(doc)
field.Type = FieldType.FieldRef
field.Code = "REF MyBookmark \p \h"
'insert field to paragraph
paragraph = section.AddParagraph()
paragraph.AppendText("For more information, see ")
paragraph.ChildObjects.Add(field)
'insert FieldSeparator object
Dim fieldSeparator As New FieldMark(doc, FieldMarkType.FieldSeparator)
paragraph.ChildObjects.Add(fieldSeparator)
'set display text of the field
Dim tr As New TextRange(doc)
tr.Text = "above"
paragraph.ChildObjects.Add(tr)
'insert FieldEnd object to mark the end of the field
Dim fieldEnd As New FieldMark(doc, FieldMarkType.FieldEnd)
paragraph.ChildObjects.Add(fieldEnd)
'save file
doc.SaveToFile("output.docx", FileFormat.Docx2013)

End Sub
End Class
End Namespace

 欢迎下载|体验更多E-iceblue产品 技术交流Q群(767755948)  

你可能感兴趣的:(Spire.Doc,入门教程,c#,.net,jvm,spire.doc教程,spire.doc下载)