getXmlWriter(); $element = $this->getElement(); if (!$element instanceof \PhpOffice\PhpWord\Element\Field) { return; } $instruction = ' ' . $element->getType() . ' '; if ($element->getText() != null) { $instruction .= '"' . $element->getText() . '" '; } $properties = $element->getProperties(); foreach ($properties as $propkey => $propval) { switch ($propkey) { case 'format': $instruction .= '\* ' . $propval . ' '; break; case 'numformat': $instruction .= '\# ' . $propval . ' '; break; case 'dateformat': $instruction .= '\@ "' . $propval . '" '; break; } } $options = $element->getOptions(); foreach ($options as $option) { switch ($option) { case 'PreserveFormat': $instruction .= '\* MERGEFORMAT '; break; case 'LunarCalendar': $instruction .= '\h '; break; case 'SakaEraCalendar': $instruction .= '\s '; break; case 'LastUsedFormat': $instruction .= '\l '; break; case 'Bold': $instruction .= '\b '; break; case 'Italic': $instruction .= '\i '; break; default: $instruction .= $option .' '; } } $this->startElementP(); $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:fldChar'); $xmlWriter->writeAttribute('w:fldCharType', 'begin'); $xmlWriter->endElement(); // w:fldChar $xmlWriter->endElement(); // w:r $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:instrText'); $xmlWriter->writeAttribute('xml:space', 'preserve'); $xmlWriter->text($instruction); $xmlWriter->endElement(); // w:instrText $xmlWriter->endElement(); // w:r $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:fldChar'); $xmlWriter->writeAttribute('w:fldCharType', 'separate'); $xmlWriter->endElement(); // w:fldChar $xmlWriter->endElement(); // w:r $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:rPr'); $xmlWriter->startElement('w:noProof'); $xmlWriter->endElement(); // w:noProof $xmlWriter->endElement(); // w:rPr $xmlWriter->writeElement('w:t', $element->getText() == null ? '1' : $element->getText()); $xmlWriter->endElement(); // w:r $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:fldChar'); $xmlWriter->writeAttribute('w:fldCharType', 'end'); $xmlWriter->endElement(); // w:fldChar $xmlWriter->endElement(); // w:r $this->endElementP(); // w:p } }