PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.0.3
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.0.3
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 All 149 releases
visualizer / vendor / phpoffice / phpexcel / Classes / PHPExcel / Worksheet / HeaderFooter.php

HeaderFooter.php in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.0.3, at vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/HeaderFooter.php

466 lines 12.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * PHPExcel
4 *
5 * Copyright (c) 2006 - 2014 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 - 2014 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 - 2014 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 }
466