NumberedList.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 create a numbered list
  13. // with three levels.
  14. // See the Bullets sample for how to create a bullet list.
  15. public class NumberedList
  16. {
  17. public GcWordDocument CreateDocx()
  18. {
  19. GcWordDocument doc = new GcWordDocument();
  20. var pars = doc.Body.Sections.First.GetRange().Paragraphs;
  21. pars.Add("A numbered list with 3 levels:");
  22. // A ListTemplate is used to make paragraphs part of a list:
  23. var myListTemplate = doc.ListTemplates.Add(BuiltInListTemplateId.NumberDefault, "myListTemplate");
  24.  
  25. // Add a 3-level numbered nested list:
  26. addItem("Top item 1", 0);
  27. addItem("Top item 2", 0);
  28. addItem("Top item 3", 0);
  29. addItem("Nested item 1", 1);
  30. addItem("Nested item 2", 1);
  31. addItem("Double nested item 1", 2);
  32. addItem("Double nested item 2", 2);
  33. addItem("Double nested item 3", 2);
  34. addItem("Nested item 3", 1);
  35. addItem("Nested item 4", 1);
  36. addItem("Top item 4", 0);
  37. addItem("Top item 5", 0);
  38.  
  39. // Done:
  40. return doc;
  41.  
  42. void addItem(string t_, int l_)
  43. {
  44. var p_ = pars.Add(t_);
  45. // This makes a paragraph a list item:
  46. p_.ListFormat.Template = myListTemplate;
  47. // Set the item's nesting level (first level is 0):
  48. p_.ListFormat.LevelNumber = l_;
  49. // This ensures item spacing consistent with MS Word:
  50. p_.Style = doc.Styles[BuiltInStyleId.ListParagraph];
  51. }
  52. }
  53. }
  54. }
  55.