/**
  * @return \PhpOffice\Common\Adapter\Zip\ZipInterface
  */
 public function render()
 {
     // Create XML writer
     $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Properties
     $objWriter->startElement('Properties');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties');
     $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
     if ($this->getPresentation()->getPresentationProperties()->isMarkedAsFinal()) {
         // property
         $objWriter->startElement('property');
         $objWriter->writeAttribute('fmtid', '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}');
         $objWriter->writeAttribute('pid', 2);
         $objWriter->writeAttribute('name', '_MarkAsFinal');
         // property > vt:bool
         $objWriter->writeElement('vt:bool', 'true');
         // > property
         $objWriter->endElement();
     }
     // > Properties
     $objWriter->endElement();
     $this->oZip->addFromString('docProps/custom.xml', $objWriter->getData());
     // Return
     return $this->oZip;
 }
 /**
  * Write Border
  *
  * @param  \PhpOffice\Common\XMLWriter $objWriter    XML Writer
  * @param  \PhpOffice\PhpPresentation\Style\Border     $pBorder      Border
  * @param  string                         $pElementName Element name
  * @throws \Exception
  */
 protected function writeBorder(XMLWriter $objWriter, $pBorder, $pElementName = 'L')
 {
     if (!$pBorder instanceof Border) {
         return;
     }
     if ($pBorder->getLineStyle() == Border::LINE_NONE && $pElementName == '') {
         return;
     }
     // Line style
     $lineStyle = $pBorder->getLineStyle();
     if ($lineStyle == Border::LINE_NONE) {
         $lineStyle = Border::LINE_SINGLE;
     }
     // Line width
     $lineWidth = 12700 * $pBorder->getLineWidth();
     // a:ln $pElementName
     $objWriter->startElement('a:ln' . $pElementName);
     $objWriter->writeAttribute('w', $lineWidth);
     $objWriter->writeAttribute('cap', 'flat');
     $objWriter->writeAttribute('cmpd', $lineStyle);
     $objWriter->writeAttribute('algn', 'ctr');
     // Fill?
     if ($pBorder->getLineStyle() == Border::LINE_NONE) {
         // a:noFill
         $objWriter->writeElement('a:noFill', null);
     } else {
         // a:solidFill
         $objWriter->startElement('a:solidFill');
         $this->writeColor($objWriter, $pBorder->getColor());
         $objWriter->endElement();
     }
     // Dash
     $objWriter->startElement('a:prstDash');
     $objWriter->writeAttribute('val', $pBorder->getDashStyle());
     $objWriter->endElement();
     // a:round
     $objWriter->writeElement('a:round', null);
     // a:headEnd
     $objWriter->startElement('a:headEnd');
     $objWriter->writeAttribute('type', 'none');
     $objWriter->writeAttribute('w', 'med');
     $objWriter->writeAttribute('len', 'med');
     $objWriter->endElement();
     // a:tailEnd
     $objWriter->startElement('a:tailEnd');
     $objWriter->writeAttribute('type', 'none');
     $objWriter->writeAttribute('w', 'med');
     $objWriter->writeAttribute('len', 'med');
     $objWriter->endElement();
     $objWriter->endElement();
 }
