protected function writeShapeDrawing(XMLWriter $objWriter, ShapeDrawing\AbstractDrawingAdapter $shape, $shapeId)
{
// p:pic
$objWriter->startElement('p:pic');
// p:nvPicPr
$objWriter->startElement('p:nvPicPr');
// p:cNvPr
$objWriter->startElement('p:cNvPr');
$objWriter->writeAttribute('id', $shapeId);
$objWriter->writeAttribute('name', $shape->getName());
$objWriter->writeAttribute('descr', $shape->getDescription());
// a:hlinkClick
if ($shape->hasHyperlink()) {
$this->writeHyperlink($objWriter, $shape);
}
$objWriter->endElement();
// p:cNvPicPr
$objWriter->startElement('p:cNvPicPr');
// a:picLocks
$objWriter->startElement('a:picLocks');
$objWriter->writeAttribute('noChangeAspect', '1');
$objWriter->endElement();
$objWriter->endElement();
// p:nvPr
$objWriter->startElement('p:nvPr');
// PlaceHolder
if ($shape->isPlaceholder()) {
$objWriter->startElement('p:ph');
$objWriter->writeAttribute('type', $shape->getPlaceholder()->getType());
$objWriter->endElement();
}
/**
* @link : https://github.com/stefslon/exportToPPTX/blob/master/exportToPPTX.m#L2128
*/
if ($shape instanceof Media) {
// p:nvPr > a:videoFile
$objWriter->startElement('a:videoFile');
$objWriter->writeAttribute('r:link', $shape->relationId);
$objWriter->endElement();
// p:nvPr > p:extLst
$objWriter->startElement('p:extLst');
// p:nvPr > p:extLst > p:ext
$objWriter->startElement('p:ext');
$objWriter->writeAttribute('uri', '{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}');
// p:nvPr > p:extLst > p:ext > p14:media
$objWriter->startElement('p14:media');
$objWriter->writeAttribute('r:embed', $shape->relationId);
$objWriter->writeAttribute('xmlns:p14', 'http://schemas.microsoft.com/office/powerpoint/2010/main');
// p:nvPr > p:extLst > p:ext > ##p14:media
$objWriter->endElement();
// p:nvPr > p:extLst > ##p:ext
$objWriter->endElement();
// p:nvPr > ##p:extLst
$objWriter->endElement();
}
// ##p:nvPr
$objWriter->endElement();
$objWriter->endElement();
// p:blipFill
$objWriter->startElement('p:blipFill');
// a:blip
$objWriter->startElement('a:blip');
$objWriter->writeAttribute('r:embed', $shape->relationId);
$objWriter->endElement();
// a:stretch
$objWriter->startElement('a:stretch');
$objWriter->writeElement('a:fillRect', null);
$objWriter->endElement();
$objWriter->endElement();
// p:spPr
$objWriter->startElement('p:spPr');
// a:xfrm
$objWriter->startElement('a:xfrm');
$objWriter->writeAttributeIf($shape->getRotation() != 0, 'rot', CommonDrawing::degreesToAngle($shape->getRotation()));
// a:off
$objWriter->startElement('a:off');
$objWriter->writeAttribute('x', CommonDrawing::pixelsToEmu($shape->getOffsetX()));
$objWriter->writeAttribute('y', CommonDrawing::pixelsToEmu($shape->getOffsetY()));
$objWriter->endElement();
// a:ext
$objWriter->startElement('a:ext');
$objWriter->writeAttribute('cx', CommonDrawing::pixelsToEmu($shape->getWidth()));
$objWriter->writeAttribute('cy', CommonDrawing::pixelsToEmu($shape->getHeight()));
$objWriter->endElement();
$objWriter->endElement();
// a:prstGeom
$objWriter->startElement('a:prstGeom');
$objWriter->writeAttribute('prst', 'rect');
// a:avLst
$objWriter->writeElement('a:avLst', null);
$objWriter->endElement();
$this->writeBorder($objWriter, $shape->getBorder(), '');
$this->writeShadow($objWriter, $shape->getShadow());
$objWriter->endElement();
$objWriter->endElement();
}