/** * Write slide master relationships to XML format * * @param SlideMaster $oMasterSlide * @return string XML Output * @throws \Exception * @internal param int $masterId Master slide id */ public function writeSlideMasterRelationships(SlideMaster $oMasterSlide) { // Create XML writer $objWriter = new XMLWriter(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 = 0; // Write all the relations to the Layout Slides foreach ($oMasterSlide->getAllSlideLayouts() as $slideLayout) { $this->writeRelationship($objWriter, ++$relId, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout', '../slideLayouts/slideLayout' . $slideLayout->layoutNr . '.xml'); // Save the used relationId $slideLayout->relationId = 'rId' . $relId; } // Write drawing relationships? $this->writeDrawingRelations($oMasterSlide, $objWriter, $relId); // TODO: Write hyperlink relationships? // TODO: Write comment relationships // Relationship theme/theme1.xml $this->writeRelationship($objWriter, ++$relId, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', '../theme/theme' . $oMasterSlide->getRelsIndex() . '.xml'); $objWriter->endElement(); // Return return $objWriter->getData(); }
public function testTextStyles() { // Mock Pre $mockTextStyle = $this->getMockForAbstractClass('PhpOffice\\PhpPresentation\\Style\\TextStyle'); $object = new SlideMaster(); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\TextStyle', $object->getTextStyles()); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide\\SlideMaster', $object->setTextStyles($mockTextStyle)); $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\TextStyle', $object->getTextStyles()); }
/** * Write theme to XML format * * @param Slide\SlideMaster $oMasterSlide * @return string XML Output */ protected function writeTheme(Slide\SlideMaster $oMasterSlide) { $arrayFont = array('Jpan' => 'MS Pゴシック', 'Hang' => '맑은 고딕', 'Hans' => '宋体', 'Hant' => '新細明體', 'Arab' => 'Times New Roman', 'Hebr' => 'Times New Roman', 'Thai' => 'Angsana New', 'Ethi' => 'Nyala', 'Beng' => 'Vrinda', 'Gujr' => 'Shruti', 'Khmr' => 'MoolBoran', 'Knda' => 'Tunga', 'Guru' => 'Raavi', 'Cans' => 'Euphemia', 'Cher' => 'Plantagenet Cherokee', 'Yiii' => 'Microsoft Yi Baiti', 'Tibt' => 'Microsoft Himalaya', 'Thaa' => 'MV Boli', 'Deva' => 'Mangal', 'Telu' => 'Gautami', 'Taml' => 'Latha', 'Syrc' => 'Estrangelo Edessa', 'Orya' => 'Kalinga', 'Mlym' => 'Kartika', 'Laoo' => 'DokChampa', 'Sinh' => 'Iskoola Pota', 'Mong' => 'Mongolian Baiti', 'Viet' => 'Times New Roman', 'Uigh' => 'Microsoft Uighur'); // Create XML writer $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY); $name = 'Theme' . rand(1, 100); // 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', $name); // a:theme/a:themeElements $objWriter->startElement('a:themeElements'); // a:theme/a:themeElements/a:clrScheme $objWriter->startElement('a:clrScheme'); $objWriter->writeAttribute('name', $name); foreach ($oMasterSlide->getAllSchemeColors() as $oSchemeColor) { // a:theme/a:themeElements/a:clrScheme/a:* $objWriter->startElement('a:' . $oSchemeColor->getValue()); if (in_array($oSchemeColor->getValue(), array('dk1', 'lt1'))) { $objWriter->startElement('a:sysClr'); $objWriter->writeAttribute('val', $oSchemeColor->getValue() == 'dk1' ? 'windowText' : 'window'); $objWriter->writeAttribute('lastClr', $oSchemeColor->getRGB()); $objWriter->endElement(); } else { $objWriter->startElement('a:srgbClr'); $objWriter->writeAttribute('val', $oSchemeColor->getRGB()); $objWriter->endElement(); } // a:theme/a:themeElements/a:clrScheme/a:*/ $objWriter->endElement(); } // a:theme/a:themeElements/a:clrScheme/ $objWriter->endElement(); // a:theme/a:themeElements/a:fontScheme $objWriter->startElement('a:fontScheme'); $objWriter->writeAttribute('name', $name); // a:theme/a:themeElements/a:fontScheme/a:majorFont $objWriter->startElement('a:majorFont'); // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:latin $objWriter->startElement('a:latin'); $objWriter->writeAttribute('typeface', 'Calibri'); $objWriter->endElement(); // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:ea $objWriter->startElement('a:ea'); $objWriter->writeAttribute('typeface', ''); $objWriter->endElement(); // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:cs $objWriter->startElement('a:cs'); $objWriter->writeAttribute('typeface', ''); $objWriter->endElement(); foreach ($arrayFont as $script => $typeface) { // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:font $objWriter->startElement('a:font'); $objWriter->writeAttribute('script', $script); $objWriter->writeAttribute('typeface', $typeface); $objWriter->endElement(); } // a:theme/a:themeElements/a:fontScheme/a:majorFont/ $objWriter->endElement(); // a:theme/a:themeElements/a:fontScheme/a:minorFont $objWriter->startElement('a:minorFont'); // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:latin $objWriter->startElement('a:latin'); $objWriter->writeAttribute('typeface', 'Calibri'); $objWriter->endElement(); // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:ea $objWriter->startElement('a:ea'); $objWriter->writeAttribute('typeface', ''); $objWriter->endElement(); // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:cs $objWriter->startElement('a:cs'); $objWriter->writeAttribute('typeface', ''); $objWriter->endElement(); foreach ($arrayFont as $script => $typeface) { // a:theme/a:themeElements/a:fontScheme/a:majorFont/a:font $objWriter->startElement('a:font'); $objWriter->writeAttribute('script', $script); $objWriter->writeAttribute('typeface', $typeface); $objWriter->endElement(); } // a:theme/a:themeElements/a:fontScheme/a:minorFont/ $objWriter->endElement(); // a:theme/a:themeElements/a:fontScheme/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme $objWriter->startElement('a:fmtScheme'); $objWriter->writeAttribute('name', $name); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst $objWriter->startElement('a:fillStyleLst'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:solidFill $objWriter->startElement('a:solidFill'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:solidFill/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:solidFill/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:solidFill/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill $objWriter->startElement('a:gradFill'); $objWriter->writeAttribute('rotWithShape', 1); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst $objWriter->startElement('a:gsLst'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 0); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); $objWriter->writeAttribute('val', 50000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 300000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 35000); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); $objWriter->writeAttribute('val', 37000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 300000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 100000); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); $objWriter->writeAttribute('val', 15000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 350000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:lin $objWriter->startElement('a:lin'); $objWriter->writeAttribute('ang', 16200000); $objWriter->writeAttribute('scaled', 1); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill $objWriter->startElement('a:gradFill'); $objWriter->writeAttribute('rotWithShape', 1); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst $objWriter->startElement('a:gsLst'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 0); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); $objWriter->writeAttribute('val', 51000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 130000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 80000); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); $objWriter->writeAttribute('val', 93000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 130000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 100000); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); $objWriter->writeAttribute('val', 94000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 135000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:lin $objWriter->startElement('a:lin'); $objWriter->writeAttribute('ang', 16200000); $objWriter->writeAttribute('scaled', 0); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst $objWriter->startElement('a:lnStyleLst'); // a:theme/a:themeElements/a:fmtScheme/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:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill $objWriter->startElement('a:solidFill'); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); $objWriter->writeAttribute('val', 95000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:fillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 105000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:prstDash $objWriter->startElement('a:prstDash'); $objWriter->writeAttribute('val', 'solid'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln $objWriter->startElement('a:ln'); $objWriter->writeAttribute('w', 25400); $objWriter->writeAttribute('cap', 'flat'); $objWriter->writeAttribute('cmpd', 'sng'); $objWriter->writeAttribute('algn', 'ctr'); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill $objWriter->startElement('a:solidFill'); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:prstDash $objWriter->startElement('a:prstDash'); $objWriter->writeAttribute('val', 'solid'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln $objWriter->startElement('a:ln'); $objWriter->writeAttribute('w', 38100); $objWriter->writeAttribute('cap', 'flat'); $objWriter->writeAttribute('cmpd', 'sng'); $objWriter->writeAttribute('algn', 'ctr'); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill $objWriter->startElement('a:solidFill'); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:solidFill/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/a:prstDash $objWriter->startElement('a:prstDash'); $objWriter->writeAttribute('val', 'solid'); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/a:ln/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:lnStyleLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst $objWriter->startElement('a:effectStyleLst'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle $objWriter->startElement('a:effectStyle'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst $objWriter->startElement('a:effectLst'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw $objWriter->startElement('a:outerShdw'); $objWriter->writeAttribute('blurRad', 40000); $objWriter->writeAttribute('dir', 5400000); $objWriter->writeAttribute('dist', 20000); $objWriter->writeAttribute('rotWithShape', 0); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr $objWriter->startElement('a:srgbClr'); $objWriter->writeAttribute('val', '000000'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha $objWriter->startElement('a:alpha'); $objWriter->writeAttribute('val', 38000); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle $objWriter->startElement('a:effectStyle'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst $objWriter->startElement('a:effectLst'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw $objWriter->startElement('a:outerShdw'); $objWriter->writeAttribute('blurRad', 40000); $objWriter->writeAttribute('dir', 5400000); $objWriter->writeAttribute('dist', 23000); $objWriter->writeAttribute('rotWithShape', 0); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr $objWriter->startElement('a:srgbClr'); $objWriter->writeAttribute('val', '000000'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha $objWriter->startElement('a:alpha'); $objWriter->writeAttribute('val', 35000); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle $objWriter->startElement('a:effectStyle'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst $objWriter->startElement('a:effectLst'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw $objWriter->startElement('a:outerShdw'); $objWriter->writeAttribute('blurRad', 40000); $objWriter->writeAttribute('dir', 5400000); $objWriter->writeAttribute('dist', 23000); $objWriter->writeAttribute('rotWithShape', 0); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr $objWriter->startElement('a:srgbClr'); $objWriter->writeAttribute('val', '000000'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha $objWriter->startElement('a:alpha'); $objWriter->writeAttribute('val', 35000); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/a:alpha/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/a:srgbClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/a:outerShdw/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:effectLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d $objWriter->startElement('a:scene3d'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:camera $objWriter->startElement('a:camera'); $objWriter->writeAttribute('prst', 'orthographicFront'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:camera/a:rot $objWriter->startElement('a:rot'); $objWriter->writeAttribute('lat', 0); $objWriter->writeAttribute('lon', 0); $objWriter->writeAttribute('rev', 0); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:camera/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:lightRig $objWriter->startElement('a:lightRig'); $objWriter->writeAttribute('dir', 't'); $objWriter->writeAttribute('rig', 'threePt'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:lightRig/a:rot $objWriter->startElement('a:rot'); $objWriter->writeAttribute('lat', 0); $objWriter->writeAttribute('lon', 0); $objWriter->writeAttribute('rev', 1200000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/a:lightRig/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:scene3d/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:sp3d $objWriter->startElement('a:sp3d'); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:sp3d/a:bevelT $objWriter->startElement('a:bevelT'); $objWriter->writeAttribute('h', 25400); $objWriter->writeAttribute('w', 63500); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/a:sp3d/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/a:effectStyle/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:effectStyleLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst $objWriter->startElement('a:bgFillStyleLst'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:solidFill $objWriter->startElement('a:solidFill'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:solidFill/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:solidFill/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:solidFill/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill $objWriter->startElement('a:gradFill'); $objWriter->writeAttribute('rotWithShape', 1); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst $objWriter->startElement('a:gsLst'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 0); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); $objWriter->writeAttribute('val', 40000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 350000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 40000); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:tint'); $objWriter->writeAttribute('val', 45000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); $objWriter->writeAttribute('val', 99000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 350000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 100000); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); $objWriter->writeAttribute('val', 20000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 255000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path $objWriter->startElement('a:path'); $objWriter->writeAttribute('path', 'circle'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/a:fillToRect $objWriter->startElement('a:fillToRect'); $objWriter->writeAttribute('b', 180000); $objWriter->writeAttribute('l', 50000); $objWriter->writeAttribute('r', 50000); $objWriter->writeAttribute('t', -80000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill $objWriter->startElement('a:gradFill'); $objWriter->writeAttribute('rotWithShape', 1); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst $objWriter->startElement('a:gsLst'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 0); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:tint $objWriter->startElement('a:tint'); $objWriter->writeAttribute('val', 80000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 300000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs $objWriter->startElement('a:gs'); $objWriter->writeAttribute('pos', 100000); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr $objWriter->startElement('a:schemeClr'); $objWriter->writeAttribute('val', 'phClr'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:shade $objWriter->startElement('a:shade'); $objWriter->writeAttribute('val', 30000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/a:satMod $objWriter->startElement('a:satMod'); $objWriter->writeAttribute('val', 200000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/a:schemeClr/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/a:gs/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:gsLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path $objWriter->startElement('a:path'); $objWriter->writeAttribute('path', 'circle'); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/a:fillToRect $objWriter->startElement('a:fillToRect'); $objWriter->writeAttribute('b', 50000); $objWriter->writeAttribute('l', 50000); $objWriter->writeAttribute('r', 50000); $objWriter->writeAttribute('t', 50000); $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/a:path/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/a:gradFill/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/a:bgFillStyleLst/ $objWriter->endElement(); // a:theme/a:themeElements/a:fmtScheme/ $objWriter->endElement(); // a:theme/a:themeElements/ $objWriter->endElement(); // a:theme/a:themeElements $objWriter->writeElement('a:objectDefaults'); // a:theme/a:extraClrSchemeLst $objWriter->writeElement('a:extraClrSchemeLst'); // a:theme/ $objWriter->endElement(); // Return return $objWriter->getData(); }
/** * @param string $sPart * @param SlideMaster $oSlideMaster */ private function loadTheme($sPart, SlideMaster $oSlideMaster) { $xmlReader = new XMLReader(); if ($xmlReader->getDomFromString($sPart)) { $oElements = $xmlReader->getElements('/a:theme/a:themeElements/a:clrScheme/*'); if ($oElements) { foreach ($oElements as $oElement) { $oSchemeColor = new SchemeColor(); $oSchemeColor->setValue(str_replace('a:', '', $oElement->tagName)); $colorElement = $xmlReader->getElement('*', $oElement); if ($colorElement) { if ($colorElement->hasAttribute('lastClr')) { $oSchemeColor->setRGB($colorElement->getAttribute('lastClr')); } elseif ($colorElement->hasAttribute('val')) { $oSchemeColor->setRGB($colorElement->getAttribute('val')); } } $oSlideMaster->addSchemeColor($oSchemeColor); } } } }