Example #3
0
 /**
  * @return \PhpOffice\Common\Adapter\Zip\ZipInterface
  */
 public function render()
 {
     // Create XML writer
     $objWriter = new XMLWriter(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', $this->oPresentation->getDocumentProperties()->getCreator());
     // cp:lastModifiedBy
     $objWriter->writeElement('cp:lastModifiedBy', $this->oPresentation->getDocumentProperties()->getLastModifiedBy());
     // dcterms:created
     $objWriter->startElement('dcterms:created');
     $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF');
     $objWriter->writeRaw(gmdate("Y-m-d\\TH:i:s\\Z", $this->oPresentation->getDocumentProperties()->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", $this->oPresentation->getDocumentProperties()->getModified()));
     $objWriter->endElement();
     // dc:title
     $objWriter->writeElement('dc:title', $this->oPresentation->getDocumentProperties()->getTitle());
     // dc:description
     $objWriter->writeElement('dc:description', $this->oPresentation->getDocumentProperties()->getDescription());
     // dc:subject
     $objWriter->writeElement('dc:subject', $this->oPresentation->getDocumentProperties()->getSubject());
     // cp:keywords
     $objWriter->writeElement('cp:keywords', $this->oPresentation->getDocumentProperties()->getKeywords());
     // cp:category
     $objWriter->writeElement('cp:category', $this->oPresentation->getDocumentProperties()->getCategory());
     if ($this->oPresentation->getPresentationProperties()->isMarkedAsFinal()) {
         // cp:contentStatus = Final
         $objWriter->writeElement('cp:contentStatus', 'Final');
     }
     $objWriter->endElement();
     $this->oZip->addFromString('docProps/core.xml', $objWriter->getData());
     // Return
     return $this->oZip;
 }
Example #4
0
 /**
  * @return ZipInterface
  */
 public function render()
 {
     // Create XML writer
     $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
     $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', $this->getPresentation()->getDocumentProperties()->getLastModifiedBy());
     // dc:date
     $objWriter->writeElement('dc:date', gmdate('Y-m-d\\TH:i:s.000', $this->getPresentation()->getDocumentProperties()->getModified()));
     // dc:description
     $objWriter->writeElement('dc:description', $this->getPresentation()->getDocumentProperties()->getDescription());
     // dc:subject
     $objWriter->writeElement('dc:subject', $this->getPresentation()->getDocumentProperties()->getSubject());
     // dc:title
     $objWriter->writeElement('dc:title', $this->getPresentation()->getDocumentProperties()->getTitle());
     // meta:creation-date
     $objWriter->writeElement('meta:creation-date', gmdate('Y-m-d\\TH:i:s.000', $this->getPresentation()->getDocumentProperties()->getCreated()));
     // meta:initial-creator
     $objWriter->writeElement('meta:initial-creator', $this->getPresentation()->getDocumentProperties()->getCreator());
     // meta:keyword
     $objWriter->writeElement('meta:keyword', $this->getPresentation()->getDocumentProperties()->getKeywords());
     // @todo : Where these properties are written ?
     // $this->getPresentation()->getDocumentProperties()->getCategory()
     // $this->getPresentation()->getDocumentProperties()->getCompany()
     $objWriter->endElement();
     $objWriter->endElement();
     $this->getZip()->addFromString('meta.xml', $objWriter->getData());
     return $this->getZip();
 }
 /**
  * Write indivual setting, recursive to any child settings.
  *
  * @param \PhpOffice\Common\XMLWriter $xmlWriter
  * @param string $settingKey
  * @param array|string $settingValue
  * @return void
  */
 protected function writeSetting($xmlWriter, $settingKey, $settingValue)
 {
     if ($settingValue == '') {
         $xmlWriter->writeElement($settingKey);
     } else {
         $xmlWriter->startElement($settingKey);
         /** @var array $settingValue Type hint */
         foreach ($settingValue as $childKey => $childValue) {
             if ($childKey == '@attributes') {
                 foreach ($childValue as $key => $val) {
                     $xmlWriter->writeAttribute($key, $val);
                 }
             } else {
                 $this->writeSetting($xmlWriter, $childKey, $childValue);
             }
         }
         $xmlWriter->endElement();
     }
 }
Example #6
0
 /**
  * @param Slide $oSlide
  * @return string
  */
 protected function writeSlideComments(Slide $oSlide)
 {
     /**
      * @var Comment[]
      */
     $arrayComment = array();
     foreach ($oSlide->getShapeCollection() as $oShape) {
         if ($oShape instanceof Comment) {
             $arrayComment[] = $oShape;
         }
     }
     if (empty($arrayComment)) {
         return '';
     }
     $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // p:cmLst
     $objWriter->startElement('p:cmLst');
     $objWriter->writeAttribute('xmlns:p', 'http://schemas.openxmlformats.org/presentationml/2006/main');
     foreach ($arrayComment as $idxComment => $oComment) {
         $oAuthor = $oComment->getAuthor();
         // p:cmLst > p:cm
         $objWriter->startElement('p:cm');
         $objWriter->writeAttribute('authorId', $oAuthor instanceof Comment\Author ? $oAuthor->getIndex() : 0);
         $objWriter->writeAttribute('dt', date('Y-m-d\\TH:i:s.000000000', $oComment->getDate()));
         $objWriter->writeAttribute('idx', $idxComment);
         // p:cmLst > p:cm > p:pos
         // Uses 1/8pt for positionning
         // @link : https://social.msdn.microsoft.com/Forums/fr-FR/ebdc12f2-0cff-4fa8-b901-fa6e3198364e/comment-position-units
         $objWriter->startElement('p:pos');
         $objWriter->writeAttribute('x', (int) CommonDrawing::pixelsToPoints($oComment->getOffsetX() * 8));
         $objWriter->writeAttribute('y', (int) CommonDrawing::pixelsToPoints($oComment->getOffsetY() * 8));
         $objWriter->endElement();
         // p:cmLst > p:cm > p:text
         $objWriter->writeElement('p:text', $oComment->getText());
         // p:cmLst > ## p:cm
         $objWriter->endElement();
     }
     // ## p:cmLst
     $objWriter->endElement();
     return $objWriter->getData();
 }
Example #7
0
 /**
  * Write table Shape
  * @param XMLWriter $objWriter
  * @param Table $shape
  */
 public function writeShapeTable(XMLWriter $objWriter, Table $shape)
 {
     // draw:frame
     $objWriter->startElement('draw:frame');
     $objWriter->writeAttribute('svg:x', String::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getOffsetX()), 3) . 'cm');
     $objWriter->writeAttribute('svg:y', String::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getOffsetY()), 3) . 'cm');
     $objWriter->writeAttribute('svg:height', String::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getHeight()), 3) . 'cm');
     $objWriter->writeAttribute('svg:width', String::numberFormat(CommonDrawing::pixelsToCentimeters($shape->getWidth()), 3) . 'cm');
     // table:table
     $objWriter->startElement('table:table');
     foreach ($shape->getRows() as $keyRow => $shapeRow) {
         // table:table-row
         $objWriter->startElement('table:table-row');
         $objWriter->writeAttribute('table:style-name', 'gr' . $this->shapeId . 'r' . $keyRow);
         //@todo getFill
         $numColspan = 0;
         foreach ($shapeRow->getCells() as $keyCell => $shapeCell) {
             if ($numColspan == 0) {
                 // table:table-cell
                 $objWriter->startElement('table:table-cell');
                 $objWriter->writeAttribute('table:style-name', 'gr' . $this->shapeId . 'r' . $keyRow . 'c' . $keyCell);
                 if ($shapeCell->getColspan() > 1) {
                     $objWriter->writeAttribute('table:number-columns-spanned', $shapeCell->getColspan());
                     $numColspan = $shapeCell->getColspan() - 1;
                 }
                 // text:p
                 $objWriter->startElement('text:p');
                 // text:span
                 foreach ($shapeCell->getParagraphs() as $shapeParagraph) {
                     foreach ($shapeParagraph->getRichTextElements() as $shapeRichText) {
                         if ($shapeRichText instanceof TextElement || $shapeRichText instanceof Run) {
                             // text:span
                             $objWriter->startElement('text:span');
                             if ($shapeRichText instanceof Run) {
                                 $objWriter->writeAttribute('text:style-name', 'T_' . $shapeRichText->getFont()->getHashCode());
                             }
                             if ($shapeRichText->hasHyperlink() === true && $shapeRichText->getHyperlink()->getUrl() != '') {
                                 // text:a
                                 $objWriter->startElement('text:a');
                                 $objWriter->writeAttribute('xlink:href', $shapeRichText->getHyperlink()->getUrl());
                                 $objWriter->text($shapeRichText->getText());
                                 $objWriter->endElement();
                             } else {
                                 $objWriter->text($shapeRichText->getText());
                             }
                             $objWriter->endElement();
                         } elseif ($shapeRichText instanceof BreakElement) {
                             // text:span
                             $objWriter->startElement('text:span');
                             // text:line-break
                             $objWriter->startElement('text:line-break');
                             $objWriter->endElement();
                             $objWriter->endElement();
                         }
                     }
                 }
                 // > text:p
                 $objWriter->endElement();
                 // > table:table-cell
                 $objWriter->endElement();
             } else {
                 // table:covered-table-cell
                 $objWriter->writeElement('table:covered-table-cell');
                 $numColspan--;
             }
         }
         // > table:table-row
         $objWriter->endElement();
     }
     // > table:table
     $objWriter->endElement();
     // > draw:frame
     $objWriter->endElement();
 }
