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 / Style / Font.php

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

533 lines 12.1 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_Style
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_Style_Font
31 *
32 * @category PHPExcel
33 * @package PHPExcel_Style
34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36 class PHPExcel_Style_Font extends PHPExcel_Style_Supervisor implements PHPExcel_IComparable
37 {
38 /* Underline types */
39 const UNDERLINE_NONE = 'none';
40 const UNDERLINE_DOUBLE = 'double';
41 const UNDERLINE_DOUBLEACCOUNTING = 'doubleAccounting';
42 const UNDERLINE_SINGLE = 'single';
43 const UNDERLINE_SINGLEACCOUNTING = 'singleAccounting';
44
45 /**
46 * Font Name
47 *
48 * @var string
49 */
50 protected $_name = 'Calibri';
51
52 /**
53 * Font Size
54 *
55 * @var float
56 */
57 protected $_size = 11;
58
59 /**
60 * Bold
61 *
62 * @var boolean
63 */
64 protected $_bold = FALSE;
65
66 /**
67 * Italic
68 *
69 * @var boolean
70 */
71 protected $_italic = FALSE;
72
73 /**
74 * Superscript
75 *
76 * @var boolean
77 */
78 protected $_superScript = FALSE;
79
80 /**
81 * Subscript
82 *
83 * @var boolean
84 */
85 protected $_subScript = FALSE;
86
87 /**
88 * Underline
89 *
90 * @var string
91 */
92 protected $_underline = self::UNDERLINE_NONE;
93
94 /**
95 * Strikethrough
96 *
97 * @var boolean
98 */
99 protected $_strikethrough = FALSE;
100
101 /**
102 * Foreground color
103 *
104 * @var PHPExcel_Style_Color
105 */
106 protected $_color;
107
108 /**
109 * Create a new PHPExcel_Style_Font
110 *
111 * @param boolean $isSupervisor Flag indicating if this is a supervisor or not
112 * Leave this value at default unless you understand exactly what
113 * its ramifications are
114 * @param boolean $isConditional Flag indicating if this is a conditional style or not
115 * Leave this value at default unless you understand exactly what
116 * its ramifications are
117 */
118 public function __construct($isSupervisor = FALSE, $isConditional = FALSE)
119 {
120 // Supervisor?
121 parent::__construct($isSupervisor);
122
123 // Initialise values
124 if ($isConditional) {
125 $this->_name = NULL;
126 $this->_size = NULL;
127 $this->_bold = NULL;
128 $this->_italic = NULL;
129 $this->_superScript = NULL;
130 $this->_subScript = NULL;
131 $this->_underline = NULL;
132 $this->_strikethrough = NULL;
133 $this->_color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor, $isConditional);
134 } else {
135 $this->_color = new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_BLACK, $isSupervisor);
136 }
137 // bind parent if we are a supervisor
138 if ($isSupervisor) {
139 $this->_color->bindParent($this, '_color');
140 }
141 }
142
143 /**
144 * Get the shared style component for the currently active cell in currently active sheet.
145 * Only used for style supervisor
146 *
147 * @return PHPExcel_Style_Font
148 */
149 public function getSharedComponent()
150 {
151 return $this->_parent->getSharedComponent()->getFont();
152 }
153
154 /**
155 * Build style array from subcomponents
156 *
157 * @param array $array
158 * @return array
159 */
160 public function getStyleArray($array)
161 {
162 return array('font' => $array);
163 }
164
165 /**
166 * Apply styles from array
167 *
168 * <code>
169 * $objPHPExcel->getActiveSheet()->getStyle('B2')->getFont()->applyFromArray(
170 * array(
171 * 'name' => 'Arial',
172 * 'bold' => TRUE,
173 * 'italic' => FALSE,
174 * 'underline' => PHPExcel_Style_Font::UNDERLINE_DOUBLE,
175 * 'strike' => FALSE,
176 * 'color' => array(
177 * 'rgb' => '808080'
178 * )
179 * )
180 * );
181 * </code>
182 *
183 * @param array $pStyles Array containing style information
184 * @throws PHPExcel_Exception
185 * @return PHPExcel_Style_Font
186 */
187 public function applyFromArray($pStyles = null) {
188 if (is_array($pStyles)) {
189 if ($this->_isSupervisor) {
190 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($this->getStyleArray($pStyles));
191 } else {
192 if (array_key_exists('name', $pStyles)) {
193 $this->setName($pStyles['name']);
194 }
195 if (array_key_exists('bold', $pStyles)) {
196 $this->setBold($pStyles['bold']);
197 }
198 if (array_key_exists('italic', $pStyles)) {
199 $this->setItalic($pStyles['italic']);
200 }
201 if (array_key_exists('superScript', $pStyles)) {
202 $this->setSuperScript($pStyles['superScript']);
203 }
204 if (array_key_exists('subScript', $pStyles)) {
205 $this->setSubScript($pStyles['subScript']);
206 }
207 if (array_key_exists('underline', $pStyles)) {
208 $this->setUnderline($pStyles['underline']);
209 }
210 if (array_key_exists('strike', $pStyles)) {
211 $this->setStrikethrough($pStyles['strike']);
212 }
213 if (array_key_exists('color', $pStyles)) {
214 $this->getColor()->applyFromArray($pStyles['color']);
215 }
216 if (array_key_exists('size', $pStyles)) {
217 $this->setSize($pStyles['size']);
218 }
219 }
220 } else {
221 throw new PHPExcel_Exception("Invalid style array passed.");
222 }
223 return $this;
224 }
225
226 /**
227 * Get Name
228 *
229 * @return string
230 */
231 public function getName() {
232 if ($this->_isSupervisor) {
233 return $this->getSharedComponent()->getName();
234 }
235 return $this->_name;
236 }
237
238 /**
239 * Set Name
240 *
241 * @param string $pValue
242 * @return PHPExcel_Style_Font
243 */
244 public function setName($pValue = 'Calibri') {
245 if ($pValue == '') {
246 $pValue = 'Calibri';
247 }
248 if ($this->_isSupervisor) {
249 $styleArray = $this->getStyleArray(array('name' => $pValue));
250 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
251 } else {
252 $this->_name = $pValue;
253 }
254 return $this;
255 }
256
257 /**
258 * Get Size
259 *
260 * @return double
261 */
262 public function getSize() {
263 if ($this->_isSupervisor) {
264 return $this->getSharedComponent()->getSize();
265 }
266 return $this->_size;
267 }
268
269 /**
270 * Set Size
271 *
272 * @param double $pValue
273 * @return PHPExcel_Style_Font
274 */
275 public function setSize($pValue = 10) {
276 if ($pValue == '') {
277 $pValue = 10;
278 }
279 if ($this->_isSupervisor) {
280 $styleArray = $this->getStyleArray(array('size' => $pValue));
281 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
282 } else {
283 $this->_size = $pValue;
284 }
285 return $this;
286 }
287
288 /**
289 * Get Bold
290 *
291 * @return boolean
292 */
293 public function getBold() {
294 if ($this->_isSupervisor) {
295 return $this->getSharedComponent()->getBold();
296 }
297 return $this->_bold;
298 }
299
300 /**
301 * Set Bold
302 *
303 * @param boolean $pValue
304 * @return PHPExcel_Style_Font
305 */
306 public function setBold($pValue = false) {
307 if ($pValue == '') {
308 $pValue = false;
309 }
310 if ($this->_isSupervisor) {
311 $styleArray = $this->getStyleArray(array('bold' => $pValue));
312 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
313 } else {
314 $this->_bold = $pValue;
315 }
316 return $this;
317 }
318
319 /**
320 * Get Italic
321 *
322 * @return boolean
323 */
324 public function getItalic() {
325 if ($this->_isSupervisor) {
326 return $this->getSharedComponent()->getItalic();
327 }
328 return $this->_italic;
329 }
330
331 /**
332 * Set Italic
333 *
334 * @param boolean $pValue
335 * @return PHPExcel_Style_Font
336 */
337 public function setItalic($pValue = false) {
338 if ($pValue == '') {
339 $pValue = false;
340 }
341 if ($this->_isSupervisor) {
342 $styleArray = $this->getStyleArray(array('italic' => $pValue));
343 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
344 } else {
345 $this->_italic = $pValue;
346 }
347 return $this;
348 }
349
350 /**
351 * Get SuperScript
352 *
353 * @return boolean
354 */
355 public function getSuperScript() {
356 if ($this->_isSupervisor) {
357 return $this->getSharedComponent()->getSuperScript();
358 }
359 return $this->_superScript;
360 }
361
362 /**
363 * Set SuperScript
364 *
365 * @param boolean $pValue
366 * @return PHPExcel_Style_Font
367 */
368 public function setSuperScript($pValue = false) {
369 if ($pValue == '') {
370 $pValue = false;
371 }
372 if ($this->_isSupervisor) {
373 $styleArray = $this->getStyleArray(array('superScript' => $pValue));
374 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
375 } else {
376 $this->_superScript = $pValue;
377 $this->_subScript = !$pValue;
378 }
379 return $this;
380 }
381
382 /**
383 * Get SubScript
384 *
385 * @return boolean
386 */
387 public function getSubScript() {
388 if ($this->_isSupervisor) {
389 return $this->getSharedComponent()->getSubScript();
390 }
391 return $this->_subScript;
392 }
393
394 /**
395 * Set SubScript
396 *
397 * @param boolean $pValue
398 * @return PHPExcel_Style_Font
399 */
400 public function setSubScript($pValue = false) {
401 if ($pValue == '') {
402 $pValue = false;
403 }
404 if ($this->_isSupervisor) {
405 $styleArray = $this->getStyleArray(array('subScript' => $pValue));
406 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
407 } else {
408 $this->_subScript = $pValue;
409 $this->_superScript = !$pValue;
410 }
411 return $this;
412 }
413
414 /**
415 * Get Underline
416 *
417 * @return string
418 */
419 public function getUnderline() {
420 if ($this->_isSupervisor) {
421 return $this->getSharedComponent()->getUnderline();
422 }
423 return $this->_underline;
424 }
425
426 /**
427 * Set Underline
428 *
429 * @param string|boolean $pValue PHPExcel_Style_Font underline type
430 * If a boolean is passed, then TRUE equates to UNDERLINE_SINGLE,
431 * false equates to UNDERLINE_NONE
432 * @return PHPExcel_Style_Font
433 */
434 public function setUnderline($pValue = self::UNDERLINE_NONE) {
435 if (is_bool($pValue)) {
436 $pValue = ($pValue) ? self::UNDERLINE_SINGLE : self::UNDERLINE_NONE;
437 } elseif ($pValue == '') {
438 $pValue = self::UNDERLINE_NONE;
439 }
440 if ($this->_isSupervisor) {
441 $styleArray = $this->getStyleArray(array('underline' => $pValue));
442 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
443 } else {
444 $this->_underline = $pValue;
445 }
446 return $this;
447 }
448
449 /**
450 * Get Strikethrough
451 *
452 * @return boolean
453 */
454 public function getStrikethrough() {
455 if ($this->_isSupervisor) {
456 return $this->getSharedComponent()->getStrikethrough();
457 }
458 return $this->_strikethrough;
459 }
460
461 /**
462 * Set Strikethrough
463 *
464 * @param boolean $pValue
465 * @return PHPExcel_Style_Font
466 */
467 public function setStrikethrough($pValue = false) {
468 if ($pValue == '') {
469 $pValue = false;
470 }
471 if ($this->_isSupervisor) {
472 $styleArray = $this->getStyleArray(array('strike' => $pValue));
473 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
474 } else {
475 $this->_strikethrough = $pValue;
476 }
477 return $this;
478 }
479
480 /**
481 * Get Color
482 *
483 * @return PHPExcel_Style_Color
484 */
485 public function getColor() {
486 return $this->_color;
487 }
488
489 /**
490 * Set Color
491 *
492 * @param PHPExcel_Style_Color $pValue
493 * @throws PHPExcel_Exception
494 * @return PHPExcel_Style_Font
495 */
496 public function setColor(PHPExcel_Style_Color $pValue = null) {
497 // make sure parameter is a real color and not a supervisor
498 $color = $pValue->getIsSupervisor() ? $pValue->getSharedComponent() : $pValue;
499
500 if ($this->_isSupervisor) {
501 $styleArray = $this->getColor()->getStyleArray(array('argb' => $color->getARGB()));
502 $this->getActiveSheet()->getStyle($this->getSelectedCells())->applyFromArray($styleArray);
503 } else {
504 $this->_color = $color;
505 }
506 return $this;
507 }
508
509 /**
510 * Get hash code
511 *
512 * @return string Hash code
513 */
514 public function getHashCode() {
515 if ($this->_isSupervisor) {
516 return $this->getSharedComponent()->getHashCode();
517 }
518 return md5(
519 $this->_name
520 . $this->_size
521 . ($this->_bold ? 't' : 'f')
522 . ($this->_italic ? 't' : 'f')
523 . ($this->_superScript ? 't' : 'f')
524 . ($this->_subScript ? 't' : 'f')
525 . $this->_underline
526 . ($this->_strikethrough ? 't' : 'f')
527 . $this->_color->getHashCode()
528 . __CLASS__
529 );
530 }
531
532 }
533