/** * Write title element */ public function write() { $anchor = $this->element->getAnchor(); $bookmarkId = $this->element->getBookmarkId(); $style = $this->element->getStyle(); $text = htmlspecialchars($this->element->getText()); $text = String::controlCharacterPHP2OOXML($text); $this->xmlWriter->startElement('w:p'); if (!empty($style)) { $this->xmlWriter->startElement('w:pPr'); $this->xmlWriter->startElement('w:pStyle'); $this->xmlWriter->writeAttribute('w:val', $style); $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(); $this->xmlWriter->startElement('w:bookmarkStart'); $this->xmlWriter->writeAttribute('w:id', $bookmarkId); $this->xmlWriter->writeAttribute('w:name', $anchor); $this->xmlWriter->endElement(); $this->xmlWriter->startElement('w:r'); $this->xmlWriter->startElement('w:t'); $this->xmlWriter->writeRaw($text); $this->xmlWriter->endElement(); $this->xmlWriter->endElement(); $this->xmlWriter->startElement('w:bookmarkEnd'); $this->xmlWriter->writeAttribute('w:id', $bookmarkId); $this->xmlWriter->endElement(); $this->xmlWriter->endElement(); }
/** * 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 }
/** * Convert text to valid format * * @param string $text * @return string */ protected function getText($text) { return String::controlCharacterPHP2OOXML($text); }
/** * Convert text to valid format * * @param string $text * @return string */ protected function getText($text) { return String::controlCharacterPHP2OOXML(htmlspecialchars($text)); }
/** * PHP to OOXML control character */ public function testControlCharacterPHP2OOXML() { $this->assertEquals('', String::controlCharacterPHP2OOXML('')); $this->assertEquals('_x0008_', String::controlCharacterPHP2OOXML(chr(0x8))); }
/** * 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 } }