RestartList.cs
  1. //
  2. // This code is part of Document Solutions for Word demos.
  3. // Copyright (c) MESCIUS inc. All rights reserved.
  4. //
  5. using System;
  6. using System.IO;
  7. using System.Drawing;
  8. using GrapeCity.Documents.Word;
  9.  
  10. namespace DsWordWeb.Demos
  11. {
  12. // This sample demonstrates how to restart numbering
  13. // in a numbered list
  14. // with three levels.
  15. // The code creating the lists is similar to NumberedList sample.
  16. public class RestartList
  17. {
  18. public GcWordDocument CreateDocx()
  19. {
  20. GcWordDocument doc = new GcWordDocument();
  21. var pars = doc.Body.Sections.First.GetRange().Paragraphs;
  22. pars.Add("A numbered list with 3 levels:");
  23. // A ListTemplate is used to make paragraphs part of a list:
  24. var myListTemplate = doc.ListTemplates.Add(BuiltInListTemplateId.NumberDefault, "myListTemplate");
  25.  
  26. // Add a 3-level numbered nested list:
  27. addItem("Top item 1", 0);
  28. addItem("Top item 2", 0);
  29. addItem("Top item 3", 0);
  30. addItem("Nested item 1", 1);
  31. addItem("Nested item 2", 1);
  32. addItem("Double nested item 1", 2);
  33. addItem("Double nested item 2", 2);
  34. // Restart a list with default numbering:
  35. addItem("Double nested item 3 - restart at 'i'", 2).RestartList();
  36. addItem("Double nested item 4", 2);
  37. addItem("Double nested item 5", 2);
  38. addItem("Nested item 3", 1);
  39. addItem("Nested item 4", 1);
  40. addItem("Nested item 5", 1);
  41. addItem("Nested item 6", 1);
  42. // Restart a letter-numbered ("a, b, c,...") list at letter 'c':
  43. addItem("Nested item 7 - restart at 'c'", 1).RestartList(3);
  44. addItem("Nested item 8", 1);
  45. addItem("Nested item 9", 1);
  46. addItem("Top item 4", 0);
  47. addItem("Top item 5", 0);
  48.  
  49. // Done:
  50. return doc;
  51.  
  52. Paragraph addItem(string t_, int l_)
  53. {
  54. var p_ = pars.Add(t_);
  55. // This makes a paragraph a list item:
  56. p_.ListFormat.Template = myListTemplate;
  57. // Set the item's nesting level (first level is 0):
  58. p_.ListFormat.LevelNumber = l_;
  59. // This ensures item spacing consistent with MS Word:
  60. p_.Style = doc.Styles[BuiltInStyleId.ListParagraph];
  61. return p_;
  62. }
  63. }
  64. }
  65. }
  66.