PageFieldOpts.cs
C# VB
//// This code is part of Document Solutions for Word demos.// Copyright (c) MESCIUS inc. All rights reserved.//using System.Globalization;using GrapeCity.Documents.Word;using GrapeCity.Documents.Word.Fields;
namespace DsWordWeb.Demos{ // This sample shows how to use the PAGE and NUMPAGES field options // to insert the current and total page numbers into the document // and customize the fields' appearance. public class PageFieldOpts { public GcWordDocument CreateDocx() { var doc = new GcWordDocument();
// The PageFieldOptions and NumPagesFieldOptions classes provide // convenient strong-typed access to options specific to the // 'PAGE' and 'NUMPAGES' MS Word fields respectively.
// PAGE field options for the page header: var pgOptHeader = new PageFieldOptions(doc); pgOptHeader.NumberStyle = NumberStyle.Decimal;
// PAGE field options for page numbers in the body: var pgOptBody = new PageFieldOptions(doc); pgOptBody.NumberStyle = NumberStyle.UpperRoman;
// NUMPAGES field options: var numpagesOpt = new NumPagesFieldOptions(doc); numpagesOpt.NumberStyle = NumberStyle.Decimal;
// Add a page header that includes the current and total page numbers: var para = doc.Body.Sections.First.Headers[HeaderFooterType.Primary].Body.AddParagraph("Page header - page "); para.AddComplexField(pgOptHeader); para.AddRun(" of "); para.AddComplexField(numpagesOpt);
// Pick a style that will be used for page numbers in the document body: var pageStyle = doc.Styles[BuiltInStyleId.IndexHeading];
// Add some pages, with periodic inclusions of the PAGE field: var rnd = Util.NewRandom(); for (int i = 0; i < rnd.Next(6, 12); i++) { var p = doc.Body.AddParagraph("This text is on page ", pageStyle); p.AddComplexField(pgOptBody); p.AddRun(" of "); p.AddComplexField(numpagesOpt); p.GetRange().Runs.Add("."); var par = Util.LoremIpsumPar(); doc.Body.AddParagraph(par); }
// Update fields using a specific culture: doc.UpdateFields(new GrapeCity.Documents.Word.Layout.WordLayoutSettings() { FontCollection = Util.FontCollection, Culture = CultureInfo.GetCultureInfo("en-US") });
// Done: return doc; } }}