/** * Add a OLE-Object Element * * @param string $src * @param mixed $style * @return PHPWord_Section_Object */ public function addObject($src, $style = null) { require_once __DIR__ . '/Section/Object.php'; require_once __DIR__ . '/Media.php'; $object = new Document_Word_Writer_Section_Object($src, $style); if (!is_null($object->getSource())) { $inf = pathinfo($src); $ext = $inf['extension']; if (strlen($ext) == 4 && strtolower(substr($ext, -1)) == 'x') { $ext = substr($ext, 0, -1); } $iconSrc = __DIR__ . '/_staticDocParts/'; if (!file_exists($iconSrc . '_' . $ext . '.png')) { $iconSrc = $iconSrc . '_default.png'; } else { $iconSrc .= '_' . $ext . '.png'; } $rIDimg = Document_Word_Writer_Media::addSectionMediaElement($iconSrc, 'image'); $data = Document_Word_Writer_Media::addSectionMediaElement($src, 'oleObject'); $rID = $data[0]; $objectId = $data[1]; $object->setRelationId($rID); $object->setObjectId($objectId); $object->setImageRelationId($rIDimg); $this->_elementCollection[] = $object; return $object; } else { trigger_error('Source does not exist or unsupported object type.'); } }
protected function _writeObject(Document_Word_Writer_Shared_XMLWriter $objWriter = null, Document_Word_Writer_Section_Object $object) { $rIdObject = $object->getRelationId(); $rIdImage = $object->getImageRelationId(); $shapeId = md5($rIdObject . '_' . $rIdImage); $objectId = $object->getObjectId(); $style = $object->getStyle(); $width = $style->getWidth(); $height = $style->getHeight(); $align = $style->getAlign(); $objWriter->startElement('w:p'); if (!is_null($align)) { $objWriter->startElement('w:pPr'); $objWriter->startElement('w:jc'); $objWriter->writeAttribute('w:val', $align); $objWriter->endElement(); $objWriter->endElement(); } $objWriter->startElement('w:r'); $objWriter->startElement('w:object'); $objWriter->writeAttribute('w:dxaOrig', '249'); $objWriter->writeAttribute('w:dyaOrig', '160'); $objWriter->startElement('v:shape'); $objWriter->writeAttribute('id', $shapeId); $objWriter->writeAttribute('type', '#_x0000_t75'); $objWriter->writeAttribute('style', 'width:104px;height:67px'); $objWriter->writeAttribute('o:ole', ''); $objWriter->startElement('v:imagedata'); $objWriter->writeAttribute('r:id', 'rId' . $rIdImage); $objWriter->writeAttribute('o:title', ''); $objWriter->endElement(); $objWriter->endElement(); $objWriter->startElement('o:OLEObject'); $objWriter->writeAttribute('Type', 'Embed'); $objWriter->writeAttribute('ProgID', 'Package'); $objWriter->writeAttribute('ShapeID', $shapeId); $objWriter->writeAttribute('DrawAspect', 'Icon'); $objWriter->writeAttribute('ObjectID', '_' . $objectId); $objWriter->writeAttribute('r:id', 'rId' . $rIdObject); $objWriter->endElement(); $objWriter->endElement(); $objWriter->endElement(); // w:r $objWriter->endElement(); // w:p }