Headers.cs
C# VB
//// This code is part of Document Solutions for Word demos.// Copyright (c) MESCIUS inc. All rights reserved.//using System.Drawing;using GrapeCity.Documents.Word;
namespace DsWordWeb.Demos{ // Shows how to add headers and footers to a document. public class Headers { public GcWordDocument CreateDocx() { const int NPARS = 30; var doc = new GcWordDocument();
// Add a section and some text to it: var sec1 = doc.Body.Sections.First; var pars1 = sec1.GetRange().Paragraphs; pars1.Add("Section 1").Style = doc.Styles[BuiltInStyleId.Heading2]; for (int i = 0; i < NPARS; ++i) pars1.Add($"Section 1, paragraph {i + 1}: " + Util.LoremIpsumPar());
// Add styles for primary, first and even page headers: const string snHdrPrimary = "Primary page header"; var sHdrPrimary = doc.Styles.Add(snHdrPrimary, StyleType.Paragraph); sHdrPrimary.ParagraphFormat.Alignment = ParagraphAlignment.Left; sHdrPrimary.Font.Color.RGB = Color.Blue;
const string snHdrFirstPage = "First page header"; var sHdrFirstPage = doc.Styles.Add(snHdrFirstPage, StyleType.Paragraph); sHdrFirstPage.ParagraphFormat.Alignment = ParagraphAlignment.Center; sHdrFirstPage.Font.Color.RGB = Color.Gray;
const string snHdrEvenPages = "Even header pages"; var 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: var 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 and different headers: var sec2 = doc.Body.Paragraphs.Last.AddSectionBreak(); var pars2 = sec2.GetRange().Paragraphs; pars2.Add("Section 2").Style = doc.Styles[BuiltInStyleId.Heading2]; for (int i = 0; i < NPARS; ++i) pars2.Add($"Section 2, paragraph {i + 1}: " + Util.LoremIpsumPar());
// Set page orientation to landscape: sec2.PageSetup.Size.Orientation = PageOrientation.Landscape;
// Unlink and specify own headers for section 2: var hdr = sec2.Headers[HeaderFooterType.Primary];
// Add styles for primary and even page headers in secton 2: const string snHdrPrimary2 = "Primary page header 2"; var sHdrPrimary2 = doc.Styles.Add(snHdrPrimary2, StyleType.Paragraph); sHdrPrimary2.ParagraphFormat.Alignment = ParagraphAlignment.Left; sHdrPrimary2.Font.Color.RGB = Color.Purple;
const string snHdrEvenPages2 = "Even header pages 2"; var 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; } }}