//
// This code is part of Document Solutions for Word demos.
// Copyright (c) MESCIUS inc. All rights reserved.
//
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Word;
namespace DsWordWeb.Demos
{
// This sample demonstrates how to restart numbering
// in a numbered list
// with three levels.
// The code creating the lists is similar to NumberedList sample.
public class RestartList
{
public GcWordDocument CreateDocx()
{
GcWordDocument doc = new GcWordDocument();
var pars = doc.Body.Sections.First.GetRange().Paragraphs;
pars.Add("A numbered list with 3 levels:");
// A ListTemplate is used to make paragraphs part of a list:
var myListTemplate = doc.ListTemplates.Add(BuiltInListTemplateId.NumberDefault, "myListTemplate");
// Add a 3-level numbered nested list:
addItem("Top item 1", 0);
addItem("Top item 2", 0);
addItem("Top item 3", 0);
addItem("Nested item 1", 1);
addItem("Nested item 2", 1);
addItem("Double nested item 1", 2);
addItem("Double nested item 2", 2);
// Restart a list with default numbering:
addItem("Double nested item 3 - restart at 'i'", 2).RestartList();
addItem("Double nested item 4", 2);
addItem("Double nested item 5", 2);
addItem("Nested item 3", 1);
addItem("Nested item 4", 1);
addItem("Nested item 5", 1);
addItem("Nested item 6", 1);
// Restart a letter-numbered ("a, b, c,...") list at letter 'c':
addItem("Nested item 7 - restart at 'c'", 1).RestartList(3);
addItem("Nested item 8", 1);
addItem("Nested item 9", 1);
addItem("Top item 4", 0);
addItem("Top item 5", 0);
// Done:
return doc;
Paragraph addItem(string t_, int l_)
{
var p_ = pars.Add(t_);
// This makes a paragraph a list item:
p_.ListFormat.Template = myListTemplate;
// Set the item's nesting level (first level is 0):
p_.ListFormat.LevelNumber = l_;
// This ensures item spacing consistent with MS Word:
p_.Style = doc.Styles[BuiltInStyleId.ListParagraph];
return p_;
}
}
}
}