File Source for HeaderFooterDrawing.php

PHPExcel_Worksheet

# Source for file HeaderFooterDrawing.php

Documentation is available at HeaderFooterDrawing.php

1. <?php
2. /**
3. * PHPExcel
4. *
5. * Copyright (c) 2006 - 2011 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 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel)
24. * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
25. * @version 1.7.6, 2011-02-27
26. */
29. /**
30. * PHPExcel_Worksheet_HeaderFooterDrawing
31. *
32. * @category PHPExcel
33. * @package PHPExcel_Worksheet
34. * @copyright Copyright (c) 2006 - 2011 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;
45. /**
46. * Name
47. *
48. * @var string
49. */
50. protected $_name;
52. /**
53. * Offset X
54. *
55. * @var int
56. */
57. protected $_offsetX;
59. /**
60. * Offset Y
61. *
62. * @var int
63. */
64. protected $_offsetY;
66. /**
67. * Width
68. *
69. * @var int
70. */
71. protected $_width;
73. /**
74. * Height
75. *
76. * @var int
77. */
78. protected $_height;
80. /**
81. * Proportional resize
82. *
83. * @var boolean
84. */
85. protected $_resizeProportional;
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. }
102. /**
103. * Get Name
104. *
105. * @return string
106. */
107. public function getName() {
108. return $this->_name;
109. }
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. }
122. /**
123. * Get OffsetX
124. *
125. * @return int
126. */
127. public function getOffsetX() {
128. return $this->_offsetX;
129. }
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. }
142. /**
143. * Get OffsetY
144. *
145. * @return int
146. */
147. public function getOffsetY() {
148. return $this->_offsetY;
149. }
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. }
162. /**
163. * Get Width
164. *
165. * @return int
166. */
167. public function getWidth() {
168. return $this->_width;
169. }
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. }
184. // Set width
185. $this->_width = $pValue;
187. return $this;
188. }
190. /**
191. * Get Height
192. *
193. * @return int
194. */
195. public function getHeight() {
196. return $this->_height;
197. }
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. }
212. // Set height
213. $this->_height = $pValue;
215. return $this;
216. }
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. }
246. /**
247. * Get ResizeProportional
248. *
249. * @return boolean
250. */
251. public function getResizeProportional() {
252. return $this->_resizeProportional;
253. }
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. }
266. /**
267. * Get Filename
268. *
269. * @return string
270. */
271. public function getFilename() {
272. return basename($this->_path);
273. }
275. /**
276. * Get Extension
277. *
278. * @return string
279. */
280. public function getExtension() {
281. $parts = explode(".", basename($this->_path));
282. return end($parts);
283. }
285. /**
286. * Get Path
287. *
288. * @return string
289. */
290. public function getPath() {
291. return $this->_path;
292. }
294. /**
295. * Set Path
296. *
297. * @param string $pValue File path
298. * @param boolean $pVerifyFile Verify file
299. * @throws 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;
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 Exception("File $pValue not found!");
313. }
314. } else {
315. $this->_path = $pValue;
316. }
317. return $this;
318. }
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. }
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. }

Documentation generated on Sun, 27 Feb 2011 16:32:17 -0800 by phpDocumentor 1.4.3