File Source for HeaderFooter.php

PHPExcel_Worksheet

# Source for file HeaderFooter.php

Documentation is available at HeaderFooter.php

1. <?php
2. /**
3. * PHPExcel
4. *
5. * Copyright (c) 2006 - 2011 PHPExcel
6. *
7. * This library is free software; you can redistribute it and/or
8. * modify it under the terms of the GNU Lesser General Public
9. * License as published by the Free Software Foundation; either
10. * version 2.1 of the License, or (at your option) any later version.
11. *
12. * This library is distributed in the hope that it will be useful,
13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15. * Lesser General Public License for more details.
16. *
17. * You should have received a copy of the GNU Lesser General Public
18. * License along with this library; if not, write to the Free Software
19. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20. *
21. * @category PHPExcel
22. * @package PHPExcel_Worksheet
23. * @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel)
24. * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25. * @version 1.7.6, 2011-02-27
26. */
29. /**
30. * PHPExcel_Worksheet_HeaderFooter
31. *
32. * <code>
33. * Header/Footer Formatting Syntax taken from Office Open XML Part 4 - Markup Language Reference, page 1970:
34. *
35. * There are a number of formatting codes that can be written inline with the actual header / footer text, which
36. * affect the formatting in the header or footer.
37. *
38. * Example: This example shows the text "Center Bold Header" on the first line (center section), and the date on
39. * the second line (center section).
40. * &CCenter &"-,Bold"Bold&"-,Regular"Header_x000A_&D
41. *
42. * General Rules:
43. * There is no required order in which these codes must appear.
44. *
45. * The first occurrence of the following codes turns the formatting ON, the second occurrence turns it OFF again:
46. * - strikethrough
47. * - superscript
48. * - subscript
49. * Superscript and subscript cannot both be ON at same time. Whichever comes first wins and the other is ignored,
50. * while the first is ON.
51. * &L - code for "left section" (there are three header / footer locations, "left", "center", and "right"). When
52. * two or more occurrences of this section marker exist, the contents from all markers are concatenated, in the
53. * order of appearance, and placed into the left section.
54. * &P - code for "current page #"
55. * &N - code for "total pages"
56. * &font size - code for "text font size", where font size is a font size in points.
57. * &K - code for "text font color"
58. * RGB Color is specified as RRGGBB
59. * Theme Color is specifed as TTSNN where TT is the theme color Id, S is either "+" or "-" of the tint/shade
60. * value, NN is the tint/shade value.
61. * &S - code for "text strikethrough" on / off
62. * &X - code for "text super script" on / off
63. * &Y - code for "text subscript" on / off
64. * &C - code for "center section". When two or more occurrences of this section marker exist, the contents
65. * from all markers are concatenated, in the order of appearance, and placed into the center section.
66. *
67. * &D - code for "date"
68. * &T - code for "time"
69. * &G - code for "picture as background"
70. * &U - code for "text single underline"
71. * &E - code for "double underline"
72. * &R - code for "right section". When two or more occurrences of this section marker exist, the contents
73. * from all markers are concatenated, in the order of appearance, and placed into the right section.
74. * &Z - code for "this workbook's file path"
75. * &F - code for "this workbook's file name"
76. * &A - code for "sheet tab name"
77. * &+ - code for add to page #.
78. * &- - code for subtract from page #.
79. * &"font name,font type" - code for "text font name" and "text font type", where font name and font type
80. * are strings specifying the name and type of the font, separated by a comma. When a hyphen appears in font
81. * name, it means "none specified". Both of font name and font type can be localized values.
82. * &"-,Bold" - code for "bold font style"
83. * &B - also means "bold font style".
84. * &"-,Regular" - code for "regular font style"
85. * &"-,Italic" - code for "italic font style"
86. * &I - also means "italic font style"
87. * &"-,Bold Italic" code for "bold italic font style"
88. * &O - code for "outline style"
89. * &H - code for "shadow style"
90. * </code>
91. *
92. * @category PHPExcel
93. * @package PHPExcel_Worksheet
94. * @copyright Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel)
95. */
96. class PHPExcel_Worksheet_HeaderFooter
97. {
98. /* Header/footer image location */
99. const IMAGE_HEADER_LEFT = 'LH';
100. const IMAGE_HEADER_CENTER = 'CH';
101. const IMAGE_HEADER_RIGHT = 'RH';
102. const IMAGE_FOOTER_LEFT = 'LF';
103. const IMAGE_FOOTER_CENTER = 'CF';
104. const IMAGE_FOOTER_RIGHT = 'RF';
106. /**
107. * OddHeader
108. *
109. * @var string
110. */
111. private $_oddHeader = '';
113. /**
114. * OddFooter
115. *
116. * @var string
117. */
118. private $_oddFooter = '';
120. /**
121. * EvenHeader
122. *
123. * @var string
124. */
125. private $_evenHeader = '';
127. /**
128. * EvenFooter
129. *
130. * @var string
131. */
132. private $_evenFooter = '';
134. /**
135. * FirstHeader
136. *
137. * @var string
138. */
139. private $_firstHeader = '';
141. /**
142. * FirstFooter
143. *
144. * @var string
145. */
146. private $_firstFooter = '';
148. /**
149. * Different header for Odd/Even, defaults to false
150. *
151. * @var boolean
152. */
153. private $_differentOddEven = false;
155. /**
156. * Different header for first page, defaults to false
157. *
158. * @var boolean
159. */
160. private $_differentFirst = false;
162. /**
163. * Scale with document, defaults to true
164. *
165. * @var boolean
166. */
167. private $_scaleWithDocument = true;
169. /**
170. * Align with margins, defaults to true
171. *
172. * @var boolean
173. */
174. private $_alignWithMargins = true;
176. /**
177. * Header/footer images
178. *
179. * @var PHPExcel_Worksheet_HeaderFooterDrawing[]
180. */
181. private $_headerFooterImages = array();
183. /**
184. * Create a new PHPExcel_Worksheet_HeaderFooter
185. */
186. public function __construct()
187. {
188. }
190. /**
191. * Get OddHeader
192. *
193. * @return string
194. */
195. public function getOddHeader() {
196. return $this->_oddHeader;
197. }
199. /**
200. * Set OddHeader
201. *
202. * @param string $pValue
203. * @return PHPExcel_Worksheet_HeaderFooter
204. */
205. public function setOddHeader($pValue) {
206. $this->_oddHeader = $pValue;
207. return $this;
208. }
210. /**
211. * Get OddFooter
212. *
213. * @return string
214. */
215. public function getOddFooter() {
216. return $this->_oddFooter;
217. }
219. /**
220. * Set OddFooter
221. *
222. * @param string $pValue
223. * @return PHPExcel_Worksheet_HeaderFooter
224. */
225. public function setOddFooter($pValue) {
226. $this->_oddFooter = $pValue;
227. return $this;
228. }
230. /**
231. * Get EvenHeader
232. *
233. * @return string
234. */
235. public function getEvenHeader() {
236. return $this->_evenHeader;
237. }
239. /**
240. * Set EvenHeader
241. *
242. * @param string $pValue
243. * @return PHPExcel_Worksheet_HeaderFooter
244. */
245. public function setEvenHeader($pValue) {
246. $this->_evenHeader = $pValue;
247. return $this;
248. }
250. /**
251. * Get EvenFooter
252. *
253. * @return string
254. */
255. public function getEvenFooter() {
256. return $this->_evenFooter;
257. }
259. /**
260. * Set EvenFooter
261. *
262. * @param string $pValue
263. * @return PHPExcel_Worksheet_HeaderFooter
264. */
265. public function setEvenFooter($pValue) {
266. $this->_evenFooter = $pValue;
267. return $this;
268. }
270. /**
271. * Get FirstHeader
272. *
273. * @return string
274. */
275. public function getFirstHeader() {
276. return $this->_firstHeader;
277. }
279. /**
280. * Set FirstHeader
281. *
282. * @param string $pValue
283. * @return PHPExcel_Worksheet_HeaderFooter
284. */
285. public function setFirstHeader($pValue) {
286. $this->_firstHeader = $pValue;
287. return $this;
288. }
290. /**
291. * Get FirstFooter
292. *
293. * @return string
294. */
295. public function getFirstFooter() {
296. return $this->_firstFooter;
297. }
299. /**
300. * Set FirstFooter
301. *
302. * @param string $pValue
303. * @return PHPExcel_Worksheet_HeaderFooter
304. */
305. public function setFirstFooter($pValue) {
306. $this->_firstFooter = $pValue;
307. return $this;
308. }
310. /**
311. * Get DifferentOddEven
312. *
313. * @return boolean
314. */
315. public function getDifferentOddEven() {
316. return $this->_differentOddEven;
317. }
319. /**
320. * Set DifferentOddEven
321. *
322. * @param boolean $pValue
323. * @return PHPExcel_Worksheet_HeaderFooter
324. */
325. public function setDifferentOddEven($pValue = false) {
326. $this->_differentOddEven = $pValue;
327. return $this;
328. }
330. /**
331. * Get DifferentFirst
332. *
333. * @return boolean
334. */
335. public function getDifferentFirst() {
336. return $this->_differentFirst;
337. }
339. /**
340. * Set DifferentFirst
341. *
342. * @param boolean $pValue
343. * @return PHPExcel_Worksheet_HeaderFooter
344. */
345. public function setDifferentFirst($pValue = false) {
346. $this->_differentFirst = $pValue;
347. return $this;
348. }
350. /**
351. * Get ScaleWithDocument
352. *
353. * @return boolean
354. */
355. public function getScaleWithDocument() {
356. return $this->_scaleWithDocument;
357. }
359. /**
360. * Set ScaleWithDocument
361. *
362. * @param boolean $pValue
363. * @return PHPExcel_Worksheet_HeaderFooter
364. */
365. public function setScaleWithDocument($pValue = true) {
366. $this->_scaleWithDocument = $pValue;
367. return $this;
368. }
370. /**
371. * Get AlignWithMargins
372. *
373. * @return boolean
374. */
375. public function getAlignWithMargins() {
376. return $this->_alignWithMargins;
377. }
379. /**
380. * Set AlignWithMargins
381. *
382. * @param boolean $pValue
383. * @return PHPExcel_Worksheet_HeaderFooter
384. */
385. public function setAlignWithMargins($pValue = true) {
386. $this->_alignWithMargins = $pValue;
387. return $this;
388. }
390. /**
391. * Add header/footer image
392. *
393. * @param PHPExcel_Worksheet_HeaderFooterDrawing $image
394. * @param string $location
395. * @throws Exception
396. * @return PHPExcel_Worksheet_HeaderFooter
397. */
398. public function addImage(PHPExcel_Worksheet_HeaderFooterDrawing $image = null, $location = self:: IMAGE_HEADER_LEFT) {
399. $this->_headerFooterImages[$location] = $image;
400. return $this;
401. }
403. /**
404. * Remove header/footer image
405. *
406. * @param string $location
407. * @throws Exception
408. * @return PHPExcel_Worksheet_HeaderFooter
409. */
410. public function removeImage($location = self:: IMAGE_HEADER_LEFT) {
411. if (isset($this->_headerFooterImages[$location])) {
412. unset($this->_headerFooterImages[$location]);
413. }
414. return $this;
415. }
417. /**
418. * Set header/footer images
419. *
420. * @param PHPExcel_Worksheet_HeaderFooterDrawing[] $images
421. * @throws Exception
422. * @return PHPExcel_Worksheet_HeaderFooter
423. */
424. public function setImages($images) {
425. if (! is_array($images)) {
426. throw new Exception('Invalid parameter!');
427. }
429. $this->_headerFooterImages = $images;
430. return $this;
431. }
433. /**
434. * Get header/footer images
435. *
436. * @return PHPExcel_Worksheet_HeaderFooterDrawing[]
437. */
438. public function getImages() {
439. // Sort array
440. $images = array();
441. if (isset($this->_headerFooterImages[self:: IMAGE_HEADER_LEFT])) $images[self:: IMAGE_HEADER_LEFT] = $this->_headerFooterImages[self:: IMAGE_HEADER_LEFT];
442. if (isset($this->_headerFooterImages[self:: IMAGE_HEADER_CENTER])) $images[self:: IMAGE_HEADER_CENTER] = $this->_headerFooterImages[self:: IMAGE_HEADER_CENTER];
443. if (isset($this->_headerFooterImages[self:: IMAGE_HEADER_RIGHT])) $images[self:: IMAGE_HEADER_RIGHT] = $this->_headerFooterImages[self:: IMAGE_HEADER_RIGHT];
444. if (isset($this->_headerFooterImages[self:: IMAGE_FOOTER_LEFT])) $images[self:: IMAGE_FOOTER_LEFT] = $this->_headerFooterImages[self:: IMAGE_FOOTER_LEFT];
445. if (isset($this->_headerFooterImages[self:: IMAGE_FOOTER_CENTER])) $images[self:: IMAGE_FOOTER_CENTER] = $this->_headerFooterImages[self:: IMAGE_FOOTER_CENTER];
446. if (isset($this->_headerFooterImages[self:: IMAGE_FOOTER_RIGHT])) $images[self:: IMAGE_FOOTER_RIGHT] = $this->_headerFooterImages[self:: IMAGE_FOOTER_RIGHT];
447. $this->_headerFooterImages = $images;
449. return $this->_headerFooterImages;
450. }
452. /**
453. * Implement PHP __clone to create a deep clone, not just a shallow copy.
454. */
455. public function __clone() {
456. $vars = get_object_vars($this);
457. foreach ($vars as $key => $value) {
458. if ( is_object($value)) {
459. $this->$key = clone $value;
460. } else {
461. $this->$key = $value;
462. }
463. }
464. }
465. }

Documentation generated on Sun, 27 Feb 2011 16:32:15 -0800 by phpDocumentor 1.4.3