Exemplo n.º 1
0
 /**
  * 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
 }
Exemplo n.º 2
0
 /**
  * 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');
     }
 }
Exemplo n.º 3
0
 /**
  * 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
     }
 }
Exemplo n.º 4
0
 /**
  * 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
 }
Exemplo n.º 5
0
 /**
  * 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
 }
Exemplo n.º 6
0
 /**
  * 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
     }
 }
Exemplo n.º 7
0
 /**
  * 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
 }
Exemplo n.º 8
0
 /**
  * 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
 }
Exemplo n.º 9
0
 /**
  * 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();
 }
Exemplo n.º 10
0
 /**
  * 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
 }
Exemplo n.º 11
0
 /**
  * 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
     }
 }