Example #8
0
 /**
  * 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();
 }
Example #9
0
 /**
  * Write Transition Slide
  * @link http://officeopenxml.com/prSlide-transitions.php
  * @param XMLWriter $objWriter
  * @param Transition $transition
  */
 public function writeTransition(XMLWriter $objWriter, Transition $transition)
 {
     $objWriter->startElement('p:transition');
     if (!is_null($transition->getSpeed())) {
         $objWriter->writeAttribute('spd', $transition->getSpeed());
     }
     $objWriter->writeAttribute('advClick', $transition->hasManualTrigger() ? '1' : '0');
     if ($transition->hasTimeTrigger()) {
         $objWriter->writeAttribute('advTm', $transition->getAdvanceTimeTrigger());
     }
     switch ($transition->getTransitionType()) {
         case Transition::TRANSITION_BLINDS_HORIZONTAL:
             $objWriter->startElement('p:blinds');
             $objWriter->writeAttribute('dir', 'horz');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_BLINDS_VERTICAL:
             $objWriter->startElement('p:blinds');
             $objWriter->writeAttribute('dir', 'vert');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_CHECKER_HORIZONTAL:
             $objWriter->startElement('p:checker');
             $objWriter->writeAttribute('dir', 'horz');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_CHECKER_VERTICAL:
             $objWriter->startElement('p:checker');
             $objWriter->writeAttribute('dir', 'vert');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_CIRCLE_HORIZONTAL:
             $objWriter->startElement('p:circle');
             $objWriter->writeAttribute('dir', 'horz');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_CIRCLE_VERTICAL:
             $objWriter->startElement('p:circle');
             $objWriter->writeAttribute('dir', 'vert');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COMB_HORIZONTAL:
             $objWriter->startElement('p:comb');
             $objWriter->writeAttribute('dir', 'horz');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COMB_VERTICAL:
             $objWriter->startElement('p:comb');
             $objWriter->writeAttribute('dir', 'vert');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COVER_DOWN:
             $objWriter->startElement('p:cover');
             $objWriter->writeAttribute('dir', 'd');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COVER_LEFT:
             $objWriter->startElement('p:cover');
             $objWriter->writeAttribute('dir', 'l');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COVER_LEFT_DOWN:
             $objWriter->startElement('p:cover');
             $objWriter->writeAttribute('dir', 'ld');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COVER_LEFT_UP:
             $objWriter->startElement('p:cover');
             $objWriter->writeAttribute('dir', 'lu');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COVER_RIGHT:
             $objWriter->startElement('p:cover');
             $objWriter->writeAttribute('dir', 'r');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COVER_RIGHT_DOWN:
             $objWriter->startElement('p:cover');
             $objWriter->writeAttribute('dir', 'rd');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COVER_RIGHT_UP:
             $objWriter->startElement('p:cover');
             $objWriter->writeAttribute('dir', 'ru');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_COVER_UP:
             $objWriter->startElement('p:cover');
             $objWriter->writeAttribute('dir', 'u');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_CUT:
             $objWriter->writeElement('p:cut');
             break;
         case Transition::TRANSITION_DIAMOND:
             $objWriter->writeElement('p:diamond');
             break;
         case Transition::TRANSITION_DISSOLVE:
             $objWriter->writeElement('p:dissolve');
             break;
         case Transition::TRANSITION_FADE:
             $objWriter->writeElement('p:fade');
             break;
         case Transition::TRANSITION_NEWSFLASH:
             $objWriter->writeElement('p:newsflash');
             break;
         case Transition::TRANSITION_PLUS:
             $objWriter->writeElement('p:plus');
             break;
         case Transition::TRANSITION_PULL_DOWN:
             $objWriter->startElement('p:pull');
             $objWriter->writeAttribute('dir', 'd');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_PULL_LEFT:
             $objWriter->startElement('p:pull');
             $objWriter->writeAttribute('dir', 'l');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_PULL_RIGHT:
             $objWriter->startElement('p:pull');
             $objWriter->writeAttribute('dir', 'r');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_PULL_UP:
             $objWriter->startElement('p:pull');
             $objWriter->writeAttribute('dir', 'u');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_PUSH_DOWN:
             $objWriter->startElement('p:push');
             $objWriter->writeAttribute('dir', 'd');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_PUSH_LEFT:
             $objWriter->startElement('p:push');
             $objWriter->writeAttribute('dir', 'l');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_PUSH_RIGHT:
             $objWriter->startElement('p:push');
             $objWriter->writeAttribute('dir', 'r');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_PUSH_UP:
             $objWriter->startElement('p:push');
             $objWriter->writeAttribute('dir', 'u');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_RANDOM:
             $objWriter->writeElement('p:random');
             break;
         case Transition::TRANSITION_RANDOMBAR_HORIZONTAL:
             $objWriter->startElement('p:randomBar');
             $objWriter->writeAttribute('dir', 'horz');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_RANDOMBAR_VERTICAL:
             $objWriter->startElement('p:randomBar');
             $objWriter->writeAttribute('dir', 'vert');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_SPLIT_IN_HORIZONTAL:
             $objWriter->startElement('p:split');
             $objWriter->writeAttribute('dir', 'in');
             $objWriter->writeAttribute('orient', 'horz');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_SPLIT_OUT_HORIZONTAL:
             $objWriter->startElement('p:split');
             $objWriter->writeAttribute('dir', 'out');
             $objWriter->writeAttribute('orient', 'horz');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_SPLIT_IN_VERTICAL:
             $objWriter->startElement('p:split');
             $objWriter->writeAttribute('dir', 'in');
             $objWriter->writeAttribute('orient', 'vert');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_SPLIT_OUT_VERTICAL:
             $objWriter->startElement('p:split');
             $objWriter->writeAttribute('dir', 'out');
             $objWriter->writeAttribute('orient', 'vert');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_STRIPS_LEFT_DOWN:
             $objWriter->startElement('p:strips');
             $objWriter->writeAttribute('dir', 'ld');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_STRIPS_LEFT_UP:
             $objWriter->startElement('p:strips');
             $objWriter->writeAttribute('dir', 'lu');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_STRIPS_RIGHT_DOWN:
             $objWriter->startElement('p:strips');
             $objWriter->writeAttribute('dir', 'rd');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_STRIPS_RIGHT_UP:
             $objWriter->startElement('p:strips');
             $objWriter->writeAttribute('dir', 'ru');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_WEDGE:
             $objWriter->writeElement('p:wedge');
             break;
         case Transition::TRANSITION_WIPE_DOWN:
             $objWriter->startElement('p:wipe');
             $objWriter->writeAttribute('dir', 'd');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_WIPE_LEFT:
             $objWriter->startElement('p:wipe');
             $objWriter->writeAttribute('dir', 'l');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_WIPE_RIGHT:
             $objWriter->startElement('p:wipe');
             $objWriter->writeAttribute('dir', 'r');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_WIPE_UP:
             $objWriter->startElement('p:wipe');
             $objWriter->writeAttribute('dir', 'u');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_ZOOM_IN:
             $objWriter->startElement('p:zoom');
             $objWriter->writeAttribute('dir', 'in');
             $objWriter->endElement();
             break;
         case Transition::TRANSITION_ZOOM_OUT:
             $objWriter->startElement('p:zoom');
             $objWriter->writeAttribute('dir', 'out');
             $objWriter->endElement();
             break;
     }
     $objWriter->endElement();
 }
