PhpOffice\PhpPresentation\Writer\PowerPoint2007\PptSlides::writeSlide PHP Method

writeSlide() public method

Write slide to XML format
public writeSlide ( Slide $pSlide ) : string
$pSlide PhpOffice\PhpPresentation\Slide
return string XML Output
    public function writeSlide(Slide $pSlide)
    {
        // Create XML writer
        $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
        // XML header
        $objWriter->startDocument('1.0', 'UTF-8', 'yes');
        // p:sld
        $objWriter->startElement('p:sld');
        $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
        $objWriter->writeAttribute('xmlns:r', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
        $objWriter->writeAttribute('xmlns:p', 'http://schemas.openxmlformats.org/presentationml/2006/main');
        $objWriter->writeAttributeIf(!$pSlide->isVisible(), 'show', 0);
        // p:sld/p:cSld
        $objWriter->startElement('p:cSld');
        // Background
        if ($pSlide->getBackground() instanceof Slide\AbstractBackground) {
            $oBackground = $pSlide->getBackground();
            // p:bg
            $objWriter->startElement('p:bg');
            // p:bgPr
            $objWriter->startElement('p:bgPr');
            if ($oBackground instanceof Slide\Background\Color) {
                // a:solidFill
                $objWriter->startElement('a:solidFill');
                $this->writeColor($objWriter, $oBackground->getColor());
                // > a:solidFill
                $objWriter->endElement();
            }
            if ($oBackground instanceof Slide\Background\Image) {
                // 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();
            // > p:bg
            $objWriter->endElement();
        }
        // p:spTree
        $objWriter->startElement('p:spTree');
        // p:nvGrpSpPr
        $objWriter->startElement('p:nvGrpSpPr');
        // p:cNvPr
        $objWriter->startElement('p:cNvPr');
        $objWriter->writeAttribute('id', '1');
        $objWriter->writeAttribute('name', '');
        $objWriter->endElement();
        // p:cNvGrpSpPr
        $objWriter->writeElement('p:cNvGrpSpPr', null);
        // p:nvPr
        $objWriter->writeElement('p:nvPr', null);
        $objWriter->endElement();
        // p:grpSpPr
        $objWriter->startElement('p:grpSpPr');
        // a:xfrm
        $objWriter->startElement('a:xfrm');
        // a:off
        $objWriter->startElement('a:off');
        $objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($pSlide->getOffsetX()));
        $objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($pSlide->getOffsetY()));
        $objWriter->endElement();
        // a:off
        // a:ext
        $objWriter->startElement('a:ext');
        $objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu($pSlide->getExtentX()));
        $objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu($pSlide->getExtentY()));
        $objWriter->endElement();
        // a:ext
        // a:chOff
        $objWriter->startElement('a:chOff');
        $objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($pSlide->getOffsetX()));
        $objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($pSlide->getOffsetY()));
        $objWriter->endElement();
        // a:chOff
        // a:chExt
        $objWriter->startElement('a:chExt');
        $objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu($pSlide->getExtentX()));
        $objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu($pSlide->getExtentY()));
        $objWriter->endElement();
        // a:chExt
        $objWriter->endElement();
        $objWriter->endElement();
        // Loop shapes
        $this->writeShapeCollection($objWriter, $pSlide->getShapeCollection());
        // TODO
        $objWriter->endElement();
        $objWriter->endElement();
        // p:clrMapOvr
        $objWriter->startElement('p:clrMapOvr');
        // p:clrMapOvr\a:masterClrMapping
        $objWriter->writeElement('a:masterClrMapping', null);
        // ##p:clrMapOvr
        $objWriter->endElement();
        $this->writeSlideTransition($objWriter, $pSlide->getTransition());
        $this->writeSlideAnimations($objWriter, $pSlide);
        $objWriter->endElement();
        // Return
        return $objWriter->getData();
    }