Exemple #1
0
 /**
  * Write presentation to XML format
  *
  * @param  PHPPowerPoint $pPHPPowerPoint
  * @return string        XML Output
  * @throws Exception
  */
 public function writePresentation(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // p:presentation
     $objWriter->startElement('p:presentation');
     $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
     $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
     $objWriter->writeAttribute('xmlns:p', 'http://schemas.openxmlformats.org/presentationml/2006/main');
     // p:sldMasterIdLst
     $objWriter->startElement('p:sldMasterIdLst');
     // Add slide masters
     $relationId = 1;
     $slideMasterId = 2147483648;
     $masterSlides = $this->getParentWriter()->getLayoutPack()->getMasterSlides();
     $masterSlidesCount = count($masterSlides);
     // @todo foreach ($masterSlides as $masterSlide)
     for ($i = 0; $i < $masterSlidesCount; $i++) {
         // p:sldMasterId
         $objWriter->startElement('p:sldMasterId');
         $objWriter->writeAttribute('id', $slideMasterId);
         $objWriter->writeAttribute('r:id', 'rId' . $relationId++);
         $objWriter->endElement();
         // Increase identifier
         $slideMasterId += 12;
     }
     $objWriter->endElement();
     // theme
     $relationId++;
     // p:sldIdLst
     $objWriter->startElement('p:sldIdLst');
     $this->_writeSlides($objWriter, $pPHPPowerPoint, $relationId);
     $objWriter->endElement();
     // p:sldSz
     $objWriter->startElement('p:sldSz');
     //$objWriter->writeAttribute('cx', '9144000');
     //$objWriter->writeAttribute('cy', '6858000');
     $objWriter->writeAttribute('cx', $pPHPPowerPoint->getLayout()->getCX());
     $objWriter->writeAttribute('cy', $pPHPPowerPoint->getLayout()->getCY());
     if ($pPHPPowerPoint->getLayout()->getDocumentLayout() != PHPPowerPoint_DocumentLayout::LAYOUT_CUSTOM) {
         $objWriter->writeAttribute('type', $pPHPPowerPoint->getLayout()->getDocumentLayout());
     }
     $objWriter->endElement();
     // p:notesSz
     $objWriter->startElement('p:notesSz');
     $objWriter->writeAttribute('cx', '6858000');
     $objWriter->writeAttribute('cy', '9144000');
     $objWriter->endElement();
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #2
0
 /**
  * Write Meta file to XML format
  *
  * @param 	PHPPowerPoint $pPHPPowerPoint
  * @return 	string 						XML Output
  * @throws 	Exception
  */
 public function writeMeta(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8');
     // office:document-meta
     $objWriter->startElement('office:document-meta');
     $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
     $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
     $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
     $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
     $objWriter->writeAttribute('xmlns:presentation', 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0');
     $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
     $objWriter->writeAttribute('xmlns:smil', 'urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0');
     $objWriter->writeAttribute('xmlns:anim', 'urn:oasis:names:tc:opendocument:xmlns:animation:1.0');
     $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
     $objWriter->writeAttribute('xmlns:officeooo', 'http://openoffice.org/2009/office');
     $objWriter->writeAttribute('xmlns:drawooo', 'http://openoffice.org/2010/draw');
     $objWriter->writeAttribute('office:version', '1.2');
     // office:meta
     $objWriter->startElement('office:meta');
     // dc:creator
     $objWriter->writeElement('dc:creator', $pPHPPowerPoint->getProperties()->getLastModifiedBy());
     // dc:date
     $objWriter->writeElement('dc:date', gmdate('Y-m-d\\TH:i:s.000', $pPHPPowerPoint->getProperties()->getModified()));
     // dc:description
     $objWriter->writeElement('dc:description', $pPHPPowerPoint->getProperties()->getDescription());
     // dc:subject
     $objWriter->writeElement('dc:subject', $pPHPPowerPoint->getProperties()->getSubject());
     // dc:title
     $objWriter->writeElement('dc:title', $pPHPPowerPoint->getProperties()->getTitle());
     // meta:creation-date
     $objWriter->writeElement('meta:creation-date', gmdate('Y-m-d\\TH:i:s.000', $pPHPPowerPoint->getProperties()->getCreated()));
     // meta:initial-creator
     $objWriter->writeElement('meta:initial-creator', $pPHPPowerPoint->getProperties()->getCreator());
     // meta:keyword
     $objWriter->writeElement('meta:keyword', $pPHPPowerPoint->getProperties()->getKeywords());
     // @todo : Where these properties are written ?
     // $pPHPPowerPoint->getProperties()->getCategory()
     // $pPHPPowerPoint->getProperties()->getCompany()
     $objWriter->endElement();
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
 /**
  * Write presentation to XML format
  *
  * @param 	PHPPowerPoint	$pPHPPowerPoint
  * @return 	string 		XML Output
  * @throws 	Exception
  */
 public function writePresentation(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // p:presentation
     $objWriter->startElement('p:presentation');
     $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
     $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
     $objWriter->writeAttribute('xmlns:p', 'http://schemas.openxmlformats.org/presentationml/2006/main');
     // p:sldMasterIdLst
     $objWriter->startElement('p:sldMasterIdLst');
     // p:sldMasterId
     $objWriter->startElement('p:sldMasterId');
     $objWriter->writeAttribute('id', '2147483648');
     $objWriter->writeAttribute('r:id', 'rId1');
     $objWriter->endElement();
     $objWriter->endElement();
     // p:sldIdLst
     $objWriter->startElement('p:sldIdLst');
     $this->_writeSlides($objWriter, $pPHPPowerPoint);
     $objWriter->endElement();
     // p:sldSz
     $objWriter->startElement('p:sldSz');
     $objWriter->writeAttribute('cx', '9144000');
     $objWriter->writeAttribute('cy', '6858000');
     $objWriter->endElement();
     // p:notesSz
     $objWriter->startElement('p:notesSz');
     $objWriter->writeAttribute('cx', '6858000');
     $objWriter->writeAttribute('cy', '9144000');
     $objWriter->endElement();
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #4
0
 /**
  * Write docProps/core.xml to XML format
  *
  * @param  PHPPowerPoint $pPHPPowerPoint
  * @return string        XML Output
  * @throws Exception
  */
 public function writeDocPropsCore(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // cp:coreProperties
     $objWriter->startElement('cp:coreProperties');
     $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties');
     $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
     $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/');
     $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/');
     $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
     // dc:creator
     $objWriter->writeElement('dc:creator', $pPHPPowerPoint->getProperties()->getCreator());
     // cp:lastModifiedBy
     $objWriter->writeElement('cp:lastModifiedBy', $pPHPPowerPoint->getProperties()->getLastModifiedBy());
     // dcterms:created
     $objWriter->startElement('dcterms:created');
     $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
     $objWriter->writeRaw(gmdate("Y-m-d\\TH:i:s\\Z", $pPHPPowerPoint->getProperties()->getCreated()));
     $objWriter->endElement();
     // dcterms:modified
     $objWriter->startElement('dcterms:modified');
     $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
     $objWriter->writeRaw(gmdate("Y-m-d\\TH:i:s\\Z", $pPHPPowerPoint->getProperties()->getModified()));
     $objWriter->endElement();
     // dc:title
     $objWriter->writeElement('dc:title', $pPHPPowerPoint->getProperties()->getTitle());
     // dc:description
     $objWriter->writeElement('dc:description', $pPHPPowerPoint->getProperties()->getDescription());
     // dc:subject
     $objWriter->writeElement('dc:subject', $pPHPPowerPoint->getProperties()->getSubject());
     // cp:keywords
     $objWriter->writeElement('cp:keywords', $pPHPPowerPoint->getProperties()->getKeywords());
     // cp:category
     $objWriter->writeElement('cp:category', $pPHPPowerPoint->getProperties()->getCategory());
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #5
0
 /**
  * Write slide to XML format
  *
  * @param	PHPPowerPoint_Slide		$pSlide
  * @return	string					XML Output
  * @throws	Exception
  */
 public function writeSlide(PHPPowerPoint_Slide $pSlide = null)
 {
     // Check slide
     if (is_null($pSlide)) {
         throw new Exception("Invalid PHPPowerPoint_Slide object passed.");
     }
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // p:sld
     $objWriter->startElement('p:sld');
     $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
     $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
     $objWriter->writeAttribute('xmlns:p', 'http://schemas.openxmlformats.org/presentationml/2006/main');
     // p:cSld
     $objWriter->startElement('p:cSld');
     // p:spTree
     $objWriter->startElement('p:spTree');
     // p:nvGrpSpPr
     $objWriter->startElement('p:nvGrpSpPr');
     // p:cNvPr
     $objWriter->startElement('p:cNvPr');
     $objWriter->writeAttribute('id', '1');
     $objWriter->writeAttribute('name', '');
     $objWriter->endElement();
     // p:cNvGrpSpPr
     $objWriter->writeElement('p:cNvGrpSpPr', null);
     // p:nvPr
     $objWriter->writeElement('p:nvPr', null);
     $objWriter->endElement();
     // p:grpSpPr
     $objWriter->startElement('p:grpSpPr');
     // a:xfrm
     $objWriter->startElement('a:xfrm');
     // a:off
     $objWriter->startElement('a:off');
     $objWriter->writeAttribute('x', '0');
     $objWriter->writeAttribute('y', '0');
     $objWriter->endElement();
     // a:ext
     $objWriter->startElement('a:ext');
     $objWriter->writeAttribute('cx', '0');
     $objWriter->writeAttribute('cy', '0');
     $objWriter->endElement();
     // a:chOff
     $objWriter->startElement('a:chOff');
     $objWriter->writeAttribute('x', '0');
     $objWriter->writeAttribute('y', '0');
     $objWriter->endElement();
     // a:chExt
     $objWriter->startElement('a:chExt');
     $objWriter->writeAttribute('cx', '0');
     $objWriter->writeAttribute('cy', '0');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // Loop shapes
     $shapeId = 0;
     $shapes = $pSlide->getShapeCollection();
     foreach ($shapes as $shape) {
         // Increment $shapeId
         ++$shapeId;
         // Check type
         if ($shape instanceof PHPPowerPoint_Shape_RichText) {
             $this->_writeTxt($objWriter, $shape, $shapeId);
         } else {
             if ($shape instanceof PHPPowerPoint_Shape_Table) {
                 $this->_writeTable($objWriter, $shape, $shapeId);
             } else {
                 if ($shape instanceof PHPPowerPoint_Shape_Line) {
                     $this->_writeLineShape($objWriter, $shape, $shapeId);
                 } else {
                     if ($shape instanceof PHPPowerPoint_Shape_Chart) {
                         $this->_writeChart($objWriter, $shape, $shapeId);
                     } else {
                         if ($shape instanceof PHPPowerPoint_Shape_BaseDrawing) {
                             $this->_writePic($objWriter, $shape, $shapeId);
                         }
                     }
                 }
             }
         }
     }
     // TODO
     $objWriter->endElement();
     $objWriter->endElement();
     // p:clrMapOvr
     $objWriter->startElement('p:clrMapOvr');
     // a:masterClrMapping
     $objWriter->writeElement('a:masterClrMapping', '');
     $objWriter->endElement();
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #6
0
 /**
  * Write Manifest file to XML format
  *
  * @param 	PHPPowerPoint $pPHPPowerPoint
  * @return 	string 						XML Output
  * @throws 	Exception
  */
 public function writeManifest(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8');
     // manifest:manifest
     $objWriter->startElement('manifest:manifest');
     $objWriter->writeAttribute('xmlns:manifest', 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0');
     $objWriter->writeAttribute('manifest:version', '1.2');
     // manifest:file-entry
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:media-type', 'application/vnd.oasis.opendocument.presentation');
     $objWriter->writeAttribute('manifest:version', '1.2');
     $objWriter->writeAttribute('manifest:full-path', '/');
     $objWriter->endElement();
     // manifest:file-entry
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:media-type', 'text/xml');
     $objWriter->writeAttribute('manifest:full-path', 'content.xml');
     $objWriter->endElement();
     // manifest:file-entry
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:media-type', 'text/xml');
     $objWriter->writeAttribute('manifest:full-path', 'meta.xml');
     $objWriter->endElement();
     // manifest:file-entry
     $objWriter->startElement('manifest:file-entry');
     $objWriter->writeAttribute('manifest:media-type', 'text/xml');
     $objWriter->writeAttribute('manifest:full-path', 'styles.xml');
     $objWriter->endElement();
     $arrMedia = array();
     for ($i = 0; $i < $this->getParentWriter()->getDrawingHashTable()->count(); ++$i) {
         if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPPowerPoint_Shape_Drawing) {
             if (!in_array(md5($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath()), $arrMedia)) {
                 $arrMedia[] = md5($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
                 $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
                 $mimeType = $this->_getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
                 $objWriter->startElement('manifest:file-entry');
                 $objWriter->writeAttribute('manifest:media-type', $mimeType);
                 $objWriter->writeAttribute('manifest:full-path', 'Pictures/' . md5($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath()) . '.' . $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
                 $objWriter->endElement();
             }
         } else {
             if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPPowerPoint_Shape_MemoryDrawing) {
                 if (!in_array(md5($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath()), $arrMedia)) {
                     $arrMedia[] = md5($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
                     $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType());
                     $extension = explode('/', $extension);
                     $extension = $extension[1];
                     $mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType();
                     $objWriter->startElement('manifest:file-entry');
                     $objWriter->writeAttribute('manifest:media-type', $mimeType);
                     $objWriter->writeAttribute('manifest:full-path', 'Pictures/' . md5($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath()) . '.' . $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
                     $objWriter->endElement();
                 }
             }
         }
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #7
0
 /**
  * Write theme to XML format
  *
  * @param 	PHPPowerPoint	$pPHPPowerPoint
  * @return 	string 		XML Output
  * @throws 	Exception
  */
 public function writeTheme(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // a:theme
     $objWriter->startElement('a:theme');
     $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
     $objWriter->writeAttribute('name', 'Office Theme');
     // a:themeElements
     $objWriter->startElement('a:themeElements');
     // a:clrScheme
     $objWriter->startElement('a:clrScheme');
     $objWriter->writeAttribute('name', 'Office');
     // a:dk1
     $objWriter->startElement('a:dk1');
     // a:sysClr
     $objWriter->startElement('a:sysClr');
     $objWriter->writeAttribute('val', 'windowText');
     $objWriter->writeAttribute('lastClr', '000000');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lt1
     $objWriter->startElement('a:lt1');
     // a:sysClr
     $objWriter->startElement('a:sysClr');
     $objWriter->writeAttribute('val', 'window');
     $objWriter->writeAttribute('lastClr', 'FFFFFF');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:dk2
     $objWriter->startElement('a:dk2');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '1F497D');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lt2
     $objWriter->startElement('a:lt2');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', 'EEECE1');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent1
     $objWriter->startElement('a:accent1');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '4F81BD');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent2
     $objWriter->startElement('a:accent2');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', 'C0504D');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent3
     $objWriter->startElement('a:accent3');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '9BBB59');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent4
     $objWriter->startElement('a:accent4');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '8064A2');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent5
     $objWriter->startElement('a:accent5');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '4BACC6');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:accent6
     $objWriter->startElement('a:accent6');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', 'F79646');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:hlink
     $objWriter->startElement('a:hlink');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '0000FF');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:folHlink
     $objWriter->startElement('a:folHlink');
     // a:sysClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '800080');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:fontScheme
     $objWriter->startElement('a:fontScheme');
     $objWriter->writeAttribute('name', 'Office');
     // a:majorFont
     $objWriter->startElement('a:majorFont');
     // a:latin
     $objWriter->startElement('a:latin');
     $objWriter->writeAttribute('typeface', 'Calibri');
     $objWriter->endElement();
     // a:ea
     $objWriter->startElement('a:ea');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     // a:cs
     $objWriter->startElement('a:cs');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Jpan');
     $objWriter->writeAttribute('typeface', '?? ?????');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hang');
     $objWriter->writeAttribute('typeface', '?? ??');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hans');
     $objWriter->writeAttribute('typeface', '??');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hant');
     $objWriter->writeAttribute('typeface', '????');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Arab');
     $objWriter->writeAttribute('typeface', 'Times New Roman');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hebr');
     $objWriter->writeAttribute('typeface', 'Times New Roman');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Thai');
     $objWriter->writeAttribute('typeface', 'Angsana New');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Ethi');
     $objWriter->writeAttribute('typeface', 'Nyala');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Beng');
     $objWriter->writeAttribute('typeface', 'Vrinda');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Gujr');
     $objWriter->writeAttribute('typeface', 'Shruti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Khmr');
     $objWriter->writeAttribute('typeface', 'MoolBoran');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Knda');
     $objWriter->writeAttribute('typeface', 'Tunga');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Guru');
     $objWriter->writeAttribute('typeface', 'Raavi');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Cans');
     $objWriter->writeAttribute('typeface', 'Euphemia');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Cher');
     $objWriter->writeAttribute('typeface', 'Plantagenet Cherokee');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Yiii');
     $objWriter->writeAttribute('typeface', 'Microsoft Yi Baiti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Tibt');
     $objWriter->writeAttribute('typeface', 'Microsoft Himalaya');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Thaa');
     $objWriter->writeAttribute('typeface', 'MV Boli');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Deva');
     $objWriter->writeAttribute('typeface', 'Mangal');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Telu');
     $objWriter->writeAttribute('typeface', 'Gautami');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Taml');
     $objWriter->writeAttribute('typeface', 'Latha');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Syrc');
     $objWriter->writeAttribute('typeface', 'Estrangelo Edessa');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Orya');
     $objWriter->writeAttribute('typeface', 'Kalinga');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Mlym');
     $objWriter->writeAttribute('typeface', 'Kartika');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Laoo');
     $objWriter->writeAttribute('typeface', 'DokChampa');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Sinh');
     $objWriter->writeAttribute('typeface', 'Iskoola Pota');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Mong');
     $objWriter->writeAttribute('typeface', 'Mongolian Baiti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Viet');
     $objWriter->writeAttribute('typeface', 'Times New Roman');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Uigh');
     $objWriter->writeAttribute('typeface', 'Microsoft Uighur');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:minorFont
     $objWriter->startElement('a:minorFont');
     // a:latin
     $objWriter->startElement('a:latin');
     $objWriter->writeAttribute('typeface', 'Calibri');
     $objWriter->endElement();
     // a:ea
     $objWriter->startElement('a:ea');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     // a:cs
     $objWriter->startElement('a:cs');
     $objWriter->writeAttribute('typeface', '');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Jpan');
     $objWriter->writeAttribute('typeface', '?? ?????');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hang');
     $objWriter->writeAttribute('typeface', '?? ??');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hans');
     $objWriter->writeAttribute('typeface', '??');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hant');
     $objWriter->writeAttribute('typeface', '????');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Arab');
     $objWriter->writeAttribute('typeface', 'Arial');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Hebr');
     $objWriter->writeAttribute('typeface', 'Arial');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Thai');
     $objWriter->writeAttribute('typeface', 'Cordia New');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Ethi');
     $objWriter->writeAttribute('typeface', 'Nyala');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Beng');
     $objWriter->writeAttribute('typeface', 'Vrinda');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Gujr');
     $objWriter->writeAttribute('typeface', 'Shruti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Khmr');
     $objWriter->writeAttribute('typeface', 'DaunPenh');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Knda');
     $objWriter->writeAttribute('typeface', 'Tunga');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Guru');
     $objWriter->writeAttribute('typeface', 'Raavi');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Cans');
     $objWriter->writeAttribute('typeface', 'Euphemia');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Cher');
     $objWriter->writeAttribute('typeface', 'Plantagenet Cherokee');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Yiii');
     $objWriter->writeAttribute('typeface', 'Microsoft Yi Baiti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Tibt');
     $objWriter->writeAttribute('typeface', 'Microsoft Himalaya');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Thaa');
     $objWriter->writeAttribute('typeface', 'MV Boli');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Deva');
     $objWriter->writeAttribute('typeface', 'Mangal');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Telu');
     $objWriter->writeAttribute('typeface', 'Gautami');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Taml');
     $objWriter->writeAttribute('typeface', 'Latha');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Syrc');
     $objWriter->writeAttribute('typeface', 'Estrangelo Edessa');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Orya');
     $objWriter->writeAttribute('typeface', 'Kalinga');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Mlym');
     $objWriter->writeAttribute('typeface', 'Kartika');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Laoo');
     $objWriter->writeAttribute('typeface', 'DokChampa');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Sinh');
     $objWriter->writeAttribute('typeface', 'Iskoola Pota');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Mong');
     $objWriter->writeAttribute('typeface', 'Mongolian Baiti');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Viet');
     $objWriter->writeAttribute('typeface', 'Arial');
     $objWriter->endElement();
     // a:font
     $objWriter->startElement('a:font');
     $objWriter->writeAttribute('script', 'Uigh');
     $objWriter->writeAttribute('typeface', 'Microsoft Uighur');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:fmtScheme
     $objWriter->startElement('a:fmtScheme');
     $objWriter->writeAttribute('name', 'Office');
     // a:fillStyleLst
     $objWriter->startElement('a:fillStyleLst');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gradFill
     $objWriter->startElement('a:gradFill');
     $objWriter->writeAttribute('rotWithShape', '1');
     // a:gsLst
     $objWriter->startElement('a:gsLst');
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '0');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '50000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '300000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '35000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '37000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '300000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '100000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '15000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '350000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lin
     $objWriter->startElement('a:lin');
     $objWriter->writeAttribute('ang', '16200000');
     $objWriter->writeAttribute('scaled', '1');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gradFill
     $objWriter->startElement('a:gradFill');
     $objWriter->writeAttribute('rotWithShape', '1');
     // a:gsLst
     $objWriter->startElement('a:gsLst');
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '0');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '51000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '130000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '80000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '93000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '130000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '100000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '94000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '135000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lin
     $objWriter->startElement('a:lin');
     $objWriter->writeAttribute('ang', '16200000');
     $objWriter->writeAttribute('scaled', '0');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lnStyleLst
     $objWriter->startElement('a:lnStyleLst');
     // a:ln
     $objWriter->startElement('a:ln');
     $objWriter->writeAttribute('w', '9525');
     $objWriter->writeAttribute('cap', 'flat');
     $objWriter->writeAttribute('cmpd', 'sng');
     $objWriter->writeAttribute('algn', 'ctr');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '95000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '105000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:prstDash
     $objWriter->startElement('a:prstDash');
     $objWriter->writeAttribute('val', 'solid');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:ln
     $objWriter->startElement('a:ln');
     $objWriter->writeAttribute('w', '25400');
     $objWriter->writeAttribute('cap', 'flat');
     $objWriter->writeAttribute('cmpd', 'sng');
     $objWriter->writeAttribute('algn', 'ctr');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:prstDash
     $objWriter->startElement('a:prstDash');
     $objWriter->writeAttribute('val', 'solid');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:ln
     $objWriter->startElement('a:ln');
     $objWriter->writeAttribute('w', '38100');
     $objWriter->writeAttribute('cap', 'flat');
     $objWriter->writeAttribute('cmpd', 'sng');
     $objWriter->writeAttribute('algn', 'ctr');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:prstDash
     $objWriter->startElement('a:prstDash');
     $objWriter->writeAttribute('val', 'solid');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:effectStyleLst
     $objWriter->startElement('a:effectStyleLst');
     // a:effectStyle
     $objWriter->startElement('a:effectStyle');
     // a:effectLst
     $objWriter->startElement('a:effectLst');
     // a:outerShdw
     $objWriter->startElement('a:outerShdw');
     $objWriter->writeAttribute('blurRad', '40000');
     $objWriter->writeAttribute('dist', '20000');
     $objWriter->writeAttribute('dir', '5400000');
     $objWriter->writeAttribute('rotWithShape', '0');
     // a:srgbClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '000000');
     // a:alpha
     $objWriter->startElement('a:alpha');
     $objWriter->writeAttribute('val', '38000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:effectStyle
     $objWriter->startElement('a:effectStyle');
     // a:effectLst
     $objWriter->startElement('a:effectLst');
     // a:outerShdw
     $objWriter->startElement('a:outerShdw');
     $objWriter->writeAttribute('blurRad', '40000');
     $objWriter->writeAttribute('dist', '23000');
     $objWriter->writeAttribute('dir', '5400000');
     $objWriter->writeAttribute('rotWithShape', '0');
     // a:srgbClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '000000');
     // a:alpha
     $objWriter->startElement('a:alpha');
     $objWriter->writeAttribute('val', '35000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:effectStyle
     $objWriter->startElement('a:effectStyle');
     // a:effectLst
     $objWriter->startElement('a:effectLst');
     // a:outerShdw
     $objWriter->startElement('a:outerShdw');
     $objWriter->writeAttribute('blurRad', '40000');
     $objWriter->writeAttribute('dist', '23000');
     $objWriter->writeAttribute('dir', '5400000');
     $objWriter->writeAttribute('rotWithShape', '0');
     // a:srgbClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', '000000');
     // a:alpha
     $objWriter->startElement('a:alpha');
     $objWriter->writeAttribute('val', '35000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:scene3d
     $objWriter->startElement('a:scene3d');
     // a:camera
     $objWriter->startElement('a:camera');
     $objWriter->writeAttribute('prst', 'orthographicFront');
     // a:rot
     $objWriter->startElement('a:rot');
     $objWriter->writeAttribute('lat', '0');
     $objWriter->writeAttribute('lon', '0');
     $objWriter->writeAttribute('rev', '0');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:lightRig
     $objWriter->startElement('a:lightRig');
     $objWriter->writeAttribute('rig', 'threePt');
     $objWriter->writeAttribute('dir', 't');
     // a:rot
     $objWriter->startElement('a:rot');
     $objWriter->writeAttribute('lat', '0');
     $objWriter->writeAttribute('lon', '0');
     $objWriter->writeAttribute('rev', '1200000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:sp3d
     $objWriter->startElement('a:sp3d');
     // a:bevelT
     $objWriter->startElement('a:bevelT');
     $objWriter->writeAttribute('w', '63500');
     $objWriter->writeAttribute('h', '25400');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:bgFillStyleLst
     $objWriter->startElement('a:bgFillStyleLst');
     // a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gradFill
     $objWriter->startElement('a:gradFill');
     $objWriter->writeAttribute('rotWithShape', '1');
     // a:gsLst
     $objWriter->startElement('a:gsLst');
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '0');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '40000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '350000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '40000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '45000');
     $objWriter->endElement();
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '99000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '350000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '100000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '20000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '255000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:path
     $objWriter->startElement('a:path');
     $objWriter->writeAttribute('path', 'circle');
     // a:fillToRect
     $objWriter->startElement('a:fillToRect');
     $objWriter->writeAttribute('l', '50000');
     $objWriter->writeAttribute('t', '-80000');
     $objWriter->writeAttribute('r', '50000');
     $objWriter->writeAttribute('b', '180000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gradFill
     $objWriter->startElement('a:gradFill');
     $objWriter->writeAttribute('rotWithShape', '1');
     // a:gsLst
     $objWriter->startElement('a:gsLst');
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '0');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:tint
     $objWriter->startElement('a:tint');
     $objWriter->writeAttribute('val', '80000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '300000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:gs
     $objWriter->startElement('a:gs');
     $objWriter->writeAttribute('pos', '100000');
     // a:schemeClr
     $objWriter->startElement('a:schemeClr');
     $objWriter->writeAttribute('val', 'phClr');
     // a:shade
     $objWriter->startElement('a:shade');
     $objWriter->writeAttribute('val', '30000');
     $objWriter->endElement();
     // a:satMod
     $objWriter->startElement('a:satMod');
     $objWriter->writeAttribute('val', '200000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:path
     $objWriter->startElement('a:path');
     $objWriter->writeAttribute('path', 'circle');
     // a:fillToRect
     $objWriter->startElement('a:fillToRect');
     $objWriter->writeAttribute('l', '50000');
     $objWriter->writeAttribute('t', '50000');
     $objWriter->writeAttribute('r', '50000');
     $objWriter->writeAttribute('b', '50000');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // a:objectDefaults
     $objWriter->writeElement('a:objectDefaults', null);
     // a:extraClrSchemeLst
     $objWriter->writeElement('a:extraClrSchemeLst', null);
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
 /**
  * Write content types to XML format
  *
  * @param 	PHPPowerPoint $pPHPPowerPoint
  * @return 	string 						XML Output
  * @throws 	Exception
  */
 public function writeContentTypes(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Types
     $objWriter->startElement('Types');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types');
     // Rels
     $this->_writeDefaultContentType($objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml');
     // XML
     $this->_writeDefaultContentType($objWriter, 'xml', 'application/xml');
     // Themes
     $masterSlides = $this->getParentWriter()->getLayoutPack()->getMasterSlides();
     foreach ($masterSlides as $masterSlide) {
         $this->_writeOverrideContentType($objWriter, '/ppt/theme/theme' . $masterSlide['masterid'] . '.xml', 'application/vnd.openxmlformats-officedocument.theme+xml');
     }
     // Presentation
     $this->_writeOverrideContentType($objWriter, '/ppt/presentation.xml', 'application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml');
     // DocProps
     $this->_writeOverrideContentType($objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml');
     $this->_writeOverrideContentType($objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml');
     // Slide masters
     $masterSlides = $this->getParentWriter()->getLayoutPack()->getMasterSlides();
     foreach ($masterSlides as $masterSlide) {
         $this->_writeOverrideContentType($objWriter, '/ppt/slideMasters/slideMaster' . $masterSlide['masterid'] . '.xml', 'application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml');
     }
     // Slide layouts
     $slideLayouts = $this->getParentWriter()->getLayoutPack()->getLayouts();
     for ($i = 0; $i < count($slideLayouts); ++$i) {
         $this->_writeOverrideContentType($objWriter, '/ppt/slideLayouts/slideLayout' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml');
     }
     // Slides
     $slideCount = $pPHPPowerPoint->getSlideCount();
     for ($i = 0; $i < $slideCount; ++$i) {
         $this->_writeOverrideContentType($objWriter, '/ppt/slides/slide' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.presentationml.slide+xml');
     }
     // Add layoutpack content types
     $otherRelations = null;
     $otherRelations = $this->getParentWriter()->getLayoutPack()->getMasterSlideRelations();
     foreach ($otherRelations as $otherRelations) {
         if (strpos($otherRelations['target'], 'http://') !== 0 && $otherRelations['contentType'] != '') {
             $this->_writeOverrideContentType($objWriter, '/ppt/slideMasters/' . $otherRelations['target'], $otherRelations['contentType']);
         }
     }
     $otherRelations = $this->getParentWriter()->getLayoutPack()->getThemeRelations();
     foreach ($otherRelations as $otherRelations) {
         if (strpos($otherRelations['target'], 'http://') !== 0 && $otherRelations['contentType'] != '') {
             $this->_writeOverrideContentType($objWriter, '/ppt/theme/' . $otherRelations['target'], $otherRelations['contentType']);
         }
     }
     $otherRelations = $this->getParentWriter()->getLayoutPack()->getLayoutRelations();
     foreach ($otherRelations as $otherRelations) {
         if (strpos($otherRelations['target'], 'http://') !== 0 && $otherRelations['contentType'] != '') {
             $this->_writeOverrideContentType($objWriter, '/ppt/slideLayouts/' . $otherRelations['target'], $otherRelations['contentType']);
         }
     }
     // Add media content-types
     $aMediaContentTypes = array();
     // GIF, JPEG, PNG
     $aMediaContentTypes['gif'] = 'image/gif';
     $aMediaContentTypes['jpg'] = 'image/jpeg';
     $aMediaContentTypes['jpeg'] = 'image/jpeg';
     $aMediaContentTypes['png'] = 'image/png';
     foreach ($aMediaContentTypes as $key => $value) {
         $this->_writeDefaultContentType($objWriter, $key, $value);
     }
     // XLSX
     $this->_writeDefaultContentType($objWriter, 'xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
     // Other media content types
     $mediaCount = $this->getParentWriter()->getDrawingHashTable()->count();
     for ($i = 0; $i < $mediaCount; ++$i) {
         $extension = '';
         $mimeType = '';
         if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPPowerPoint_Shape_Chart) {
             // Chart content type
             $this->_writeOverrideContentType($objWriter, '/ppt/charts/chart' . $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getImageIndex() . '.xml', 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml');
         } else {
             if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPPowerPoint_Shape_Drawing) {
                 $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
                 $mimeType = $this->_getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
             } else {
                 if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPPowerPoint_Shape_MemoryDrawing) {
                     $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType());
                     $extension = explode('/', $extension);
                     $extension = $extension[1];
                     $mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType();
                 }
             }
             if (!isset($aMediaContentTypes[$extension])) {
                 $aMediaContentTypes[$extension] = $mimeType;
                 $this->_writeDefaultContentType($objWriter, $extension, $mimeType);
             }
         }
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #9
0
 /**
  * Write slide relationships to XML format
  *
  * Numbering is as follows:
  * 	rId1 				- Drawings
  *
  * @param 	PHPPowerPoint_Slide		$pSlide
  * @param 	int						$pSlideId
  * @return 	string 					XML Output
  * @throws 	Exception
  */
 public function writeSlideRelationships(PHPPowerPoint_Slide $pSlide = null, $pSlideId = 1)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Relationships
     $objWriter->startElement('Relationships');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
     // Starting relation id
     $relId = 1;
     // Write slideLayout relationship
     $layoutPack = $this->getParentWriter()->getLayoutPack();
     $layoutIndex = $layoutPack->findlayoutIndex($pSlide->getSlideLayout());
     $this->_writeRelationship($objWriter, $relId++, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout', '../slideLayouts/slideLayout' . ($layoutIndex + 1) . '.xml');
     // Write drawing relationships?
     if ($pSlide->getShapeCollection()->count() > 0) {
         // Loop trough images and write relationships
         $iterator = $pSlide->getShapeCollection()->getIterator();
         while ($iterator->valid()) {
             if ($iterator->current() instanceof PHPPowerPoint_Shape_Drawing || $iterator->current() instanceof PHPPowerPoint_Shape_MemoryDrawing) {
                 // Write relationship for image drawing
                 $this->_writeRelationship($objWriter, $relId, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', '../media/' . str_replace(' ', '', $iterator->current()->getIndexedFilename()));
             }
             $iterator->next();
             ++$relId;
         }
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #10
0
 /**
  * Write Meta file to XML format
  *
  * @param  PHPPowerPoint $pPHPPowerPoint
  * @return string        XML Output
  * @throws Exception
  */
 public function writeStyles(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8');
     // office:document-meta
     $objWriter->startElement('office:document-styles');
     $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
     $objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0');
     $objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0');
     $objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0');
     $objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0');
     $objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0');
     $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
     $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
     $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
     $objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0');
     $objWriter->writeAttribute('xmlns:presentation', 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0');
     $objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0');
     $objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0');
     $objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0');
     $objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML');
     $objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0');
     $objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0');
     $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
     $objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer');
     $objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc');
     $objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events');
     $objWriter->writeAttribute('xmlns:smil', 'urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0');
     $objWriter->writeAttribute('xmlns:anim', 'urn:oasis:names:tc:opendocument:xmlns:animation:1.0');
     $objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report');
     $objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2');
     $objWriter->writeAttribute('xmlns:xhtml', 'http://www.w3.org/1999/xhtml');
     $objWriter->writeAttribute('xmlns:grddl', 'http://www.w3.org/2003/g/data-view#');
     $objWriter->writeAttribute('xmlns:officeooo', 'http://openoffice.org/2009/office');
     $objWriter->writeAttribute('xmlns:tableooo', 'http://openoffice.org/2009/table');
     $objWriter->writeAttribute('xmlns:drawooo', 'http://openoffice.org/2010/draw');
     $objWriter->writeAttribute('xmlns:css3t', 'http://www.w3.org/TR/css3-text/');
     $objWriter->writeAttribute('office:version', '1.2');
     // Variables
     $stylePageLayout = $pPHPPowerPoint->getLayout()->getDocumentLayout();
     // office:styles
     $objWriter->startElement('office:styles');
     // style:style
     $objWriter->startElement('style:style');
     $objWriter->writeAttribute('style:name', 'sPres0');
     $objWriter->writeAttribute('style:display-name', 'sPres0');
     $objWriter->writeAttribute('style:family', 'presentation');
     // style:graphic-properties
     $objWriter->startElement('style:graphic-properties');
     $objWriter->writeAttribute('draw:fill-color', '#ffffff');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // office:automatic-styles
     $objWriter->startElement('office:automatic-styles');
     // style:page-layout
     $objWriter->startElement('style:page-layout');
     if (empty($stylePageLayout)) {
         $objWriter->writeAttribute('style:name', 'sPL0');
     } else {
         $objWriter->writeAttribute('style:name', $stylePageLayout);
     }
     // style:page-layout-properties
     $objWriter->startElement('style:page-layout-properties');
     $objWriter->writeAttribute('fo:margin-top', '0cm');
     $objWriter->writeAttribute('fo:margin-bottom', '0cm');
     $objWriter->writeAttribute('fo:margin-left', '0cm');
     $objWriter->writeAttribute('fo:margin-right', '0cm');
     $objWriter->writeAttribute('fo:page-width', round(PHPPowerPoint_Shared_Drawing::pixelsToCentimeters(PHPPowerPoint_Shared_Drawing::EMUToPixels($pPHPPowerPoint->getLayout()->getCX())), 1) . 'cm');
     $objWriter->writeAttribute('fo:page-height', round(PHPPowerPoint_Shared_Drawing::pixelsToCentimeters(PHPPowerPoint_Shared_Drawing::EMUToPixels($pPHPPowerPoint->getLayout()->getCY())), 1) . 'cm');
     if ($pPHPPowerPoint->getLayout()->getCX() > $pPHPPowerPoint->getLayout()->getCY()) {
         $objWriter->writeAttribute('style:print-orientation', 'landscape');
     } else {
         $objWriter->writeAttribute('style:print-orientation', 'portrait');
     }
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // office:master-styles
     $objWriter->startElement('office:master-styles');
     // style:master-page
     $objWriter->startElement('style:master-page');
     $objWriter->writeAttribute('style:name', 'Standard');
     $objWriter->writeAttribute('style:display-name', 'Standard');
     if (empty($stylePageLayout)) {
         $objWriter->writeAttribute('style:page-layout-name', 'sPL0');
     } else {
         $objWriter->writeAttribute('style:page-layout-name', $stylePageLayout);
     }
     $objWriter->writeAttribute('draw:style-name', 'sPres0');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #11
0
 /**
  * Write content file to XML format
  *
  * @param 	PHPPowerPoint $pPHPPowerPoint
  * @return 	string 						XML Output
  * @throws 	Exception
  */
 public function writeContent(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8');
     // office:document-content
     $objWriter->startElement('office:document-content');
     $objWriter->writeAttribute('xmlns:office', 'urn:oasis:names:tc:opendocument:xmlns:office:1.0');
     $objWriter->writeAttribute('xmlns:style', 'urn:oasis:names:tc:opendocument:xmlns:style:1.0');
     $objWriter->writeAttribute('xmlns:text', 'urn:oasis:names:tc:opendocument:xmlns:text:1.0');
     $objWriter->writeAttribute('xmlns:table', 'urn:oasis:names:tc:opendocument:xmlns:table:1.0');
     $objWriter->writeAttribute('xmlns:draw', 'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0');
     $objWriter->writeAttribute('xmlns:fo', 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0');
     $objWriter->writeAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');
     $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
     $objWriter->writeAttribute('xmlns:meta', 'urn:oasis:names:tc:opendocument:xmlns:meta:1.0');
     $objWriter->writeAttribute('xmlns:number', 'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0');
     $objWriter->writeAttribute('xmlns:presentation', 'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0');
     $objWriter->writeAttribute('xmlns:svg', 'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0');
     $objWriter->writeAttribute('xmlns:chart', 'urn:oasis:names:tc:opendocument:xmlns:chart:1.0');
     $objWriter->writeAttribute('xmlns:dr3d', 'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0');
     $objWriter->writeAttribute('xmlns:math', 'http://www.w3.org/1998/Math/MathML');
     $objWriter->writeAttribute('xmlns:form', 'urn:oasis:names:tc:opendocument:xmlns:form:1.0');
     $objWriter->writeAttribute('xmlns:script', 'urn:oasis:names:tc:opendocument:xmlns:script:1.0');
     $objWriter->writeAttribute('xmlns:ooo', 'http://openoffice.org/2004/office');
     $objWriter->writeAttribute('xmlns:ooow', 'http://openoffice.org/2004/writer');
     $objWriter->writeAttribute('xmlns:oooc', 'http://openoffice.org/2004/calc');
     $objWriter->writeAttribute('xmlns:dom', 'http://www.w3.org/2001/xml-events');
     $objWriter->writeAttribute('xmlns:xforms', 'http://www.w3.org/2002/xforms');
     $objWriter->writeAttribute('xmlns:xsd', 'http://www.w3.org/2001/XMLSchema');
     $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
     $objWriter->writeAttribute('xmlns:smil', 'urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0');
     $objWriter->writeAttribute('xmlns:anim', 'urn:oasis:names:tc:opendocument:xmlns:animation:1.0');
     $objWriter->writeAttribute('xmlns:rpt', 'http://openoffice.org/2005/report');
     $objWriter->writeAttribute('xmlns:of', 'urn:oasis:names:tc:opendocument:xmlns:of:1.2');
     $objWriter->writeAttribute('xmlns:rdfa', 'http://docs.oasis-open.org/opendocument/meta/rdfa#');
     $objWriter->writeAttribute('xmlns:field', 'urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0');
     $objWriter->writeAttribute('office:version', '1.2');
     //===============================================
     // Styles
     //===============================================
     $arrStyleBullet = array();
     $arrStyleParagraph = array();
     $arrStyleTextFont = array();
     // office:automatic-styles
     $objWriter->startElement('office:automatic-styles');
     $slideCount = $pPHPPowerPoint->getSlideCount();
     $shapeId = 0;
     for ($i = 0; $i < $slideCount; ++$i) {
         $pSlide = $pPHPPowerPoint->getSlide($i);
         // Images
         $shapes = $pSlide->getShapeCollection();
         foreach ($shapes as $shape) {
             // Increment $shapeId
             ++$shapeId;
             // Check type
             if ($shape instanceof PHPPowerPoint_Shape_RichText) {
                 // style:style
                 $objWriter->startElement('style:style');
                 $objWriter->writeAttribute('style:name', 'gr' . $shapeId);
                 $objWriter->writeAttribute('style:family', 'graphic');
                 $objWriter->writeAttribute('style:parent-style-name', 'standard');
                 // style:graphic-properties
                 $objWriter->startElement('style:graphic-properties');
                 $objWriter->writeAttribute('draw:auto-grow-height', 'true');
                 $objWriter->writeAttribute('fo:wrap-option', 'wrap');
                 $objWriter->endElement();
                 $objWriter->endElement();
                 $paragraphs = $shape->getParagraphs();
                 $paragraphId = 0;
                 foreach ($paragraphs as $paragraph) {
                     ++$paragraphId;
                     // Style des paragraphes
                     if (!isset($arrStyleParagraph[$paragraph->getHashCode()])) {
                         $arrStyleParagraph[$paragraph->getHashCode()] = $paragraph;
                     }
                     // Style des listes
                     if (!isset($arrStyleBullet[$paragraph->getBulletStyle()->getHashCode()])) {
                         $arrStyleBullet[$paragraph->getBulletStyle()->getHashCode()]['oStyle'] = $paragraph->getBulletStyle();
                         $arrStyleBullet[$paragraph->getBulletStyle()->getHashCode()]['level'] = '';
                     }
                     if (strpos($arrStyleBullet[$paragraph->getBulletStyle()->getHashCode()]['level'], ';' . $paragraph->getAlignment()->getLevel()) === false) {
                         $arrStyleBullet[$paragraph->getBulletStyle()->getHashCode()]['level'] .= ';' . $paragraph->getAlignment()->getLevel();
                         $arrStyleBullet[$paragraph->getBulletStyle()->getHashCode()]['oAlign_' . $paragraph->getAlignment()->getLevel()] = $paragraph->getAlignment();
                     }
                     $richtexts = $paragraph->getRichTextElements();
                     $richtextId = 0;
                     foreach ($richtexts as $richtext) {
                         ++$richtextId;
                         // Not a line break
                         if ($richtext instanceof PHPPowerPoint_Shape_RichText_Run) {
                             // Style des font text
                             if (!isset($arrStyleTextFont[$richtext->getFont()->getHashCode()])) {
                                 $arrStyleTextFont[$richtext->getFont()->getHashCode()] = $richtext->getFont();
                             }
                         }
                     }
                 }
             }
             if ($shape instanceof PHPPowerPoint_Shape_BaseDrawing) {
                 if ($shape->getShadow()->getVisible()) {
                     // style:style
                     $objWriter->startElement('style:style');
                     $objWriter->writeAttribute('style:name', 'gr' . $shapeId);
                     $objWriter->writeAttribute('style:family', 'graphic');
                     $objWriter->writeAttribute('style:parent-style-name', 'standard');
                     // style:graphic-properties
                     $objWriter->startElement('style:graphic-properties');
                     $objWriter->writeAttribute('draw:stroke', 'none');
                     $objWriter->writeAttribute('draw:fill', 'none');
                     $objWriter->writeAttribute('draw:shadow', 'visible');
                     $objWriter->writeAttribute('draw:shadow-color', '#' . $shape->getShadow()->getColor()->getRGB());
                     if ($shape->getShadow()->getDirection() == 0 || $shape->getShadow()->getDirection() == 360) {
                         $objWriter->writeAttribute('draw:shadow-offset-x', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                         $objWriter->writeAttribute('draw:shadow-offset-y', '0cm');
                     } elseif ($shape->getShadow()->getDirection() == 45) {
                         $objWriter->writeAttribute('draw:shadow-offset-x', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                         $objWriter->writeAttribute('draw:shadow-offset-y', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                     } elseif ($shape->getShadow()->getDirection() == 90) {
                         $objWriter->writeAttribute('draw:shadow-offset-x', '0cm');
                         $objWriter->writeAttribute('draw:shadow-offset-y', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                     } elseif ($shape->getShadow()->getDirection() == 135) {
                         $objWriter->writeAttribute('draw:shadow-offset-x', '-' . PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                         $objWriter->writeAttribute('draw:shadow-offset-y', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                     } elseif ($shape->getShadow()->getDirection() == 180) {
                         $objWriter->writeAttribute('draw:shadow-offset-x', '-' . PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                         $objWriter->writeAttribute('draw:shadow-offset-y', '0cm');
                     } elseif ($shape->getShadow()->getDirection() == 225) {
                         $objWriter->writeAttribute('draw:shadow-offset-x', '-' . PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                         $objWriter->writeAttribute('draw:shadow-offset-y', '-' . PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                     } elseif ($shape->getShadow()->getDirection() == 270) {
                         $objWriter->writeAttribute('draw:shadow-offset-x', '0cm');
                         $objWriter->writeAttribute('draw:shadow-offset-y', '-' . PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                     } elseif ($shape->getShadow()->getDirection() == 315) {
                         $objWriter->writeAttribute('draw:shadow-offset-x', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                         $objWriter->writeAttribute('draw:shadow-offset-y', '-' . PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($shape->getShadow()->getDistance()) . 'cm');
                     }
                     $objWriter->writeAttribute('draw:shadow-opacity', 100 - $shape->getShadow()->getAlpha() . '%');
                     $objWriter->writeAttribute('style:mirror', 'none');
                     $objWriter->endElement();
                     $objWriter->endElement();
                 }
             }
         }
     }
     // Style : Bullet
     if (!empty($arrStyleBullet)) {
         foreach ($arrStyleBullet as $key => $item) {
             $oStyle = $item['oStyle'];
             $arrLevel = explode(';', $item['level']);
             // style:style
             $objWriter->startElement('text:list-style');
             $objWriter->writeAttribute('style:name', 'L_' . $key);
             foreach ($arrLevel as $level) {
                 if ($level != '') {
                     $oAlign = $item['oAlign_' . $level];
                     // text:list-level-style-bullet
                     $objWriter->startElement('text:list-level-style-bullet');
                     $objWriter->writeAttribute('text:level', $level + 1);
                     $objWriter->writeAttribute('text:bullet-char', $oStyle->getBulletChar());
                     // style:list-level-properties
                     $objWriter->startElement('style:list-level-properties');
                     if ($oAlign->getIndent() < 0) {
                         $objWriter->writeAttribute('text:space-before', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($oAlign->getMarginLeft() - -1 * $oAlign->getIndent()) . 'cm');
                         $objWriter->writeAttribute('text:min-label-width', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters(-1 * $oAlign->getIndent()) . 'cm');
                     } else {
                         $objWriter->writeAttribute('text:space-before', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($oAlign->getMarginLeft() - $oAlign->getIndent()) . 'cm');
                         $objWriter->writeAttribute('text:min-label-width', PHPPowerPoint_Shared_Drawing::pixelsToCentimeters($oAlign->getIndent()) . 'cm');
                     }
                     $objWriter->endElement();
                     // style:text-properties
                     $objWriter->startElement('style:text-properties');
                     $objWriter->writeAttribute('fo:font-family', $oStyle->getBulletFont());
                     $objWriter->writeAttribute('style:font-family-generic', 'swiss');
                     $objWriter->writeAttribute('style:use-window-font-color', 'true');
                     $objWriter->writeAttribute('fo:font-size', '100');
                     $objWriter->endElement();
                     $objWriter->endElement();
                 }
             }
             $objWriter->endElement();
         }
     }
     // Style : Paragraph
     if (!empty($arrStyleParagraph)) {
         foreach ($arrStyleParagraph as $key => $item) {
             // style:style
             $objWriter->startElement('style:style');
             $objWriter->writeAttribute('style:name', 'P_' . $key);
             $objWriter->writeAttribute('style:family', 'paragraph');
             // style:paragraph-properties
             $objWriter->startElement('style:paragraph-properties');
             switch ($item->getAlignment()->getHorizontal()) {
                 case PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT:
                     $objWriter->writeAttribute('fo:text-align', 'left');
                     break;
                 case PHPPowerPoint_Style_Alignment::HORIZONTAL_RIGHT:
                     $objWriter->writeAttribute('fo:text-align', 'right');
                     break;
                 case PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER:
                     $objWriter->writeAttribute('fo:text-align', 'center');
                     break;
                 case PHPPowerPoint_Style_Alignment::HORIZONTAL_JUSTIFY:
                     $objWriter->writeAttribute('fo:text-align', 'justify');
                     break;
                 case PHPPowerPoint_Style_Alignment::HORIZONTAL_DISTRIBUTED:
                     $objWriter->writeAttribute('fo:text-align', 'justify');
                     break;
                 default:
                     $objWriter->writeAttribute('fo:text-align', 'left');
                     break;
             }
             $objWriter->endElement();
             $objWriter->endElement();
         }
     }
     // Style : Text : Font
     if (!empty($arrStyleTextFont)) {
         foreach ($arrStyleTextFont as $key => $item) {
             // style:style
             $objWriter->startElement('style:style');
             $objWriter->writeAttribute('style:name', 'T_' . $key);
             $objWriter->writeAttribute('style:family', 'text');
             // style:text-properties
             $objWriter->startElement('style:text-properties');
             $objWriter->writeAttribute('fo:color', '#' . $item->getColor()->getRGB());
             $objWriter->writeAttribute('fo:font-family', $item->getName());
             $objWriter->writeAttribute('fo:font-size', $item->getSize() . 'pt');
             // @todo : fo:font-style
             if ($item->getBold()) {
                 $objWriter->writeAttribute('fo:font-weight', 'bold');
             }
             // @todo : style:text-underline-style
             $objWriter->endElement();
             $objWriter->endElement();
         }
     }
     $objWriter->endElement();
     //===============================================
     // Body
     //===============================================
     // office:body
     $objWriter->startElement('office:body');
     // office:presentation
     $objWriter->startElement('office:presentation');
     // Write slides
     $slideCount = $pPHPPowerPoint->getSlideCount();
     $shapeId = 0;
     for ($i = 0; $i < $slideCount; ++$i) {
         $pSlide = $pPHPPowerPoint->getSlide($i);
         $objWriter->startElement('draw:page');
         $objWriter->writeAttribute('draw:name', 'page' . $i);
         $objWriter->writeAttribute('draw:master-page-name', 'Standard');
         // Images
         $shapes = $pSlide->getShapeCollection();
         foreach ($shapes as $shape) {
             // Increment $shapeId
             ++$shapeId;
             // Check type
             if ($shape instanceof PHPPowerPoint_Shape_RichText) {
                 $this->_writeTxt($objWriter, $shape, $shapeId);
             } else {
                 if ($shape instanceof PHPPowerPoint_Shape_BaseDrawing) {
                     $this->_writePic($objWriter, $shape, $shapeId);
                 }
             }
         }
         $objWriter->endElement();
     }
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #12
0
 /**
  * Write chart to XML format
  *
  * @param  PHPPowerPoint_Shape_Chart $chart
  * @return string                    XML Output
  * @throws Exception
  */
 public function writeChart(PHPPowerPoint_Shape_Chart $chart = null)
 {
     // Check slide
     if (is_null($chart)) {
         throw new Exception("Invalid PHPPowerPoint_Shape_Chart object passed.");
     }
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // c:chartSpace
     $objWriter->startElement('c:chartSpace');
     $objWriter->writeAttribute('xmlns:c', 'http://schemas.openxmlformats.org/drawingml/2006/chart');
     $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
     $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
     // c:date1904
     $objWriter->startElement('c:date1904');
     $objWriter->writeAttribute('val', '1');
     $objWriter->endElement();
     // c:lang
     $objWriter->startElement('c:lang');
     $objWriter->writeAttribute('val', 'en-US');
     $objWriter->endElement();
     // c:chart
     $objWriter->startElement('c:chart');
     // Title?
     if ($chart->getTitle()->getVisible()) {
         // Write title
         $this->_writeTitle($objWriter, $chart->getTitle());
     }
     // c:autoTitleDeleted
     $objWriter->startElement('c:autoTitleDeleted');
     $objWriter->writeAttribute('val', '0');
     $objWriter->endElement();
     // c:view3D
     $objWriter->startElement('c:view3D');
     // c:rotX
     $objWriter->startElement('c:rotX');
     $objWriter->writeAttribute('val', $chart->getView3D()->getRotationX());
     $objWriter->endElement();
     // c:hPercent
     $objWriter->startElement('c:hPercent');
     $objWriter->writeAttribute('val', $chart->getView3D()->getHeightPercent());
     $objWriter->endElement();
     // c:rotY
     $objWriter->startElement('c:rotY');
     $objWriter->writeAttribute('val', $chart->getView3D()->getRotationY());
     $objWriter->endElement();
     // c:depthPercent
     $objWriter->startElement('c:depthPercent');
     $objWriter->writeAttribute('val', $chart->getView3D()->getDepthPercent());
     $objWriter->endElement();
     // c:rAngAx
     $objWriter->startElement('c:rAngAx');
     $objWriter->writeAttribute('val', $chart->getView3D()->getRightAngleAxes() ? '1' : '0');
     $objWriter->endElement();
     // c:perspective
     $objWriter->startElement('c:perspective');
     $objWriter->writeAttribute('val', $chart->getView3D()->getPerspective());
     $objWriter->endElement();
     $objWriter->endElement();
     // Write plot area
     $this->_writePlotArea($objWriter, $chart->getPlotArea(), $chart);
     // Legend?
     if ($chart->getLegend()->getVisible()) {
         // Write legend
         $this->_writeLegend($objWriter, $chart->getLegend());
     }
     // c:plotVisOnly
     $objWriter->startElement('c:plotVisOnly');
     $objWriter->writeAttribute('val', '1');
     $objWriter->endElement();
     $objWriter->endElement();
     // c:spPr
     $objWriter->startElement('c:spPr');
     // Fill
     $this->_writeFill($objWriter, $chart->getFill());
     // Border
     if ($chart->getBorder()->getLineStyle() != PHPPowerPoint_Style_Border::LINE_NONE) {
         $this->_writeBorder($objWriter, $chart->getBorder(), '');
     }
     // Shadow
     if ($chart->getShadow()->getVisible()) {
         // a:effectLst
         $objWriter->startElement('a:effectLst');
         // a:outerShdw
         $objWriter->startElement('a:outerShdw');
         $objWriter->writeAttribute('blurRad', PHPPowerPoint_Shared_Drawing::pixelsToEMU($chart->getShadow()->getBlurRadius()));
         $objWriter->writeAttribute('dist', PHPPowerPoint_Shared_Drawing::pixelsToEMU($chart->getShadow()->getDistance()));
         $objWriter->writeAttribute('dir', PHPPowerPoint_Shared_Drawing::degreesToAngle($chart->getShadow()->getDirection()));
         $objWriter->writeAttribute('algn', $chart->getShadow()->getAlignment());
         $objWriter->writeAttribute('rotWithShape', '0');
         // a:srgbClr
         $objWriter->startElement('a:srgbClr');
         $objWriter->writeAttribute('val', $chart->getShadow()->getColor()->getRGB());
         // a:alpha
         $objWriter->startElement('a:alpha');
         $objWriter->writeAttribute('val', $chart->getShadow()->getAlpha() * 1000);
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
         $objWriter->endElement();
     }
     $objWriter->endElement();
     // External data?
     if ($chart->getIncludeSpreadsheet()) {
         // c:externalData
         $objWriter->startElement('c:externalData');
         $objWriter->writeAttribute('r:id', 'rId1');
         // c:autoUpdate
         $objWriter->startElement('c:autoUpdate');
         $objWriter->writeAttribute('val', '0');
         $objWriter->endElement();
         $objWriter->endElement();
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
 /**
  * Write content types to XML format
  *
  * @param 	PHPPowerPoint $pPHPPowerPoint
  * @return 	string 						XML Output
  * @throws 	Exception
  */
 public function writeContentTypes(PHPPowerPoint $pPHPPowerPoint = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Types
     $objWriter->startElement('Types');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/content-types');
     // Rels
     $this->_writeDefaultContentType($objWriter, 'rels', 'application/vnd.openxmlformats-package.relationships+xml');
     // XML
     $this->_writeDefaultContentType($objWriter, 'xml', 'application/xml');
     // Theme
     $this->_writeOverrideContentType($objWriter, '/ppt/theme/theme1.xml', 'application/vnd.openxmlformats-officedocument.theme+xml');
     // Presentation
     $this->_writeOverrideContentType($objWriter, '/ppt/presentation.xml', 'application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml');
     // DocProps
     $this->_writeOverrideContentType($objWriter, '/docProps/app.xml', 'application/vnd.openxmlformats-officedocument.extended-properties+xml');
     $this->_writeOverrideContentType($objWriter, '/docProps/core.xml', 'application/vnd.openxmlformats-package.core-properties+xml');
     // Slide master
     $this->_writeOverrideContentType($objWriter, '/ppt/slideMasters/slideMaster1.xml', 'application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml');
     // Slide layouts
     $slideLayouts = $this->getParentWriter()->getLayoutPack()->getLayouts();
     for ($i = 0; $i < count($slideLayouts); ++$i) {
         $this->_writeOverrideContentType($objWriter, '/ppt/slideLayouts/slideLayout' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml');
     }
     // Slides
     $slideCount = $pPHPPowerPoint->getSlideCount();
     for ($i = 0; $i < $slideCount; ++$i) {
         $this->_writeOverrideContentType($objWriter, '/ppt/slides/slide' . ($i + 1) . '.xml', 'application/vnd.openxmlformats-officedocument.presentationml.slide+xml');
     }
     // Add media content-types
     $aMediaContentTypes = array();
     $mediaCount = $this->getParentWriter()->getDrawingHashTable()->count();
     for ($i = 0; $i < $mediaCount; ++$i) {
         $extension = '';
         $mimeType = '';
         if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPPowerPoint_Shape_Drawing) {
             $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension());
             $mimeType = $this->_getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath());
         } else {
             if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof PHPPowerPoint_Shape_MemoryDrawing) {
                 $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType());
                 $extension = explode('/', $extension);
                 $extension = $extension[1];
                 $mimeType = $this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType();
             }
         }
         if (!isset($aMediaContentTypes[$extension])) {
             $aMediaContentTypes[$extension] = $mimeType;
             $this->_writeDefaultContentType($objWriter, $extension, $mimeType);
         }
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }
Exemple #14
0
 /**
  * Write chart relationships to XML format
  *
  * @param  PHPPowerPoint_Shape_Chart $pChart
  * @return string                    XML Output
  * @throws Exception
  */
 public function writeChartRelationships(PHPPowerPoint_Shape_Chart $pChart = null)
 {
     // Create XML writer
     $objWriter = null;
     if ($this->getParentWriter()->getUseDiskCaching()) {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
     } else {
         $objWriter = new PHPPowerPoint_Shared_XMLWriter(PHPPowerPoint_Shared_XMLWriter::STORAGE_MEMORY);
     }
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Relationships
     $objWriter->startElement('Relationships');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
     // Starting relation id
     $relId = 1;
     // Write spreadsheet relationship?
     if ($pChart->getIncludeSpreadsheet()) {
         $this->_writeRelationship($objWriter, $relId++, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/package', '../embeddings/' . $pChart->getIndexedFilename() . '.xlsx');
     }
     $objWriter->endElement();
     // Return
     return $objWriter->getData();
 }