''
'' This code is part of Document Solutions for Word demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.Globalization
Imports System.IO
Imports GrapeCity.Documents.Word
Imports GrapeCity.Documents.Word.Fields
'' This sample shows how to insert a TOC (Table of Contents) field
'' into an existing DOCX Word document.
Public Class AddTocToDocx
Function CreateDocx() As GcWordDocument
Dim doc = New GcWordDocument()
doc.Load(Path.Combine("Resources", "WordDocs", "JsFrameworkExcerpt.docx"))
Dim tocOpts = New TocFieldOptions(doc)
tocOpts.EntryFormatting.CreateHyperlink = True
Dim fo = New FindOptions(doc)
fo.FormattingOptions.ParagraphFormat.PageBreakBefore = True
Dim find = doc.Body.Find("", fo).FirstOrDefault()
Dim para As Paragraph
If find IsNot Nothing Then
para = find.Range.ParentParagraph.GetRange().Paragraphs.Insert("Table of Contents", doc.Styles(BuiltInStyleId.TocHeading), InsertLocation.Before)
para = para.GetRange().Paragraphs.Insert(InsertLocation.After)
Else
para = doc.Body.Paragraphs.Insert("Table of Contents", doc.Styles(BuiltInStyleId.TocHeading), InsertLocation.Start)
End If
para.AddComplexField(tocOpts).Update(New GrapeCity.Documents.Word.Layout.WordLayoutSettings() With {
.FontCollection = Util.FontCollection,
.Culture = CultureInfo.GetCultureInfo("en-US")
})
Return doc
End Function
End Class