Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

Footer.cs 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. /*************************************************************************************
  2. DocX – DocX is the community edition of Xceed Words for .NET
  3. Copyright (C) 2009-2016 Xceed Software Inc.
  4. This program is provided to you under the terms of the Microsoft Public
  5. License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license
  6. For more features and fast professional support,
  7. pick up Xceed Words for .NET at https://xceed.com/xceed-words-for-net/
  8. ***********************************************************************************/
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Xml.Linq;
  12. using System.IO.Packaging;
  13. using System.Collections.ObjectModel;
  14. namespace Xceed.Words.NET
  15. {
  16. public class Footer : Container, IParagraphContainer
  17. {
  18. #region Public Properties
  19. public bool PageNumbers
  20. {
  21. get
  22. {
  23. return false;
  24. }
  25. set
  26. {
  27. XElement e = XElement.Parse
  28. ( @"<w:sdt xmlns:w='http://schemas.openxmlformats.org/wordprocessingml/2006/main'>
  29. <w:sdtPr>
  30. <w:id w:val='157571950' />
  31. <w:docPartObj>
  32. <w:docPartGallery w:val='Page Numbers (Top of Page)' />
  33. <w:docPartUnique />
  34. </w:docPartObj>
  35. </w:sdtPr>
  36. <w:sdtContent>
  37. <w:p w:rsidR='008D2BFB' w:rsidRDefault='008D2BFB'>
  38. <w:pPr>
  39. <w:pStyle w:val='Header' />
  40. <w:jc w:val='center' />
  41. </w:pPr>
  42. <w:fldSimple w:instr=' PAGE \* MERGEFORMAT'>
  43. <w:r>
  44. <w:rPr>
  45. <w:noProof />
  46. </w:rPr>
  47. <w:t>1</w:t>
  48. </w:r>
  49. </w:fldSimple>
  50. </w:p>
  51. </w:sdtContent>
  52. </w:sdt>"
  53. );
  54. Xml.AddFirst( e );
  55. }
  56. }
  57. public override ReadOnlyCollection<Paragraph> Paragraphs
  58. {
  59. get
  60. {
  61. var paragraphs = base.Paragraphs;
  62. foreach( var paragraph in paragraphs )
  63. {
  64. paragraph.PackagePart = this.PackagePart;
  65. }
  66. return paragraphs;
  67. }
  68. }
  69. public override List<Table> Tables
  70. {
  71. get
  72. {
  73. var l = base.Tables;
  74. l.ForEach( x => x.PackagePart = this.PackagePart );
  75. return l;
  76. }
  77. }
  78. #endregion
  79. #region Constructors
  80. internal Footer( DocX document, XElement xml, PackagePart mainPart ) : base( document, xml )
  81. {
  82. this.PackagePart = mainPart;
  83. }
  84. #endregion
  85. #region Public Methods
  86. public override Paragraph InsertParagraph()
  87. {
  88. var p = base.InsertParagraph();
  89. p.PackagePart = this.PackagePart;
  90. return p;
  91. }
  92. public override Paragraph InsertParagraph( int index, string text, bool trackChanges )
  93. {
  94. var p = base.InsertParagraph( index, text, trackChanges );
  95. p.PackagePart = this.PackagePart;
  96. return p;
  97. }
  98. public override Paragraph InsertParagraph( Paragraph p )
  99. {
  100. p.PackagePart = this.PackagePart;
  101. return base.InsertParagraph( p );
  102. }
  103. public override Paragraph InsertParagraph( int index, Paragraph p )
  104. {
  105. p.PackagePart = this.PackagePart;
  106. return base.InsertParagraph( index, p );
  107. }
  108. public override Paragraph InsertParagraph( int index, string text, bool trackChanges, Formatting formatting )
  109. {
  110. var p = base.InsertParagraph( index, text, trackChanges, formatting );
  111. p.PackagePart = this.PackagePart;
  112. return p;
  113. }
  114. public override Paragraph InsertParagraph( string text )
  115. {
  116. var p = base.InsertParagraph( text );
  117. p.PackagePart = this.PackagePart;
  118. return p;
  119. }
  120. public override Paragraph InsertParagraph( string text, bool trackChanges )
  121. {
  122. var p = base.InsertParagraph( text, trackChanges );
  123. p.PackagePart = this.PackagePart;
  124. return p;
  125. }
  126. public override Paragraph InsertParagraph( string text, bool trackChanges, Formatting formatting )
  127. {
  128. var p = base.InsertParagraph( text, trackChanges, formatting );
  129. p.PackagePart = this.PackagePart;
  130. return p;
  131. }
  132. public override Paragraph InsertEquation( String equation )
  133. {
  134. var p = base.InsertEquation( equation );
  135. p.PackagePart = this.PackagePart;
  136. return p;
  137. }
  138. public override Table InsertTable( int rowCount, int columnCount )
  139. {
  140. var table = base.InsertTable( rowCount, columnCount );
  141. return this.SetMainPart( table );
  142. }
  143. public override Table InsertTable( int index, Table t )
  144. {
  145. var table = base.InsertTable( index, t );
  146. return this.SetMainPart( table );
  147. }
  148. public override Table InsertTable( Table t )
  149. {
  150. var table = base.InsertTable( t );
  151. return this.SetMainPart( table );
  152. }
  153. public override Table InsertTable( int index, int rowCount, int columnCount )
  154. {
  155. var table = base.InsertTable( index, rowCount, columnCount );
  156. return this.SetMainPart( table );
  157. }
  158. #endregion
  159. #region Private Methods
  160. private Table SetMainPart( Table table )
  161. {
  162. if( table != null )
  163. {
  164. table.PackagePart = this.PackagePart;
  165. }
  166. return table;
  167. }
  168. #endregion
  169. }
  170. }