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 / HeaderFooterDrawing.php

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

351 lines 7.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_HeaderFooterDrawing
31 *
32 * @category PHPExcel
33 * @package PHPExcel_Worksheet
34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36 class PHPExcel_Worksheet_HeaderFooterDrawing extends PHPExcel_Worksheet_Drawing implements PHPExcel_IComparable
37 {
38 /**
39 * Path
40 *
41 * @var string
42 */
43 private $_path;
44
45 /**
46 * Name
47 *
48 * @var string
49 */
50 protected $_name;
51
52 /**
53 * Offset X
54 *
55 * @var int
56 */
57 protected $_offsetX;
58
59 /**
60 * Offset Y
61 *
62 * @var int
63 */
64 protected $_offsetY;
65
66 /**
67 * Width
68 *
69 * @var int
70 */
71 protected $_width;
72
73 /**
74 * Height
75 *
76 * @var int
77 */
78 protected $_height;
79
80 /**
81 * Proportional resize
82 *
83 * @var boolean
84 */
85 protected $_resizeProportional;
86
87 /**
88 * Create a new PHPExcel_Worksheet_HeaderFooterDrawing
89 */
90 public function __construct()
91 {
92 // Initialise values
93 $this->_path = '';
94 $this->_name = '';
95 $this->_offsetX = 0;
96 $this->_offsetY = 0;
97 $this->_width = 0;
98 $this->_height = 0;
99 $this->_resizeProportional = true;
100 }
101
102 /**
103 * Get Name
104 *
105 * @return string
106 */
107 public function getName() {
108 return $this->_name;
109 }
110
111 /**
112 * Set Name
113 *
114 * @param string $pValue
115 * @return PHPExcel_Worksheet_HeaderFooterDrawing
116 */
117 public function setName($pValue = '') {
118 $this->_name = $pValue;
119 return $this;
120 }
121
122 /**
123 * Get OffsetX
124 *
125 * @return int
126 */
127 public function getOffsetX() {
128 return $this->_offsetX;
129 }
130
131 /**
132 * Set OffsetX
133 *
134 * @param int $pValue
135 * @return PHPExcel_Worksheet_HeaderFooterDrawing
136 */
137 public function setOffsetX($pValue = 0) {
138 $this->_offsetX = $pValue;
139 return $this;
140 }
141
142 /**
143 * Get OffsetY
144 *
145 * @return int
146 */
147 public function getOffsetY() {
148 return $this->_offsetY;
149 }
150
151 /**
152 * Set OffsetY
153 *
154 * @param int $pValue
155 * @return PHPExcel_Worksheet_HeaderFooterDrawing
156 */
157 public function setOffsetY($pValue = 0) {
158 $this->_offsetY = $pValue;
159 return $this;
160 }
161
162 /**
163 * Get Width
164 *
165 * @return int
166 */
167 public function getWidth() {
168 return $this->_width;
169 }
170
171 /**
172 * Set Width
173 *
174 * @param int $pValue
175 * @return PHPExcel_Worksheet_HeaderFooterDrawing
176 */
177 public function setWidth($pValue = 0) {
178 // Resize proportional?
179 if ($this->_resizeProportional && $pValue != 0) {
180 $ratio = $this->_width / $this->_height;
181 $this->_height = round($ratio * $pValue);
182 }
183
184 // Set width
185 $this->_width = $pValue;
186
187 return $this;
188 }
189
190 /**
191 * Get Height
192 *
193 * @return int
194 */
195 public function getHeight() {
196 return $this->_height;
197 }
198
199 /**
200 * Set Height
201 *
202 * @param int $pValue
203 * @return PHPExcel_Worksheet_HeaderFooterDrawing
204 */
205 public function setHeight($pValue = 0) {
206 // Resize proportional?
207 if ($this->_resizeProportional && $pValue != 0) {
208 $ratio = $this->_width / $this->_height;
209 $this->_width = round($ratio * $pValue);
210 }
211
212 // Set height
213 $this->_height = $pValue;
214
215 return $this;
216 }
217
218 /**
219 * Set width and height with proportional resize
220 * Example:
221 * <code>
222 * $objDrawing->setResizeProportional(true);
223 * $objDrawing->setWidthAndHeight(160,120);
224 * </code>
225 *
226 * @author Vincent@luo MSN:kele_100@hotmail.com
227 * @param int $width
228 * @param int $height
229 * @return PHPExcel_Worksheet_HeaderFooterDrawing
230 */
231 public function setWidthAndHeight($width = 0, $height = 0) {
232 $xratio = $width / $this->_width;
233 $yratio = $height / $this->_height;
234 if ($this->_resizeProportional && !($width == 0 || $height == 0)) {
235 if (($xratio * $this->_height) < $height) {
236 $this->_height = ceil($xratio * $this->_height);
237 $this->_width = $width;
238 } else {
239 $this->_width = ceil($yratio * $this->_width);
240 $this->_height = $height;
241 }
242 }
243 return $this;
244 }
245
246 /**
247 * Get ResizeProportional
248 *
249 * @return boolean
250 */
251 public function getResizeProportional() {
252 return $this->_resizeProportional;
253 }
254
255 /**
256 * Set ResizeProportional
257 *
258 * @param boolean $pValue
259 * @return PHPExcel_Worksheet_HeaderFooterDrawing
260 */
261 public function setResizeProportional($pValue = true) {
262 $this->_resizeProportional = $pValue;
263 return $this;
264 }
265
266 /**
267 * Get Filename
268 *
269 * @return string
270 */
271 public function getFilename() {
272 return basename($this->_path);
273 }
274
275 /**
276 * Get Extension
277 *
278 * @return string
279 */
280 public function getExtension() {
281 $parts = explode(".", basename($this->_path));
282 return end($parts);
283 }
284
285 /**
286 * Get Path
287 *
288 * @return string
289 */
290 public function getPath() {
291 return $this->_path;
292 }
293
294 /**
295 * Set Path
296 *
297 * @param string $pValue File path
298 * @param boolean $pVerifyFile Verify file
299 * @throws PHPExcel_Exception
300 * @return PHPExcel_Worksheet_HeaderFooterDrawing
301 */
302 public function setPath($pValue = '', $pVerifyFile = true) {
303 if ($pVerifyFile) {
304 if (file_exists($pValue)) {
305 $this->_path = $pValue;
306
307 if ($this->_width == 0 && $this->_height == 0) {
308 // Get width/height
309 list($this->_width, $this->_height) = getimagesize($pValue);
310 }
311 } else {
312 throw new PHPExcel_Exception("File $pValue not found!");
313 }
314 } else {
315 $this->_path = $pValue;
316 }
317 return $this;
318 }
319
320 /**
321 * Get hash code
322 *
323 * @return string Hash code
324 */
325 public function getHashCode() {
326 return md5(
327 $this->_path
328 . $this->_name
329 . $this->_offsetX
330 . $this->_offsetY
331 . $this->_width
332 . $this->_height
333 . __CLASS__
334 );
335 }
336
337 /**
338 * Implement PHP __clone to create a deep clone, not just a shallow copy.
339 */
340 public function __clone() {
341 $vars = get_object_vars($this);
342 foreach ($vars as $key => $value) {
343 if (is_object($value)) {
344 $this->$key = clone $value;
345 } else {
346 $this->$key = $value;
347 }
348 }
349 }
350 }
351