Example #10
0
 /**
  * Write Title
  *
  * @param  \PhpOffice\Common\XMLWriter  $objWriter XML Writer
  * @param  \PhpOffice\PhpPresentation\Shape\Chart\Title $subject
  * @throws \Exception
  */
 protected function writeTitle(XMLWriter $objWriter, Title $subject)
 {
     // c:title
     $objWriter->startElement('c:title');
     // c:tx
     $objWriter->startElement('c:tx');
     // c:rich
     $objWriter->startElement('c:rich');
     // a:bodyPr
     $objWriter->writeElement('a:bodyPr', null);
     // a:lstStyle
     $objWriter->writeElement('a:lstStyle', null);
     // a:p
     $objWriter->startElement('a:p');
     // a:pPr
     $objWriter->startElement('a:pPr');
     $objWriter->writeAttribute('algn', $subject->getAlignment()->getHorizontal());
     $objWriter->writeAttribute('fontAlgn', $subject->getAlignment()->getVertical());
     $objWriter->writeAttribute('marL', CommonDrawing::pixelsToEmu($subject->getAlignment()->getMarginLeft()));
     $objWriter->writeAttribute('marR', CommonDrawing::pixelsToEmu($subject->getAlignment()->getMarginRight()));
     $objWriter->writeAttribute('indent', CommonDrawing::pixelsToEmu($subject->getAlignment()->getIndent()));
     $objWriter->writeAttribute('lvl', $subject->getAlignment()->getLevel());
     // a:defRPr
     $objWriter->writeElement('a:defRPr', null);
     $objWriter->endElement();
     // a:r
     $objWriter->startElement('a:r');
     // a:rPr
     $objWriter->startElement('a:rPr');
     $objWriter->writeAttribute('lang', 'en-US');
     $objWriter->writeAttribute('dirty', '0');
     $objWriter->writeAttribute('b', $subject->getFont()->isBold() ? 'true' : 'false');
     $objWriter->writeAttribute('i', $subject->getFont()->isItalic() ? 'true' : 'false');
     $objWriter->writeAttribute('strike', $subject->getFont()->isStrikethrough() ? 'sngStrike' : 'noStrike');
     $objWriter->writeAttribute('sz', $subject->getFont()->getSize() * 100);
     $objWriter->writeAttribute('u', $subject->getFont()->getUnderline());
     if ($subject->getFont()->isSuperScript() || $subject->getFont()->isSubScript()) {
         if ($subject->getFont()->isSuperScript()) {
             $objWriter->writeAttribute('baseline', '30000');
         } elseif ($subject->getFont()->isSubScript()) {
             $objWriter->writeAttribute('baseline', '-25000');
         }
     }
     // Font - a:solidFill
     $objWriter->startElement('a:solidFill');
     // a:srgbClr
     $objWriter->startElement('a:srgbClr');
     $objWriter->writeAttribute('val', $subject->getFont()->getColor()->getRGB());
     $objWriter->endElement();
     $objWriter->endElement();
     // Font - a:latin
     $objWriter->startElement('a:latin');
     $objWriter->writeAttribute('typeface', $subject->getFont()->getName());
     $objWriter->endElement();
     $objWriter->endElement();
     // a:t
     $objWriter->writeElement('a:t', $subject->getText());
     $objWriter->endElement();
     // a:endParaRPr
     $objWriter->startElement('a:endParaRPr');
     $objWriter->writeAttribute('lang', 'en-US');
     $objWriter->writeAttribute('dirty', '0');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // Write layout
     $this->writeLayout($objWriter, $subject);
     // c:overlay
     $objWriter->startElement('c:overlay');
     $objWriter->writeAttribute('val', '0');
     $objWriter->endElement();
     $objWriter->endElement();
 }
 /**
  * Write default font and other default styles.
  *
  * @param \PhpOffice\Common\XMLWriter $xmlWriter
  * @param \PhpOffice\PhpWord\Style\AbstractStyle[] $styles
  * @return void
  */
 private function writeDefaultStyles(XMLWriter $xmlWriter, $styles)
 {
     $fontName = PhpWordSettings::getDefaultFontName();
     $fontSize = PhpWordSettings::getDefaultFontSize();
     // Default font
     $xmlWriter->startElement('w:docDefaults');
     $xmlWriter->startElement('w:rPrDefault');
     $xmlWriter->startElement('w:rPr');
     $xmlWriter->startElement('w:rFonts');
     $xmlWriter->writeAttribute('w:ascii', $fontName);
     $xmlWriter->writeAttribute('w:hAnsi', $fontName);
     $xmlWriter->writeAttribute('w:eastAsia', $fontName);
     $xmlWriter->writeAttribute('w:cs', $fontName);
     $xmlWriter->endElement();
     // w:rFonts
     $xmlWriter->startElement('w:sz');
     $xmlWriter->writeAttribute('w:val', $fontSize * 2);
     $xmlWriter->endElement();
     // w:sz
     $xmlWriter->startElement('w:szCs');
     $xmlWriter->writeAttribute('w:val', $fontSize * 2);
     $xmlWriter->endElement();
     // w:szCs
     $xmlWriter->endElement();
     // w:rPr
     $xmlWriter->endElement();
     // w:rPrDefault
     $xmlWriter->endElement();
     // w:docDefaults
     // Normal style
     $xmlWriter->startElement('w:style');
     $xmlWriter->writeAttribute('w:type', 'paragraph');
     $xmlWriter->writeAttribute('w:default', '1');
     $xmlWriter->writeAttribute('w:styleId', 'Normal');
     $xmlWriter->startElement('w:name');
     $xmlWriter->writeAttribute('w:val', 'Normal');
     $xmlWriter->endElement();
     // w:name
     if (isset($styles['Normal'])) {
         $styleWriter = new ParagraphStyleWriter($xmlWriter, $styles['Normal']);
         $styleWriter->write();
     }
     $xmlWriter->endElement();
     // w:style
     // FootnoteReference style
     if (!isset($styles['FootnoteReference'])) {
         $xmlWriter->startElement('w:style');
         $xmlWriter->writeAttribute('w:type', 'character');
         $xmlWriter->writeAttribute('w:styleId', 'FootnoteReference');
         $xmlWriter->startElement('w:name');
         $xmlWriter->writeAttribute('w:val', 'Footnote Reference');
         $xmlWriter->endElement();
         // w:name
         $xmlWriter->writeElement('w:semiHidden');
         $xmlWriter->writeElement('w:unhideWhenUsed');
         $xmlWriter->startElement('w:rPr');
         $xmlWriter->startElement('w:vertAlign');
         $xmlWriter->writeAttribute('w:val', 'superscript');
         $xmlWriter->endElement();
         // w:vertAlign
         $xmlWriter->endElement();
         // w:rPr
         $xmlWriter->endElement();
         // w:style
     }
 }
