Subversion Repositories eFlore/Applications.cel

Rev

Rev 2388 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2388 jpm 1
<?php
2
/**
3
 * PHPExcel
4
 *
5
 * Copyright (c) 2006 - 2013 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 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)
24
 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
25
 * @version    ##VERSION##, ##DATE##
26
 */
27
 
28
 
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 - 2013 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';
105
 
106
	/**
107
	 * OddHeader
108
	 *
109
	 * @var string
110
	 */
111
	private $_oddHeader			= '';
112
 
113
	/**
114
	 * OddFooter
115
	 *
116
	 * @var string
117
	 */
118
	private $_oddFooter			= '';
119
 
120
	/**
121
	 * EvenHeader
122
	 *
123
	 * @var string
124
	 */
125
	private $_evenHeader		= '';
126
 
127
	/**
128
	 * EvenFooter
129
	 *
130
	 * @var string
131
	 */
132
	private $_evenFooter		= '';
133
 
134
	/**
135
	 * FirstHeader
136
	 *
137
	 * @var string
138
	 */
139
	private $_firstHeader		= '';
140
 
141
	/**
142
	 * FirstFooter
143
	 *
144
	 * @var string
145
	 */
146
	private $_firstFooter		= '';
147
 
148
	/**
149
	 * Different header for Odd/Even, defaults to false
150
	 *
151
	 * @var boolean
152
	 */
153
	private $_differentOddEven	= false;
154
 
155
	/**
156
	 * Different header for first page, defaults to false
157
	 *
158
	 * @var boolean
159
	 */
160
	private $_differentFirst	= false;
161
 
162
	/**
163
	 * Scale with document, defaults to true
164
	 *
165
	 * @var boolean
166
	 */
167
	private $_scaleWithDocument	= true;
168
 
169
	/**
170
	 * Align with margins, defaults to true
171
	 *
172
	 * @var boolean
173
	 */
174
	private $_alignWithMargins	= true;
175
 
176
	/**
177
	 * Header/footer images
178
	 *
179
	 * @var PHPExcel_Worksheet_HeaderFooterDrawing[]
180
	 */
181
	private $_headerFooterImages = array();
182
 
183
    /**
184
     * Create a new PHPExcel_Worksheet_HeaderFooter
185
     */
186
    public function __construct()
187
    {
188
    }
189
 
190
    /**
191
     * Get OddHeader
192
     *
193
     * @return string
194
     */
195
    public function getOddHeader() {
196
    	return $this->_oddHeader;
197
    }
198
 
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
    }
209
 
210
    /**
211
     * Get OddFooter
212
     *
213
     * @return string
214
     */
215
    public function getOddFooter() {
216
    	return $this->_oddFooter;
217
    }
218
 
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
    }
229
 
230
    /**
231
     * Get EvenHeader
232
     *
233
     * @return string
234
     */
235
    public function getEvenHeader() {
236
    	return $this->_evenHeader;
237
    }
238
 
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
    }
249
 
250
    /**
251
     * Get EvenFooter
252
     *
253
     * @return string
254
     */
255
    public function getEvenFooter() {
256
    	return $this->_evenFooter;
257
    }
258
 
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
    }
269
 
270
    /**
271
     * Get FirstHeader
272
     *
273
     * @return string
274
     */
275
    public function getFirstHeader() {
276
    	return $this->_firstHeader;
277
    }
278
 
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
    }
289
 
290
    /**
291
     * Get FirstFooter
292
     *
293
     * @return string
294
     */
295
    public function getFirstFooter() {
296
    	return $this->_firstFooter;
297
    }
298
 
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
    }
309
 
310
    /**
311
     * Get DifferentOddEven
312
     *
313
     * @return boolean
314
     */
315
    public function getDifferentOddEven() {
316
    	return $this->_differentOddEven;
317
    }
318
 
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
    }
329
 
330
    /**
331
     * Get DifferentFirst
332
     *
333
     * @return boolean
334
     */
335
    public function getDifferentFirst() {
336
    	return $this->_differentFirst;
337
    }
338
 
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
    }
349
 
350
    /**
351
     * Get ScaleWithDocument
352
     *
353
     * @return boolean
354
     */
355
    public function getScaleWithDocument() {
356
    	return $this->_scaleWithDocument;
357
    }
358
 
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
    }
369
 
370
    /**
371
     * Get AlignWithMargins
372
     *
373
     * @return boolean
374
     */
375
    public function getAlignWithMargins() {
376
    	return $this->_alignWithMargins;
377
    }
378
 
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
    }
389
 
390
    /**
391
     * Add header/footer image
392
     *
393
     * @param PHPExcel_Worksheet_HeaderFooterDrawing $image
394
     * @param string $location
395
     * @throws PHPExcel_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
    }
402
 
403
    /**
404
     * Remove header/footer image
405
     *
406
     * @param string $location
407
     * @throws PHPExcel_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
    }
416
 
417
    /**
418
     * Set header/footer images
419
     *
420
     * @param PHPExcel_Worksheet_HeaderFooterDrawing[] $images
421
     * @throws PHPExcel_Exception
422
     * @return PHPExcel_Worksheet_HeaderFooter
423
     */
424
    public function setImages($images) {
425
    	if (!is_array($images)) {
426
    		throw new PHPExcel_Exception('Invalid parameter!');
427
    	}
428
 
429
    	$this->_headerFooterImages = $images;
430
    	return $this;
431
    }
432
 
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;
448
 
449
    	return $this->_headerFooterImages;
450
    }
451
 
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
}