Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Xml.Linq;
  4. using System.IO.Packaging;
  5. using System.Collections.ObjectModel;
  6. namespace Novacode
  7. {
  8. public class Footer : Container
  9. {
  10. public bool PageNumbers
  11. {
  12. get
  13. {
  14. return false;
  15. }
  16. set
  17. {
  18. XElement e = XElement.Parse
  19. (@"<w:sdt xmlns:w='http://schemas.openxmlformats.org/wordprocessingml/2006/main'>
  20. <w:sdtPr>
  21. <w:id w:val='157571950' />
  22. <w:docPartObj>
  23. <w:docPartGallery w:val='Page Numbers (Top of Page)' />
  24. <w:docPartUnique />
  25. </w:docPartObj>
  26. </w:sdtPr>
  27. <w:sdtContent>
  28. <w:p w:rsidR='008D2BFB' w:rsidRDefault='008D2BFB'>
  29. <w:pPr>
  30. <w:pStyle w:val='Header' />
  31. <w:jc w:val='center' />
  32. </w:pPr>
  33. <w:fldSimple w:instr=' PAGE \* MERGEFORMAT'>
  34. <w:r>
  35. <w:rPr>
  36. <w:noProof />
  37. </w:rPr>
  38. <w:t>1</w:t>
  39. </w:r>
  40. </w:fldSimple>
  41. </w:p>
  42. </w:sdtContent>
  43. </w:sdt>"
  44. );
  45. Xml.AddFirst(e);
  46. }
  47. }
  48. internal PackagePart mainPart;
  49. internal Footer(DocX document, XElement xml, PackagePart mainPart): base(document, xml)
  50. {
  51. this.mainPart = mainPart;
  52. }
  53. public override Paragraph InsertParagraph()
  54. {
  55. Paragraph p = base.InsertParagraph();
  56. p.PackagePart = mainPart;
  57. return p;
  58. }
  59. public override Paragraph InsertParagraph(int index, string text, bool trackChanges)
  60. {
  61. Paragraph p = base.InsertParagraph(index, text, trackChanges);
  62. p.PackagePart = mainPart;
  63. return p;
  64. }
  65. public override Paragraph InsertParagraph(Paragraph p)
  66. {
  67. p.PackagePart = mainPart;
  68. return base.InsertParagraph(p);
  69. }
  70. public override Paragraph InsertParagraph(int index, Paragraph p)
  71. {
  72. p.PackagePart = mainPart;
  73. return base.InsertParagraph(index, p);
  74. }
  75. public override Paragraph InsertParagraph(int index, string text, bool trackChanges, Formatting formatting)
  76. {
  77. Paragraph p = base.InsertParagraph(index, text, trackChanges, formatting);
  78. p.PackagePart = mainPart;
  79. return p;
  80. }
  81. public override Paragraph InsertParagraph(string text)
  82. {
  83. Paragraph p = base.InsertParagraph(text);
  84. p.PackagePart = mainPart;
  85. return p;
  86. }
  87. public override Paragraph InsertParagraph(string text, bool trackChanges)
  88. {
  89. Paragraph p = base.InsertParagraph(text, trackChanges);
  90. p.PackagePart = mainPart;
  91. return p;
  92. }
  93. public override Paragraph InsertParagraph(string text, bool trackChanges, Formatting formatting)
  94. {
  95. Paragraph p = base.InsertParagraph(text, trackChanges, formatting);
  96. p.PackagePart = mainPart;
  97. return p;
  98. }
  99. public override Paragraph InsertEquation(String equation)
  100. {
  101. Paragraph p = base.InsertEquation(equation);
  102. p.PackagePart = mainPart;
  103. return p;
  104. }
  105. public override ReadOnlyCollection<Paragraph> Paragraphs
  106. {
  107. get
  108. {
  109. ReadOnlyCollection<Paragraph> l = base.Paragraphs;
  110. foreach (var paragraph in l)
  111. {
  112. paragraph.mainPart = mainPart;
  113. }
  114. return l;
  115. }
  116. }
  117. public override List<Table> Tables
  118. {
  119. get
  120. {
  121. List<Table> l = base.Tables;
  122. l.ForEach(x => x.mainPart = mainPart);
  123. return l;
  124. }
  125. }
  126. public new Table InsertTable(int rowCount, int columnCount)
  127. {
  128. if (rowCount < 1 || columnCount < 1)
  129. throw new ArgumentOutOfRangeException("Row and Column count must be greater than zero.");
  130. Table t = base.InsertTable(rowCount, columnCount);
  131. t.mainPart = mainPart;
  132. return t;
  133. }
  134. public new Table InsertTable(int index, Table t)
  135. {
  136. Table t2 = base.InsertTable(index, t);
  137. t2.mainPart = mainPart;
  138. return t2;
  139. }
  140. public new Table InsertTable(Table t)
  141. {
  142. t = base.InsertTable(t);
  143. t.mainPart = mainPart;
  144. return t;
  145. }
  146. public new Table InsertTable(int index, int rowCount, int columnCount)
  147. {
  148. if (rowCount < 1 || columnCount < 1)
  149. throw new ArgumentOutOfRangeException("Row and Column count must be greater than zero.");
  150. Table t = base.InsertTable(index, rowCount, columnCount);
  151. t.mainPart = mainPart;
  152. return t;
  153. }
  154. }
  155. }