Example #12
0
 /**
  * @return \PhpOffice\Common\Adapter\Zip\ZipInterface
  */
 public function render()
 {
     // Create XML writer
     $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
     // XML header
     $objWriter->startDocument('1.0', 'UTF-8', 'yes');
     // Properties
     $objWriter->startElement('Properties');
     $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties');
     $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes');
     // Application
     $objWriter->writeElement('Application', 'Microsoft Office PowerPoint');
     // Slides
     $objWriter->writeElement('Slides', $this->getPresentation()->getSlideCount());
     // ScaleCrop
     $objWriter->writeElement('ScaleCrop', 'false');
     // HeadingPairs
     $objWriter->startElement('HeadingPairs');
     // Vector
     $objWriter->startElement('vt:vector');
     $objWriter->writeAttribute('size', '4');
     $objWriter->writeAttribute('baseType', 'variant');
     // Variant
     $objWriter->startElement('vt:variant');
     $objWriter->writeElement('vt:lpstr', 'Theme');
     $objWriter->endElement();
     // Variant
     $objWriter->startElement('vt:variant');
     $objWriter->writeElement('vt:i4', '1');
     $objWriter->endElement();
     // Variant
     $objWriter->startElement('vt:variant');
     $objWriter->writeElement('vt:lpstr', 'Slide Titles');
     $objWriter->endElement();
     // Variant
     $objWriter->startElement('vt:variant');
     $objWriter->writeElement('vt:i4', '1');
     $objWriter->endElement();
     $objWriter->endElement();
     $objWriter->endElement();
     // TitlesOfParts
     $objWriter->startElement('TitlesOfParts');
     // Vector
     $objWriter->startElement('vt:vector');
     $objWriter->writeAttribute('size', '1');
     $objWriter->writeAttribute('baseType', 'lpstr');
     $objWriter->writeElement('vt:lpstr', 'Office Theme');
     $objWriter->endElement();
     $objWriter->endElement();
     // Company
     $objWriter->writeElement('Company', $this->getPresentation()->getDocumentProperties()->getCompany());
     // LinksUpToDate
     $objWriter->writeElement('LinksUpToDate', 'false');
     // SharedDoc
     $objWriter->writeElement('SharedDoc', 'false');
     // HyperlinksChanged
     $objWriter->writeElement('HyperlinksChanged', 'false');
     // AppVersion
     $objWriter->writeElement('AppVersion', '12.0000');
     $objWriter->endElement();
     $this->oZip->addFromString('docProps/app.xml', $objWriter->getData());
     // Return
     return $this->oZip;
 }
 /**
  * Write note item.
  *
  * @param \PhpOffice\Common\XMLWriter $xmlWriter
  * @param \PhpOffice\PhpWord\Element\Footnote|\PhpOffice\PhpWord\Element\Endnote $element
  * @return void
  */
 protected function writeNote(XMLWriter $xmlWriter, $element)
 {
     $xmlWriter->startElement($this->elementNode);
     $xmlWriter->writeAttribute('w:id', $element->getRelationId());
     $xmlWriter->startElement('w:p');
     // Paragraph style
     $styleWriter = new ParagraphStyleWriter($xmlWriter, $element->getParagraphStyle());
     $styleWriter->setIsInline(true);
     $styleWriter->write();
     // Reference symbol
     $xmlWriter->startElement('w:r');
     $xmlWriter->startElement('w:rPr');
     $xmlWriter->startElement('w:rStyle');
     $xmlWriter->writeAttribute('w:val', $this->refStyle);
     $xmlWriter->endElement();
     // w:rStyle
     $xmlWriter->endElement();
     // w:rPr
     $xmlWriter->writeElement($this->refNode);
     $xmlWriter->endElement();
     // w:r
     // Empty space after refence symbol
     $xmlWriter->startElement('w:r');
     $xmlWriter->startElement('w:t');
     $xmlWriter->writeAttribute('xml:space', 'preserve');
     $xmlWriter->text(' ');
     $xmlWriter->endElement();
     // w:t
     $xmlWriter->endElement();
     // w:r
     $containerWriter = new Container($xmlWriter, $element);
     $containerWriter->write();
     $xmlWriter->endElement();
     // w:p
     $xmlWriter->endElement();
     // $this->elementNode
 }
