PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.0.10
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.0.10
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 / Writer / Excel5 / Font.php

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

166 lines 3.9 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_Writer_Excel5
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_Writer_Excel5_Font
31 *
32 * @category PHPExcel
33 * @package PHPExcel_Writer_Excel5
34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36 class PHPExcel_Writer_Excel5_Font
37 {
38 /**
39 * Color index
40 *
41 * @var int
42 */
43 private $_colorIndex;
44
45 /**
46 * Font
47 *
48 * @var PHPExcel_Style_Font
49 */
50 private $_font;
51
52 /**
53 * Constructor
54 *
55 * @param PHPExcel_Style_Font $font
56 */
57 public function __construct(PHPExcel_Style_Font $font = null)
58 {
59 $this->_colorIndex = 0x7FFF;
60 $this->_font = $font;
61 }
62
63 /**
64 * Set the color index
65 *
66 * @param int $colorIndex
67 */
68 public function setColorIndex($colorIndex)
69 {
70 $this->_colorIndex = $colorIndex;
71 }
72
73 /**
74 * Get font record data
75 *
76 * @return string
77 */
78 public function writeFont()
79 {
80 $font_outline = 0;
81 $font_shadow = 0;
82
83 $icv = $this->_colorIndex; // Index to color palette
84 if ($this->_font->getSuperScript()) {
85 $sss = 1;
86 } else if ($this->_font->getSubScript()) {
87 $sss = 2;
88 } else {
89 $sss = 0;
90 }
91 $bFamily = 0; // Font family
92 $bCharSet = PHPExcel_Shared_Font::getCharsetFromFontName($this->_font->getName()); // Character set
93
94 $record = 0x31; // Record identifier
95 $reserved = 0x00; // Reserved
96 $grbit = 0x00; // Font attributes
97 if ($this->_font->getItalic()) {
98 $grbit |= 0x02;
99 }
100 if ($this->_font->getStrikethrough()) {
101 $grbit |= 0x08;
102 }
103 if ($font_outline) {
104 $grbit |= 0x10;
105 }
106 if ($font_shadow) {
107 $grbit |= 0x20;
108 }
109
110 $data = pack("vvvvvCCCC",
111 $this->_font->getSize() * 20, // Fontsize (in twips)
112 $grbit,
113 $icv, // Colour
114 self::_mapBold($this->_font->getBold()), // Font weight
115 $sss, // Superscript/Subscript
116 self::_mapUnderline($this->_font->getUnderline()),
117 $bFamily,
118 $bCharSet,
119 $reserved
120 );
121 $data .= PHPExcel_Shared_String::UTF8toBIFF8UnicodeShort($this->_font->getName());
122
123 $length = strlen($data);
124 $header = pack("vv", $record, $length);
125
126 return($header . $data);
127 }
128
129 /**
130 * Map to BIFF5-BIFF8 codes for bold
131 *
132 * @param boolean $bold
133 * @return int
134 */
135 private static function _mapBold($bold) {
136 if ($bold) {
137 return 0x2BC; // 700 = Bold font weight
138 }
139 return 0x190; // 400 = Normal font weight
140 }
141
142 /**
143 * Map of BIFF2-BIFF8 codes for underline styles
144 * @static array of int
145 *
146 */
147 private static $_mapUnderline = array( PHPExcel_Style_Font::UNDERLINE_NONE => 0x00,
148 PHPExcel_Style_Font::UNDERLINE_SINGLE => 0x01,
149 PHPExcel_Style_Font::UNDERLINE_DOUBLE => 0x02,
150 PHPExcel_Style_Font::UNDERLINE_SINGLEACCOUNTING => 0x21,
151 PHPExcel_Style_Font::UNDERLINE_DOUBLEACCOUNTING => 0x22,
152 );
153 /**
154 * Map underline
155 *
156 * @param string
157 * @return int
158 */
159 private static function _mapUnderline($underline) {
160 if (isset(self::$_mapUnderline[$underline]))
161 return self::$_mapUnderline[$underline];
162 return 0x00;
163 }
164
165 }
166