Hi
Thanks for
your request. You can change formatting of TOC items by changing Toc1, Toc2…Toc9
styles. Also, in your code you explicitly specify formatting of text in
headings. I think it would be better to set this formatting in styles. Please
see the following code:
Public Sub
CreateReport()
Dim newdoc As New Document()
newdoc.RemoveAllChildren()
Dim dbr As New DocumentBuilder(newdoc)
With dbr.PageSetup
.PaperSize
= PaperSize.A4
.Orientation = Orientation.Portrait
.TopMargin
= ConvertUtil.MillimeterToPoint(20)
.BottomMargin = ConvertUtil.MillimeterToPoint(20)
.LeftMargin
= ConvertUtil.MillimeterToPoint(25)
.RightMargin = ConvertUtil.MillimeterToPoint(25)
mxHeaderFooterWidth
= .PageWidth - .LeftMargin - .RightMargin
End With
dbr.CurrentSection.PageSetup.DifferentFirstPageHeaderFooter = True
' --- Setup styles of headings and toc items ---
SetupStyles(newdoc)
' --- Insert Table of Contents ---
BuildToc(newdoc, dbr)
dbr.InsertBreak(BreakType.SectionBreakNewPage)
dbr.CurrentSection.PageSetup.TextColumns.Spacing =
ConvertUtil.MillimeterToPoint(10)
dbr.CurrentSection.PageSetup.TextColumns.SetCount(2)
' --- Insert Content
---
dbr.ParagraphFormat.StyleIdentifier = StyleIdentifier.Heading1
dbr.Writeln("Title 1")
dbr.ParagraphFormat.ClearFormatting()
dbr.Font.Name =
"Arial"
dbr.Font.Size =
10
dbr.Writeln("content 1 content 1 content 1 content 1 content 1
content 1 content 1 content 1 content 1 content 1 content 1 content 1 content 1
content 1 content 1")
dbr.Font.ClearFormatting()
dbr.InsertBreak(BreakType.ColumnBreak)
dbr.ParagraphFormat.StyleIdentifier = StyleIdentifier.Heading2
dbr.Writeln("Title 2")
dbr.ParagraphFormat.ClearFormatting()
dbr.Font.Name =
"Arial"
dbr.Font.Size =
10
dbr.Writeln("content 2 content 2 content 2 content 2 content
2content 2content 2content 2 content 2 content 2 content 2 content 2 content 2
content 2 content 2content 2")
dbr.Font.ClearFormatting()
dbr.InsertBreak(BreakType.ColumnBreak)
dbr.ParagraphFormat.StyleIdentifier = StyleIdentifier.Heading3
dbr.Writeln("Title 3")
dbr.ParagraphFormat.ClearFormatting()
dbr.Font.Name =
"Arial"
dbr.Font.Size =
10
dbr.Writeln("content 3 content 3 content 3 content 3 content 3
content 3 content 3 content 3 content 3 content 3 content 3 content 3 content 3
content 3 content 3 content 3")
dbr.Font.ClearFormatting()
newdoc.UpdateFields()
SaveOpenDoc(newdoc)
End Sub
Public Sub BuildToc(ByVal newdoc As
Document, ByVal dbr As
DocumentBuilder)
With dbr
.StartBookmark("toc")
.Font.Name
= "Arial"
.Font.Size
= 12
.Writeln("Contents")
.InsertTableOfContents("\o
""1-4"" \h \z \u")
.EndBookmark("toc")
End With
End Sub
Private Sub
SetupStyles(ByVal doc As
Document)
' To change formatting of toc items you should change Toc1,
Toc2...Toc9 styles.
Dim toc1 As Style =
doc.Styles(StyleIdentifier.Toc1)
Dim toc2 As Style =
doc.Styles(StyleIdentifier.Toc2)
Dim toc3 As Style =
doc.Styles(StyleIdentifier.Toc3)
With toc1
.Font.Name
= "Arial"
.Font.Size
= 10
End With
With toc2
.Font.Name
= "Arial"
.Font.Size
= 10
End With
With toc3
.Font.Name
= "Arial"
.Font.Size
= 10
End With
' Setup heading styles.
Dim h1 As Style =
doc.Styles(StyleIdentifier.Heading1)
Dim h2 As Style =
doc.Styles(StyleIdentifier.Heading2)
Dim h3 As Style =
doc.Styles(StyleIdentifier.Heading3)
With h1
.Font.Name
= "ITC Stone Sans Medium"
.Font.Size
= 16
End With
With h2
.Font.Name
= "ITC Stone Sans Medium"
.Font.Size
= 12
End With
With h3
.Font.Name
= "ITC Stone Sans Medium"
.Font.Size
= 10
End With
End Sub
Hope it will
help you to achieve what you need.
Best regards,