PageRefFieldOpts.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 PAGEREF field options to add // and customize a reference to a page in the current document // containing a specified bookmark. public class PageRefFieldOpts { public GcWordDocument CreateDocx() { var doc = new GcWordDocument();
// The name of the target bookmark: const string bmkName = "myBookmark";
// The PageRefFieldOptions class provides a convenient strong-typed access // to options specific to the 'PAGEREF' MS Word field: var pgRefOpt = new PageRefFieldOptions(doc, bmkName); pgRefOpt.NumberStyle = NumberStyle.UpperRoman; pgRefOpt.Hyperlink = true;
// Add a paragraph with the PAGEREF to the document: var p = doc.Body.AddParagraph("Go to page ", doc.Styles[BuiltInStyleId.IndexHeading]).AddComplexField(pgRefOpt); p.GetRange().Runs.Add("...");
// Add some pages: var rnd = Util.NewRandom(); for (int i = 0; i < rnd.Next(20, 25); i++) { doc.Body.AddParagraph(Util.LoremIpsumPar()); } // End with the bookmarked paragraph: doc.Body.AddParagraph("The end.").GetRange().Bookmarks.Add(bmkName);
// For reference add a simple page header with page number to the document: var phdr = doc.Body.Sections.First.Headers[HeaderFooterType.Primary].Body.AddParagraph(doc.Styles[BuiltInStyleId.Closing]); phdr.AddComplexField(new PageFieldOptions(doc) { NumberFormat = "'Page '0" });
// 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; } }}