getXmlWriter(); $isStyleName = $this->isInline && !is_null($this->style) && is_string($this->style); if ($isStyleName) { if (!$this->withoutPPR) { $xmlWriter->startElement('w:pPr'); } $xmlWriter->startElement('w:pStyle'); $xmlWriter->writeAttribute('w:val', $this->style); $xmlWriter->endElement(); if (!$this->withoutPPR) { $xmlWriter->endElement(); } } else { $this->writeStyle(); } } /** * Write full style */ private function writeStyle() { if (is_null($style = $this->getStyle())) { return; } $xmlWriter = $this->getXmlWriter(); if (!$this->withoutPPR) { $xmlWriter->startElement('w:pPr'); } // Style name $styleName = $style->getStyleName(); $xmlWriter->writeElementIf(!is_null($styleName), 'w:pStyle', 'w:val', $styleName); // Alignment $align = $style->getAlign(); $xmlWriter->writeElementIf(!is_null($align), 'w:jc', 'w:val', $align); // Pagination $xmlWriter->writeElementIf(!$style->hasWidowControl(), 'w:widowControl', 'w:val', '0'); $xmlWriter->writeElementIf($style->isKeepNext(), 'w:keepNext', 'w:val', '1'); $xmlWriter->writeElementIf($style->isKeepLines(), 'w:keepLines', 'w:val', '1'); $xmlWriter->writeElementIf($style->hasPageBreakBefore(), 'w:pageBreakBefore', 'w:val', '1'); // Indentation $indentation = $style->getIndentation(); if (!is_null($indentation)) { $styleWriter = new Indentation($xmlWriter, $indentation); $styleWriter->write(); } // Spacing $spacing = $style->getSpace(); if (!is_null($spacing)) { $styleWriter = new Spacing($xmlWriter, $spacing); $styleWriter->write(); } // Tabs $tabs = $style->getTabs(); if (!empty($tabs)) { $xmlWriter->startElement("w:tabs"); foreach ($tabs as $tab) { $styleWriter = new Tab($xmlWriter, $tab); $styleWriter->write(); } $xmlWriter->endElement(); } if (!$this->withoutPPR) { $xmlWriter->endElement(); // w:pPr } } /** * Set without w:pPr * * @param bool $value */ public function setWithoutPPR($value) { $this->withoutPPR = $value; } /** * Set is inline * * @param bool $value */ public function setIsInline($value) { $this->isInline = $value; } }