Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | 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_HeaderFooterDrawing
31
 *
32
 * @category   PHPExcel
33
 * @package    PHPExcel_Worksheet
34
 * @copyright  Copyright (c) 2006 - 2013 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
}