startDocument('1.0', 'UTF-8', 'yes'); // p:presentation $objWriter->startElement('p:presentation'); $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main'); $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'); $objWriter->writeAttribute('xmlns:p', 'http://schemas.openxmlformats.org/presentationml/2006/main'); // p:sldMasterIdLst $objWriter->startElement('p:sldMasterIdLst'); // Add slide masters $relationId = 1; $slideMasterId = 2147483648; $countMasterSlides = \count($this->oPresentation->getAllMasterSlides()); for ($inc = 1; $inc <= $countMasterSlides; ++$inc) { // p:sldMasterId $objWriter->startElement('p:sldMasterId'); $objWriter->writeAttribute('id', $slideMasterId); $objWriter->writeAttribute('r:id', 'rId' . $relationId++); $objWriter->endElement(); // Increase identifier $slideMasterId += 12; } $objWriter->endElement(); // theme ++$relationId; // p:sldIdLst $objWriter->startElement('p:sldIdLst'); // Write slides $slideCount = $this->oPresentation->getSlideCount(); for ($i = 0; $i < $slideCount; ++$i) { // p:sldId $objWriter->startElement('p:sldId'); $objWriter->writeAttribute('id', ($i + 256)); $objWriter->writeAttribute('r:id', 'rId' . ($i + $relationId)); $objWriter->endElement(); } $objWriter->endElement(); // p:sldSz $objWriter->startElement('p:sldSz'); $objWriter->writeAttribute('cx', $this->oPresentation->getLayout()->getCX()); $objWriter->writeAttribute('cy', $this->oPresentation->getLayout()->getCY()); if (DocumentLayout::LAYOUT_CUSTOM != $this->oPresentation->getLayout()->getDocumentLayout()) { $objWriter->writeAttribute('type', $this->oPresentation->getLayout()->getDocumentLayout()); } $objWriter->endElement(); // p:notesSz $objWriter->startElement('p:notesSz'); $objWriter->writeAttribute('cx', '6858000'); $objWriter->writeAttribute('cy', '9144000'); $objWriter->endElement(); $objWriter->writeRaw(' '); $objWriter->endElement(); $this->oZip->addFromString('ppt/presentation.xml', $objWriter->getData()); // Return return $this->oZip; } }