/** * Write list item element */ public function write() { $xmlWriter = $this->getXmlWriter(); $element = $this->getElement(); if (!$element instanceof \PhpOffice\PhpWord\Element\ListItemRun) { return; } $xmlWriter->startElement('w:p'); $xmlWriter->startElement('w:pPr'); $paragraphStyle = $element->getParagraphStyle(); $styleWriter = new ParagraphStyleWriter($xmlWriter, $paragraphStyle); $styleWriter->setIsInline(true); $styleWriter->write(); $xmlWriter->startElement('w:numPr'); $xmlWriter->startElement('w:ilvl'); $xmlWriter->writeAttribute('w:val', $element->getDepth()); $xmlWriter->endElement(); // w:ilvl $xmlWriter->startElement('w:numId'); $xmlWriter->writeAttribute('w:val', $element->getStyle()->getNumId()); $xmlWriter->endElement(); // w:numId $xmlWriter->endElement(); // w:numPr $xmlWriter->endElement(); // w:pPr $containerWriter = new Container($xmlWriter, $element); $containerWriter->write(); $xmlWriter->endElement(); // w:p }
/** * Write text break element */ public function write() { if (!$this->withoutP) { $hasStyle = false; $fontStyle = null; $paragraphStyle = null; if (!is_null($this->element)) { $fontStyle = $this->element->getFontStyle(); $paragraphStyle = $this->element->getParagraphStyle(); $hasStyle = !is_null($fontStyle) || !is_null($paragraphStyle); } if ($hasStyle) { $styleWriter = new ParagraphStyleWriter($this->xmlWriter, $paragraphStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:p'); $styleWriter->write(); if (!is_null($fontStyle)) { $styleWriter = new FontStyleWriter($this->xmlWriter, $fontStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:pPr'); $styleWriter->write(); $this->xmlWriter->endElement(); // w:pPr } $this->xmlWriter->endElement(); // w:p } else { $this->xmlWriter->writeElement('w:p'); } } else { $this->xmlWriter->writeElement('w:br'); } }
/** * Write link element */ public function write() { $rId = $this->element->getRelationId() + ($this->element->isInSection() ? 6 : 0); $fontStyle = $this->element->getFontStyle(); $paragraphStyle = $this->element->getParagraphStyle(); if (!$this->withoutP) { $styleWriter = new ParagraphStyleWriter($this->xmlWriter, $paragraphStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:p'); $styleWriter->write(); } $styleWriter = new FontStyleWriter($this->xmlWriter, $fontStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:hyperlink'); $this->xmlWriter->writeAttribute('r:id', 'rId' . $rId); $this->xmlWriter->writeAttribute('w:history', '1'); $this->xmlWriter->startElement('w:r'); $styleWriter->write(); $this->xmlWriter->startElement('w:t'); $this->xmlWriter->writeAttribute('xml:space', 'preserve'); $this->xmlWriter->writeRaw($this->element->getText()); $this->xmlWriter->endElement(); // w:t $this->xmlWriter->endElement(); // w:r $this->xmlWriter->endElement(); // w:hyperlink if (!$this->withoutP) { $this->xmlWriter->endElement(); // w:p } }
/** * Write list item element. * * @return void */ public function write() { $xmlWriter = $this->getXmlWriter(); $element = $this->getElement(); if (!$element instanceof \PhpOffice\PhpWord\Element\ListItem) { return; } $textObject = $element->getTextObject(); $styleWriter = new ParagraphStyleWriter($xmlWriter, $textObject->getParagraphStyle()); $styleWriter->setWithoutPPR(true); $styleWriter->setIsInline(true); $xmlWriter->startElement('w:p'); $xmlWriter->startElement('w:pPr'); $styleWriter->write(); $xmlWriter->startElement('w:numPr'); $xmlWriter->startElement('w:ilvl'); $xmlWriter->writeAttribute('w:val', $element->getDepth()); $xmlWriter->endElement(); // w:ilvl $xmlWriter->startElement('w:numId'); $xmlWriter->writeAttribute('w:val', $element->getStyle()->getNumId()); $xmlWriter->endElement(); // w:numId $xmlWriter->endElement(); // w:numPr $xmlWriter->endElement(); // w:pPr $elementWriter = new Text($xmlWriter, $textObject, true); $elementWriter->write(); $xmlWriter->endElement(); // w:p }
/** * Write list item element */ public function write() { $textObject = $this->element->getTextObject(); $depth = $this->element->getDepth(); $numId = $this->element->getStyle()->getNumId(); $paragraphStyle = $textObject->getParagraphStyle(); $styleWriter = new ParagraphStyleWriter($this->xmlWriter, $paragraphStyle); $styleWriter->setWithoutPPR(true); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:p'); $this->xmlWriter->startElement('w:pPr'); $styleWriter->write(); $this->xmlWriter->startElement('w:numPr'); $this->xmlWriter->startElement('w:ilvl'); $this->xmlWriter->writeAttribute('w:val', $depth); $this->xmlWriter->endElement(); // w:ilvl $this->xmlWriter->startElement('w:numId'); $this->xmlWriter->writeAttribute('w:val', $numId); $this->xmlWriter->endElement(); // w:numId $this->xmlWriter->endElement(); // w:numPr $this->xmlWriter->endElement(); // w:pPr $elementWriter = new ElementWriter($this->xmlWriter, $this->parentWriter, $textObject, true); $elementWriter->write(); $this->xmlWriter->endElement(); // w:p }
/** * Write text element */ public function write() { $fontStyle = $this->element->getFontStyle(); $paragraphStyle = $this->element->getParagraphStyle(); $text = htmlspecialchars($this->element->getText()); $text = String::controlCharacterPHP2OOXML($text); if (!$this->withoutP) { $styleWriter = new ParagraphStyleWriter($this->xmlWriter, $paragraphStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:p'); $styleWriter->write(); } $styleWriter = new FontStyleWriter($this->xmlWriter, $fontStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:r'); $styleWriter->write(); $this->xmlWriter->startElement('w:t'); $this->xmlWriter->writeAttribute('xml:space', 'preserve'); $this->xmlWriter->writeRaw($text); $this->xmlWriter->endElement(); $this->xmlWriter->endElement(); // w:r if (!$this->withoutP) { $this->xmlWriter->endElement(); // w:p } }
/** * Write preserve text element */ public function write() { $fontStyle = $this->element->getFontStyle(); $paragraphStyle = $this->element->getParagraphStyle(); $texts = $this->element->getText(); if (!is_array($texts)) { $texts = array($texts); } $styleWriter = new ParagraphStyleWriter($this->xmlWriter, $paragraphStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:p'); $styleWriter->write(); foreach ($texts as $text) { if (substr($text, 0, 1) == '{') { $text = substr($text, 1, -1); $styleWriter = new FontStyleWriter($this->xmlWriter, $fontStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:r'); $this->xmlWriter->startElement('w:fldChar'); $this->xmlWriter->writeAttribute('w:fldCharType', 'begin'); $this->xmlWriter->endElement(); $this->xmlWriter->endElement(); $this->xmlWriter->startElement('w:r'); $styleWriter->write(); $this->xmlWriter->startElement('w:instrText'); $this->xmlWriter->writeAttribute('xml:space', 'preserve'); $this->xmlWriter->writeRaw($text); $this->xmlWriter->endElement(); $this->xmlWriter->endElement(); $this->xmlWriter->startElement('w:r'); $this->xmlWriter->startElement('w:fldChar'); $this->xmlWriter->writeAttribute('w:fldCharType', 'separate'); $this->xmlWriter->endElement(); $this->xmlWriter->endElement(); $this->xmlWriter->startElement('w:r'); $this->xmlWriter->startElement('w:fldChar'); $this->xmlWriter->writeAttribute('w:fldCharType', 'end'); $this->xmlWriter->endElement(); $this->xmlWriter->endElement(); } else { $text = htmlspecialchars($text); $text = String::controlCharacterPHP2OOXML($text); $styleWriter = new FontStyleWriter($this->xmlWriter, $fontStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:r'); $styleWriter->write(); $this->xmlWriter->startElement('w:t'); $this->xmlWriter->writeAttribute('xml:space', 'preserve'); $this->xmlWriter->writeRaw($text); $this->xmlWriter->endElement(); $this->xmlWriter->endElement(); } } $this->xmlWriter->endElement(); // p }
/** * Write textrun element */ public function write() { $paragraphStyle = $this->element->getParagraphStyle(); $styleWriter = new ParagraphStyleWriter($this->xmlWriter, $paragraphStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:p'); $styleWriter->write(); $this->parentWriter->writeContainerElements($this->xmlWriter, $this->element); $this->xmlWriter->endElement(); // w:p }
/** * Write ending */ protected function writeParagraphStyle() { $xmlWriter = $this->getXmlWriter(); /** @var \PhpOffice\PhpWord\Element\Text $element Type hint */ $element = $this->getElement(); $paragraphStyle = $element->getParagraphStyle(); $styleWriter = new ParagraphStyleWriter($xmlWriter, $paragraphStyle); $styleWriter->setIsInline(true); $styleWriter->write(); }
/** * Write note item * * @param \PhpOffice\PhpWord\Shared\XMLWriter $xmlWriter * @param \PhpOffice\PhpWord\Element\Footnote|\PhpOffice\PhpWord\Element\Endnote $element */ protected function writeNote(XMLWriter $xmlWriter, $element) { $xmlWriter->startElement($this->elementNode); $xmlWriter->writeAttribute('w:id', $element->getRelationId()); $xmlWriter->startElement('w:p'); // Paragraph style $styleWriter = new ParagraphStyleWriter($xmlWriter, $element->getParagraphStyle()); $styleWriter->setIsInline(true); $styleWriter->write(); // Reference symbol $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:rPr'); $xmlWriter->startElement('w:rStyle'); $xmlWriter->writeAttribute('w:val', $this->refStyle); $xmlWriter->endElement(); // w:rStyle $xmlWriter->endElement(); // w:rPr $xmlWriter->writeElement($this->refNode); $xmlWriter->endElement(); // w:r // Empty space after refence symbol $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:t'); $xmlWriter->writeAttribute('xml:space', 'preserve'); $xmlWriter->writeRaw(' '); $xmlWriter->endElement(); // w:t $xmlWriter->endElement(); // w:r $this->writeContainerElements($xmlWriter, $element); $xmlWriter->endElement(); // w:p $xmlWriter->endElement(); // $this->elementNode }
/** * Write element */ public function write() { $name = htmlspecialchars($this->element->getName()); $name = String::controlCharacterPHP2OOXML($name); $text = htmlspecialchars($this->element->getText()); $text = String::controlCharacterPHP2OOXML($text); $fontStyle = $this->element->getFontStyle(); $paragraphStyle = $this->element->getParagraphStyle(); if (!$this->withoutP) { $styleWriter = new ParagraphStyleWriter($this->xmlWriter, $paragraphStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:p'); $styleWriter->write(); } $this->xmlWriter->startElement('w:r'); $this->xmlWriter->startElement('w:fldChar'); $this->xmlWriter->writeAttribute('w:fldCharType', 'begin'); $this->xmlWriter->startElement('w:ffData'); $this->xmlWriter->startElement('w:name'); $this->xmlWriter->writeAttribute('w:val', $name); $this->xmlWriter->endElement(); //w:name $this->xmlWriter->writeAttribute('w:enabled', ''); $this->xmlWriter->startElement('w:calcOnExit'); $this->xmlWriter->writeAttribute('w:val', '0'); $this->xmlWriter->endElement(); //w:calcOnExit $this->xmlWriter->startElement('w:checkBox'); $this->xmlWriter->writeAttribute('w:sizeAuto', ''); $this->xmlWriter->startElement('w:default'); $this->xmlWriter->writeAttribute('w:val', 0); $this->xmlWriter->endElement(); //w:default $this->xmlWriter->endElement(); //w:checkBox $this->xmlWriter->endElement(); // w:ffData $this->xmlWriter->endElement(); // w:fldChar $this->xmlWriter->endElement(); // w:r $this->xmlWriter->startElement('w:r'); $this->xmlWriter->startElement('w:instrText'); $this->xmlWriter->writeAttribute('xml:space', 'preserve'); $this->xmlWriter->writeRaw(' FORMCHECKBOX '); $this->xmlWriter->endElement(); // w:instrText $this->xmlWriter->endElement(); // w:r $this->xmlWriter->startElement('w:r'); $this->xmlWriter->startElement('w:fldChar'); $this->xmlWriter->writeAttribute('w:fldCharType', 'seperate'); $this->xmlWriter->endElement(); // w:fldChar $this->xmlWriter->endElement(); // w:r $this->xmlWriter->startElement('w:r'); $this->xmlWriter->startElement('w:fldChar'); $this->xmlWriter->writeAttribute('w:fldCharType', 'end'); $this->xmlWriter->endElement(); // w:fldChar $this->xmlWriter->endElement(); // w:r $styleWriter = new FontStyleWriter($this->xmlWriter, $fontStyle); $styleWriter->setIsInline(true); $this->xmlWriter->startElement('w:r'); $styleWriter->write(); $this->xmlWriter->startElement('w:t'); $this->xmlWriter->writeAttribute('xml:space', 'preserve'); $this->xmlWriter->writeRaw($text); $this->xmlWriter->endElement(); // w:t $this->xmlWriter->endElement(); // w:r if (!$this->withoutP) { $this->xmlWriter->endElement(); // w:p } }