Example #14
0
 /**
  * @param \PhpOffice\PhpPresentation\Slide\AbstractSlide $pSlide
  * @param $objWriter
  */
 protected function writeSlideBackground(AbstractSlideAlias $pSlide, XMLWriter $objWriter)
 {
     if (!$pSlide->getBackground() instanceof Slide\AbstractBackground) {
         return;
     }
     $oBackground = $pSlide->getBackground();
     // p:bg
     $objWriter->startElement('p:bg');
     if ($oBackground instanceof Slide\Background\Color) {
         // p:bgPr
         $objWriter->startElement('p:bgPr');
         // a:solidFill
         $objWriter->startElement('a:solidFill');
         // a:srgbClr
         $objWriter->startElement('a:srgbClr');
         $objWriter->writeAttribute('val', $oBackground->getColor()->getRGB());
         $objWriter->endElement();
         // > a:solidFill
         $objWriter->endElement();
         // p:bgPr/a:effectLst
         $objWriter->writeElement('a:effectLst');
         // > p:bgPr
         $objWriter->endElement();
     }
     if ($oBackground instanceof Slide\Background\Image) {
         // p:bgPr
         $objWriter->startElement('p:bgPr');
         // a:blipFill
         $objWriter->startElement('a:blipFill');
         // a:blip
         $objWriter->startElement('a:blip');
         $objWriter->writeAttribute('r:embed', $oBackground->relationId);
         // > a:blipFill
         $objWriter->endElement();
         // a:stretch
         $objWriter->startElement('a:stretch');
         // a:fillRect
         $objWriter->writeElement('a:fillRect');
         // > a:stretch
         $objWriter->endElement();
         // > a:blipFill
         $objWriter->endElement();
         // > p:bgPr
         $objWriter->endElement();
     }
     /**
      * @link : http://www.officeopenxml.com/prSlide-background.php
      */
     if ($oBackground instanceof Slide\Background\SchemeColor) {
         // p:bgRef
         $objWriter->startElement('p:bgRef');
         $objWriter->writeAttribute('idx', '1001');
         // a:schemeClr
         $objWriter->startElement('a:schemeClr');
         $objWriter->writeAttribute('val', $oBackground->getSchemeColor()->getValue());
         $objWriter->endElement();
         // > p:bgRef
         $objWriter->endElement();
     }
     // > p:bg
     $objWriter->endElement();
 }
 /**
  * Write shape
  *
  * @link http://www.datypic.com/sc/ooxml/t-a_CT_ShapeProperties.html
  * @param \PhpOffice\Common\XMLWriter $xmlWriter
  * @param bool $line
  * @return void
  */
 private function writeShape(XMLWriter $xmlWriter, $line = false)
 {
     $xmlWriter->startElement('c:spPr');
     $xmlWriter->startElement('a:ln');
     if ($line === true) {
         $xmlWriter->writeElement('a:solidFill');
     } else {
         $xmlWriter->writeElement('a:noFill');
     }
     $xmlWriter->endElement();
     // a:ln
     $xmlWriter->endElement();
     // c:spPr
 }