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 / Writer / Excel2007 / Drawing.php

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

599 lines 19.4 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_Excel2007
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_Excel2007_Drawing
31 *
32 * @category PHPExcel
33 * @package PHPExcel_Writer_Excel2007
34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36 class PHPExcel_Writer_Excel2007_Drawing extends PHPExcel_Writer_Excel2007_WriterPart
37 {
38 /**
39 * Write drawings to XML format
40 *
41 * @param PHPExcel_Worksheet $pWorksheet
42 * @param int &$chartRef Chart ID
43 * @param boolean $includeCharts Flag indicating if we should include drawing details for charts
44 * @return string XML Output
45 * @throws PHPExcel_Writer_Exception
46 */
47 public function writeDrawings(PHPExcel_Worksheet $pWorksheet = null, &$chartRef, $includeCharts = FALSE)
48 {
49 // Create XML writer
50 $objWriter = null;
51 if ($this->getParentWriter()->getUseDiskCaching()) {
52 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
53 } else {
54 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
55 }
56
57 // XML header
58 $objWriter->startDocument('1.0','UTF-8','yes');
59
60 // xdr:wsDr
61 $objWriter->startElement('xdr:wsDr');
62 $objWriter->writeAttribute('xmlns:xdr', 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing');
63 $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
64
65 // Loop through images and write drawings
66 $i = 1;
67 $iterator = $pWorksheet->getDrawingCollection()->getIterator();
68 while ($iterator->valid()) {
69 $this->_writeDrawing($objWriter, $iterator->current(), $i);
70
71 $iterator->next();
72 ++$i;
73 }
74
75 if ($includeCharts) {
76 $chartCount = $pWorksheet->getChartCount();
77 // Loop through charts and write the chart position
78 if ($chartCount > 0) {
79 for ($c = 0; $c < $chartCount; ++$c) {
80 $this->_writeChart($objWriter, $pWorksheet->getChartByIndex($c), $c+$i);
81 }
82 }
83 }
84
85
86 $objWriter->endElement();
87
88 // Return
89 return $objWriter->getData();
90 }
91
92 /**
93 * Write drawings to XML format
94 *
95 * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer
96 * @param PHPExcel_Chart $pChart
97 * @param int $pRelationId
98 * @throws PHPExcel_Writer_Exception
99 */
100 public function _writeChart(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Chart $pChart = null, $pRelationId = -1)
101 {
102 $tl = $pChart->getTopLeftPosition();
103 $tl['colRow'] = PHPExcel_Cell::coordinateFromString($tl['cell']);
104 $br = $pChart->getBottomRightPosition();
105 $br['colRow'] = PHPExcel_Cell::coordinateFromString($br['cell']);
106
107 $objWriter->startElement('xdr:twoCellAnchor');
108
109 $objWriter->startElement('xdr:from');
110 $objWriter->writeElement('xdr:col', PHPExcel_Cell::columnIndexFromString($tl['colRow'][0]) - 1);
111 $objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($tl['xOffset']));
112 $objWriter->writeElement('xdr:row', $tl['colRow'][1] - 1);
113 $objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($tl['yOffset']));
114 $objWriter->endElement();
115 $objWriter->startElement('xdr:to');
116 $objWriter->writeElement('xdr:col', PHPExcel_Cell::columnIndexFromString($br['colRow'][0]) - 1);
117 $objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($br['xOffset']));
118 $objWriter->writeElement('xdr:row', $br['colRow'][1] - 1);
119 $objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($br['yOffset']));
120 $objWriter->endElement();
121
122 $objWriter->startElement('xdr:graphicFrame');
123 $objWriter->writeAttribute('macro', '');
124 $objWriter->startElement('xdr:nvGraphicFramePr');
125 $objWriter->startElement('xdr:cNvPr');
126 $objWriter->writeAttribute('name', 'Chart '.$pRelationId);
127 $objWriter->writeAttribute('id', 1025 * $pRelationId);
128 $objWriter->endElement();
129 $objWriter->startElement('xdr:cNvGraphicFramePr');
130 $objWriter->startElement('a:graphicFrameLocks');
131 $objWriter->endElement();
132 $objWriter->endElement();
133 $objWriter->endElement();
134
135 $objWriter->startElement('xdr:xfrm');
136 $objWriter->startElement('a:off');
137 $objWriter->writeAttribute('x', '0');
138 $objWriter->writeAttribute('y', '0');
139 $objWriter->endElement();
140 $objWriter->startElement('a:ext');
141 $objWriter->writeAttribute('cx', '0');
142 $objWriter->writeAttribute('cy', '0');
143 $objWriter->endElement();
144 $objWriter->endElement();
145
146 $objWriter->startElement('a:graphic');
147 $objWriter->startElement('a:graphicData');
148 $objWriter->writeAttribute('uri', 'http://schemas.openxmlformats.org/drawingml/2006/chart');
149 $objWriter->startElement('c:chart');
150 $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart');
151 $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
152 $objWriter->writeAttribute('r:id', 'rId'.$pRelationId);
153 $objWriter->endElement();
154 $objWriter->endElement();
155 $objWriter->endElement();
156 $objWriter->endElement();
157
158 $objWriter->startElement('xdr:clientData');
159 $objWriter->endElement();
160
161 $objWriter->endElement();
162 }
163
164 /**
165 * Write drawings to XML format
166 *
167 * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer
168 * @param PHPExcel_Worksheet_BaseDrawing $pDrawing
169 * @param int $pRelationId
170 * @throws PHPExcel_Writer_Exception
171 */
172 public function _writeDrawing(PHPExcel_Shared_XMLWriter $objWriter = null, PHPExcel_Worksheet_BaseDrawing $pDrawing = null, $pRelationId = -1)
173 {
174 if ($pRelationId >= 0) {
175 // xdr:oneCellAnchor
176 $objWriter->startElement('xdr:oneCellAnchor');
177 // Image location
178 $aCoordinates = PHPExcel_Cell::coordinateFromString($pDrawing->getCoordinates());
179 $aCoordinates[0] = PHPExcel_Cell::columnIndexFromString($aCoordinates[0]);
180
181 // xdr:from
182 $objWriter->startElement('xdr:from');
183 $objWriter->writeElement('xdr:col', $aCoordinates[0] - 1);
184 $objWriter->writeElement('xdr:colOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getOffsetX()));
185 $objWriter->writeElement('xdr:row', $aCoordinates[1] - 1);
186 $objWriter->writeElement('xdr:rowOff', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getOffsetY()));
187 $objWriter->endElement();
188
189 // xdr:ext
190 $objWriter->startElement('xdr:ext');
191 $objWriter->writeAttribute('cx', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getWidth()));
192 $objWriter->writeAttribute('cy', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getHeight()));
193 $objWriter->endElement();
194
195 // xdr:pic
196 $objWriter->startElement('xdr:pic');
197
198 // xdr:nvPicPr
199 $objWriter->startElement('xdr:nvPicPr');
200
201 // xdr:cNvPr
202 $objWriter->startElement('xdr:cNvPr');
203 $objWriter->writeAttribute('id', $pRelationId);
204 $objWriter->writeAttribute('name', $pDrawing->getName());
205 $objWriter->writeAttribute('descr', $pDrawing->getDescription());
206 $objWriter->endElement();
207
208 // xdr:cNvPicPr
209 $objWriter->startElement('xdr:cNvPicPr');
210
211 // a:picLocks
212 $objWriter->startElement('a:picLocks');
213 $objWriter->writeAttribute('noChangeAspect', '1');
214 $objWriter->endElement();
215
216 $objWriter->endElement();
217
218 $objWriter->endElement();
219
220 // xdr:blipFill
221 $objWriter->startElement('xdr:blipFill');
222
223 // a:blip
224 $objWriter->startElement('a:blip');
225 $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
226 $objWriter->writeAttribute('r:embed', 'rId' . $pRelationId);
227 $objWriter->endElement();
228
229 // a:stretch
230 $objWriter->startElement('a:stretch');
231 $objWriter->writeElement('a:fillRect', null);
232 $objWriter->endElement();
233
234 $objWriter->endElement();
235
236 // xdr:spPr
237 $objWriter->startElement('xdr:spPr');
238
239 // a:xfrm
240 $objWriter->startElement('a:xfrm');
241 $objWriter->writeAttribute('rot', PHPExcel_Shared_Drawing::degreesToAngle($pDrawing->getRotation()));
242 $objWriter->endElement();
243
244 // a:prstGeom
245 $objWriter->startElement('a:prstGeom');
246 $objWriter->writeAttribute('prst', 'rect');
247
248 // a:avLst
249 $objWriter->writeElement('a:avLst', null);
250
251 $objWriter->endElement();
252
253 // // a:solidFill
254 // $objWriter->startElement('a:solidFill');
255
256 // // a:srgbClr
257 // $objWriter->startElement('a:srgbClr');
258 // $objWriter->writeAttribute('val', 'FFFFFF');
259
260 ///* SHADE
261 // // a:shade
262 // $objWriter->startElement('a:shade');
263 // $objWriter->writeAttribute('val', '85000');
264 // $objWriter->endElement();
265 //*/
266
267 // $objWriter->endElement();
268
269 // $objWriter->endElement();
270 /*
271 // a:ln
272 $objWriter->startElement('a:ln');
273 $objWriter->writeAttribute('w', '88900');
274 $objWriter->writeAttribute('cap', 'sq');
275
276 // a:solidFill
277 $objWriter->startElement('a:solidFill');
278
279 // a:srgbClr
280 $objWriter->startElement('a:srgbClr');
281 $objWriter->writeAttribute('val', 'FFFFFF');
282 $objWriter->endElement();
283
284 $objWriter->endElement();
285
286 // a:miter
287 $objWriter->startElement('a:miter');
288 $objWriter->writeAttribute('lim', '800000');
289 $objWriter->endElement();
290
291 $objWriter->endElement();
292 */
293
294 if ($pDrawing->getShadow()->getVisible()) {
295 // a:effectLst
296 $objWriter->startElement('a:effectLst');
297
298 // a:outerShdw
299 $objWriter->startElement('a:outerShdw');
300 $objWriter->writeAttribute('blurRad', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getShadow()->getBlurRadius()));
301 $objWriter->writeAttribute('dist', PHPExcel_Shared_Drawing::pixelsToEMU($pDrawing->getShadow()->getDistance()));
302 $objWriter->writeAttribute('dir', PHPExcel_Shared_Drawing::degreesToAngle($pDrawing->getShadow()->getDirection()));
303 $objWriter->writeAttribute('algn', $pDrawing->getShadow()->getAlignment());
304 $objWriter->writeAttribute('rotWithShape', '0');
305
306 // a:srgbClr
307 $objWriter->startElement('a:srgbClr');
308 $objWriter->writeAttribute('val', $pDrawing->getShadow()->getColor()->getRGB());
309
310 // a:alpha
311 $objWriter->startElement('a:alpha');
312 $objWriter->writeAttribute('val', $pDrawing->getShadow()->getAlpha() * 1000);
313 $objWriter->endElement();
314
315 $objWriter->endElement();
316
317 $objWriter->endElement();
318
319 $objWriter->endElement();
320 }
321 /*
322
323 // a:scene3d
324 $objWriter->startElement('a:scene3d');
325
326 // a:camera
327 $objWriter->startElement('a:camera');
328 $objWriter->writeAttribute('prst', 'orthographicFront');
329 $objWriter->endElement();
330
331 // a:lightRig
332 $objWriter->startElement('a:lightRig');
333 $objWriter->writeAttribute('rig', 'twoPt');
334 $objWriter->writeAttribute('dir', 't');
335
336 // a:rot
337 $objWriter->startElement('a:rot');
338 $objWriter->writeAttribute('lat', '0');
339 $objWriter->writeAttribute('lon', '0');
340 $objWriter->writeAttribute('rev', '0');
341 $objWriter->endElement();
342
343 $objWriter->endElement();
344
345 $objWriter->endElement();
346 */
347 /*
348 // a:sp3d
349 $objWriter->startElement('a:sp3d');
350
351 // a:bevelT
352 $objWriter->startElement('a:bevelT');
353 $objWriter->writeAttribute('w', '25400');
354 $objWriter->writeAttribute('h', '19050');
355 $objWriter->endElement();
356
357 // a:contourClr
358 $objWriter->startElement('a:contourClr');
359
360 // a:srgbClr
361 $objWriter->startElement('a:srgbClr');
362 $objWriter->writeAttribute('val', 'FFFFFF');
363 $objWriter->endElement();
364
365 $objWriter->endElement();
366
367 $objWriter->endElement();
368 */
369 $objWriter->endElement();
370
371 $objWriter->endElement();
372
373 // xdr:clientData
374 $objWriter->writeElement('xdr:clientData', null);
375
376 $objWriter->endElement();
377 } else {
378 throw new PHPExcel_Writer_Exception("Invalid parameters passed.");
379 }
380 }
381
382 /**
383 * Write VML header/footer images to XML format
384 *
385 * @param PHPExcel_Worksheet $pWorksheet
386 * @return string XML Output
387 * @throws PHPExcel_Writer_Exception
388 */
389 public function writeVMLHeaderFooterImages(PHPExcel_Worksheet $pWorksheet = null)
390 {
391 // Create XML writer
392 $objWriter = null;
393 if ($this->getParentWriter()->getUseDiskCaching()) {
394 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
395 } else {
396 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY);
397 }
398
399 // XML header
400 $objWriter->startDocument('1.0','UTF-8','yes');
401
402 // Header/footer images
403 $images = $pWorksheet->getHeaderFooter()->getImages();
404
405 // xml
406 $objWriter->startElement('xml');
407 $objWriter->writeAttribute('xmlns:v', 'urn:schemas-microsoft-com:vml');
408 $objWriter->writeAttribute('xmlns:o', 'urn:schemas-microsoft-com:office:office');
409 $objWriter->writeAttribute('xmlns:x', 'urn:schemas-microsoft-com:office:excel');
410
411 // o:shapelayout
412 $objWriter->startElement('o:shapelayout');
413 $objWriter->writeAttribute('v:ext', 'edit');
414
415 // o:idmap
416 $objWriter->startElement('o:idmap');
417 $objWriter->writeAttribute('v:ext', 'edit');
418 $objWriter->writeAttribute('data', '1');
419 $objWriter->endElement();
420
421 $objWriter->endElement();
422
423 // v:shapetype
424 $objWriter->startElement('v:shapetype');
425 $objWriter->writeAttribute('id', '_x0000_t75');
426 $objWriter->writeAttribute('coordsize', '21600,21600');
427 $objWriter->writeAttribute('o:spt', '75');
428 $objWriter->writeAttribute('o:preferrelative', 't');
429 $objWriter->writeAttribute('path', 'm@4@5l@4@11@9@11@9@5xe');
430 $objWriter->writeAttribute('filled', 'f');
431 $objWriter->writeAttribute('stroked', 'f');
432
433 // v:stroke
434 $objWriter->startElement('v:stroke');
435 $objWriter->writeAttribute('joinstyle', 'miter');
436 $objWriter->endElement();
437
438 // v:formulas
439 $objWriter->startElement('v:formulas');
440
441 // v:f
442 $objWriter->startElement('v:f');
443 $objWriter->writeAttribute('eqn', 'if lineDrawn pixelLineWidth 0');
444 $objWriter->endElement();
445
446 // v:f
447 $objWriter->startElement('v:f');
448 $objWriter->writeAttribute('eqn', 'sum @0 1 0');
449 $objWriter->endElement();
450
451 // v:f
452 $objWriter->startElement('v:f');
453 $objWriter->writeAttribute('eqn', 'sum 0 0 @1');
454 $objWriter->endElement();
455
456 // v:f
457 $objWriter->startElement('v:f');
458 $objWriter->writeAttribute('eqn', 'prod @2 1 2');
459 $objWriter->endElement();
460
461 // v:f
462 $objWriter->startElement('v:f');
463 $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelWidth');
464 $objWriter->endElement();
465
466 // v:f
467 $objWriter->startElement('v:f');
468 $objWriter->writeAttribute('eqn', 'prod @3 21600 pixelHeight');
469 $objWriter->endElement();
470
471 // v:f
472 $objWriter->startElement('v:f');
473 $objWriter->writeAttribute('eqn', 'sum @0 0 1');
474 $objWriter->endElement();
475
476 // v:f
477 $objWriter->startElement('v:f');
478 $objWriter->writeAttribute('eqn', 'prod @6 1 2');
479 $objWriter->endElement();
480
481 // v:f
482 $objWriter->startElement('v:f');
483 $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelWidth');
484 $objWriter->endElement();
485
486 // v:f
487 $objWriter->startElement('v:f');
488 $objWriter->writeAttribute('eqn', 'sum @8 21600 0');
489 $objWriter->endElement();
490
491 // v:f
492 $objWriter->startElement('v:f');
493 $objWriter->writeAttribute('eqn', 'prod @7 21600 pixelHeight');
494 $objWriter->endElement();
495
496 // v:f
497 $objWriter->startElement('v:f');
498 $objWriter->writeAttribute('eqn', 'sum @10 21600 0');
499 $objWriter->endElement();
500
501 $objWriter->endElement();
502
503 // v:path
504 $objWriter->startElement('v:path');
505 $objWriter->writeAttribute('o:extrusionok', 'f');
506 $objWriter->writeAttribute('gradientshapeok', 't');
507 $objWriter->writeAttribute('o:connecttype', 'rect');
508 $objWriter->endElement();
509
510 // o:lock
511 $objWriter->startElement('o:lock');
512 $objWriter->writeAttribute('v:ext', 'edit');
513 $objWriter->writeAttribute('aspectratio', 't');
514 $objWriter->endElement();
515
516 $objWriter->endElement();
517
518 // Loop through images
519 foreach ($images as $key => $value) {
520 $this->_writeVMLHeaderFooterImage($objWriter, $key, $value);
521 }
522
523 $objWriter->endElement();
524
525 // Return
526 return $objWriter->getData();
527 }
528
529 /**
530 * Write VML comment to XML format
531 *
532 * @param PHPExcel_Shared_XMLWriter $objWriter XML Writer
533 * @param string $pReference Reference
534 * @param PHPExcel_Worksheet_HeaderFooterDrawing $pImage Image
535 * @throws PHPExcel_Writer_Exception
536 */
537 public function _writeVMLHeaderFooterImage(PHPExcel_Shared_XMLWriter $objWriter = null, $pReference = '', PHPExcel_Worksheet_HeaderFooterDrawing $pImage = null)
538 {
539 // Calculate object id
540 preg_match('{(\d+)}', md5($pReference), $m);
541 $id = 1500 + (substr($m[1], 0, 2) * 1);
542
543 // Calculate offset
544 $width = $pImage->getWidth();
545 $height = $pImage->getHeight();
546 $marginLeft = $pImage->getOffsetX();
547 $marginTop = $pImage->getOffsetY();
548
549 // v:shape
550 $objWriter->startElement('v:shape');
551 $objWriter->writeAttribute('id', $pReference);
552 $objWriter->writeAttribute('o:spid', '_x0000_s' . $id);
553 $objWriter->writeAttribute('type', '#_x0000_t75');
554 $objWriter->writeAttribute('style', "position:absolute;margin-left:{$marginLeft}px;margin-top:{$marginTop}px;width:{$width}px;height:{$height}px;z-index:1");
555
556 // v:imagedata
557 $objWriter->startElement('v:imagedata');
558 $objWriter->writeAttribute('o:relid', 'rId' . $pReference);
559 $objWriter->writeAttribute('o:title', $pImage->getName());
560 $objWriter->endElement();
561
562 // o:lock
563 $objWriter->startElement('o:lock');
564 $objWriter->writeAttribute('v:ext', 'edit');
565 $objWriter->writeAttribute('rotation', 't');
566 $objWriter->endElement();
567
568 $objWriter->endElement();
569 }
570
571
572 /**
573 * Get an array of all drawings
574 *
575 * @param PHPExcel $pPHPExcel
576 * @return PHPExcel_Worksheet_Drawing[] All drawings in PHPExcel
577 * @throws PHPExcel_Writer_Exception
578 */
579 public function allDrawings(PHPExcel $pPHPExcel = null)
580 {
581 // Get an array of all drawings
582 $aDrawings = array();
583
584 // Loop through PHPExcel
585 $sheetCount = $pPHPExcel->getSheetCount();
586 for ($i = 0; $i < $sheetCount; ++$i) {
587 // Loop through images and add to array
588 $iterator = $pPHPExcel->getSheet($i)->getDrawingCollection()->getIterator();
589 while ($iterator->valid()) {
590 $aDrawings[] = $iterator->current();
591
592 $iterator->next();
593 }
594 }
595
596 return $aDrawings;
597 }
598 }
599