1717
1818namespace PhpOffice \PhpWord \Writer \Word2007 \Element ;
1919
20+ use PhpOffice \PhpWord \Element \ListItemRun as ListItemRunElement ;
2021use PhpOffice \PhpWord \Writer \Word2007 \Style \Paragraph as ParagraphStyleWriter ;
2122
2223/**
@@ -31,34 +32,56 @@ class ListItemRun extends AbstractElement
3132 */
3233 public function write ()
3334 {
34- $ xmlWriter = $ this ->getXmlWriter ();
3535 $ element = $ this ->getElement ();
36- if (!$ element instanceof \PhpOffice \PhpWord \Element \ListItemRun) {
36+
37+ if (!$ element instanceof ListItemRunElement) {
3738 return ;
3839 }
3940
41+ $ this ->writeParagraph ($ element );
42+ }
43+
44+ private function writeParagraph (ListItemRunElement $ element )
45+ {
46+ $ xmlWriter = $ this ->getXmlWriter ();
4047 $ xmlWriter ->startElement ('w:p ' );
4148
49+ $ this ->writeParagraphProperties ($ element );
50+
51+ $ containerWriter = new Container ($ xmlWriter , $ element );
52+ $ containerWriter ->write ();
53+
54+ $ xmlWriter ->endElement (); // w:p
55+ }
56+
57+ private function writeParagraphProperties (ListItemRunElement $ element )
58+ {
59+ $ xmlWriter = $ this ->getXmlWriter ();
4260 $ xmlWriter ->startElement ('w:pPr ' );
43- $ paragraphStyle = $ element -> getParagraphStyle ();
44- $ styleWriter = new ParagraphStyleWriter ($ xmlWriter , $ paragraphStyle );
61+
62+ $ styleWriter = new ParagraphStyleWriter ($ xmlWriter , $ element -> getParagraphStyle () );
4563 $ styleWriter ->setIsInline (true );
64+ $ styleWriter ->setWithoutPPR (true );
4665 $ styleWriter ->write ();
4766
48- $ xmlWriter ->startElement ('w:numPr ' );
49- $ xmlWriter ->startElement ('w:ilvl ' );
50- $ xmlWriter ->writeAttribute ('w:val ' , $ element ->getDepth ());
51- $ xmlWriter ->endElement (); // w:ilvl
52- $ xmlWriter ->startElement ('w:numId ' );
53- $ xmlWriter ->writeAttribute ('w:val ' , $ element ->getStyle ()->getNumId ());
54- $ xmlWriter ->endElement (); // w:numId
55- $ xmlWriter ->endElement (); // w:numPr
67+ $ this ->writeParagraphPropertiesNumbering ($ element );
5668
5769 $ xmlWriter ->endElement (); // w:pPr
70+ }
5871
59- $ containerWriter = new Container ($ xmlWriter , $ element );
60- $ containerWriter ->write ();
72+ private function writeParagraphPropertiesNumbering (ListItemRunElement $ element )
73+ {
74+ $ xmlWriter = $ this ->getXmlWriter ();
75+ $ xmlWriter ->startElement ('w:numPr ' );
6176
62- $ xmlWriter ->endElement (); // w:p
77+ $ xmlWriter ->writeElementBlock ('w:ilvl ' , array (
78+ 'w:val ' => $ element ->getDepth (),
79+ ));
80+
81+ $ xmlWriter ->writeElementBlock ('w:numId ' , array (
82+ 'w:val ' => $ element ->getStyle ()->getNumId (),
83+ ));
84+
85+ $ xmlWriter ->endElement (); // w:numPr
6386 }
6487}
0 commit comments