xmlWriter = $xmlWriter; $this->element = $element; $this->withoutP = $withoutP; } /** * Get XML Writer * * @return \PhpOffice\Common\XMLWriter */ protected function getXmlWriter() { return $this->xmlWriter; } /** * Get element * * @return \PhpOffice\PhpWord\Element\AbstractElement */ protected function getElement() { return $this->element; } /** * Start w:p DOM element. * * @uses \PhpOffice\PhpWord\Writer\Word2007\Element\PageBreak::write() * @return void */ protected function startElementP() { if (!$this->withoutP) { $this->xmlWriter->startElement('w:p'); // Paragraph style if (method_exists($this->element, 'getParagraphStyle')) { $this->writeParagraphStyle(); } } } /** * End w:p DOM element. * * @return void */ protected function endElementP() { if (!$this->withoutP) { $this->xmlWriter->endElement(); // w:p } } /** * Write ending. * * @return void */ protected function writeParagraphStyle() { $this->writeTextStyle('Paragraph'); } /** * Write ending. * * @return void */ protected function writeFontStyle() { $this->writeTextStyle('Font'); } /** * Write text style. * * @param string $styleType Font|Paragraph * @return void */ private function writeTextStyle($styleType) { $method = "get{$styleType}Style"; $class = "PhpOffice\\PhpWord\\Writer\\Word2007\\Style\\{$styleType}"; $styleObject = $this->element->$method(); $styleWriter = new $class($this->xmlWriter, $styleObject); if (method_exists($styleWriter, 'setIsInline')) { $styleWriter->setIsInline(true); } /** @var \PhpOffice\PhpWord\Writer\Word2007\Style\AbstractStyle $styleWriter */ $styleWriter->write(); } /** * Convert text to valid format * * @param string $text * @return string */ protected function getText($text) { return CommonText::controlCharacterPHP2OOXML($text); } }