Headers.vb
- ''
- '' This code is part of Document Solutions for Word demos.
- '' Copyright (c) MESCIUS inc. All rights reserved.
- ''
- Imports System.IO
- Imports System.Drawing
- Imports GrapeCity.Documents.Word
-
- '' Shows how to add headers and footers to a document.
- Public Class Headers
- Public Function CreateDocx() As GcWordDocument
- Const NPARS = 30
-
- Dim doc = New GcWordDocument()
-
- '' Add a section and some text to it
- Dim sec1 = doc.Body.Sections.First
- Dim pars1 = sec1.GetRange().Paragraphs
- pars1.Add("Section 1").Style = doc.Styles(BuiltInStyleId.Heading2)
- For i = 0 To NPARS - 1
- pars1.Add($"Section 1, paragraph {i + 1}: " + LoremIpsumPar())
- Next
-
- '' Add styles for primary, first and even page headers
- Const snHdrPrimary = "Primary page header"
- Dim sHdrPrimary = doc.Styles.Add(snHdrPrimary, StyleType.Paragraph)
- sHdrPrimary.ParagraphFormat.Alignment = ParagraphAlignment.Left
- sHdrPrimary.Font.Color.RGB = Color.Blue
-
- Const snHdrFirstPage = "First page header"
- Dim sHdrFirstPage = doc.Styles.Add(snHdrFirstPage, StyleType.Paragraph)
- sHdrFirstPage.ParagraphFormat.Alignment = ParagraphAlignment.Center
- sHdrFirstPage.Font.Color.RGB = Color.Gray
-
- Const snHdrEvenPages = "Even header pages"
- Dim sHdrEvenPages = doc.Styles.Add(snHdrEvenPages, StyleType.Paragraph)
- sHdrEvenPages.ParagraphFormat.Alignment = ParagraphAlignment.Right
- sHdrEvenPages.Font.Color.RGB = Color.Blue
-
- '' Use a different header on the first, even and odd pages
- Dim p = sec1.Headers(HeaderFooterType.Primary).Body.Paragraphs.Add("DsWord Headers Sample - Section 1 - Primary Header - Page ")
- p.GetRange().SimpleFields.Add("PAGE")
- p.Style = sHdrPrimary
-
- sec1.PageSetup.DifferentFirstPageHeaderFooter = True
- p = sec1.Headers(HeaderFooterType.FirstPage).Body.Paragraphs.Add("DsWord Headers Sample - Section 1 - First Page")
- p.Style = sHdrFirstPage
-
- sec1.PageSetup.OddAndEvenPagesHeaderFooter = True
- p = sec1.Headers(HeaderFooterType.EvenPages).Body.Paragraphs.Add("DsWord Headers Sample - Section 1 - Even Pages - Page ")
- p.GetRange().SimpleFields.Add("PAGE")
- p.Style = sHdrEvenPages
-
- '' Add another section with different page orientation
- Dim sec2 = doc.Body.Paragraphs.Last.AddSectionBreak()
- Dim pars2 = sec2.GetRange().Paragraphs
- pars2.Add("Section 2").Style = doc.Styles(BuiltInStyleId.Heading2)
- For i = 0 To NPARS - 1
- pars2.Add($"Section 2, paragraph {i + 1}: " + LoremIpsumPar())
- Next
-
- '' Set page orientation to landscape
- sec2.PageSetup.Size.Orientation = PageOrientation.Landscape
-
- '' Unlink and specify own headers for section 2
- Dim hdr = sec2.Headers(HeaderFooterType.Primary)
-
- '' Add styles for primary and even page headers in secton 2
- Const snHdrPrimary2 = "Primary page header 2"
- Dim sHdrPrimary2 = doc.Styles.Add(snHdrPrimary2, StyleType.Paragraph)
- sHdrPrimary2.ParagraphFormat.Alignment = ParagraphAlignment.Left
- sHdrPrimary2.Font.Color.RGB = Color.Purple
-
- Const snHdrEvenPages2 = "Even header pages 2"
- Dim sHdrEvenPages2 = doc.Styles.Add(snHdrEvenPages2, StyleType.Paragraph)
- sHdrEvenPages2.ParagraphFormat.Alignment = ParagraphAlignment.Right
- sHdrEvenPages2.Font.Color.RGB = Color.Purple
-
- '' NOTE: This property must be set BEFORE changing the header,
- '' otherwise it will affect headers in previous sections too
- hdr.LinkToPrevious = False
- '' NOTE: OddAndEvenPagesHeaderFooter applies To the WHOLE document,
- '' Not just to the current section:
- '' sec2.PageSetup.OddAndEvenPagesHeaderFooter = false
- sec2.PageSetup.DifferentFirstPageHeaderFooter = False
- p = hdr.Body.Paragraphs.Add("DsWord Headers Sample - Section 2 - Primary Header - Page ")
- p.GetRange().SimpleFields.Add("PAGE")
- p.Style = sHdrPrimary2
-
- hdr = sec2.Headers(HeaderFooterType.EvenPages)
- hdr.LinkToPrevious = False
- p = hdr.Body.Paragraphs.Add("DsWord Headers Sample - Section 2 - Even Pages - Page ")
- p.GetRange().SimpleFields.Add("PAGE")
- p.Style = sHdrEvenPages2
-
- '' Done
- Return doc
- End Function
- End Class
-