@@ -193,6 +193,7 @@ protected static function parseNode($node, $element, $styles = array(), $data =
193
193
'img ' => array ('Image ' , $ node , $ element , $ styles , null , null , null ),
194
194
'br ' => array ('LineBreak ' , null , $ element , $ styles , null , null , null ),
195
195
'a ' => array ('Link ' , $ node , $ element , $ styles , null , null , null ),
196
+ 'input ' => array ('Input ' , $ node , $ element , $ styles , null , null , null ),
196
197
'hr ' => array ('HorizRule ' , $ node , $ element , $ styles , null , null , null ),
197
198
);
198
199
@@ -266,6 +267,30 @@ protected static function parseParagraph($node, $element, &$styles)
266
267
return $ newElement ;
267
268
}
268
269
270
+ /**
271
+ * Parse input node
272
+ *
273
+ * @param \DOMNode $node
274
+ * @param \PhpOffice\PhpWord\Element\AbstractContainer $element
275
+ * @param array &$styles
276
+ */
277
+ protected static function parseInput ($ node , $ element , &$ styles )
278
+ {
279
+ $ attributes = $ node ->attributes ;
280
+ if (null === $ attributes ->getNamedItem ('type ' )) {
281
+ return ;
282
+ }
283
+
284
+ $ inputType = $ attributes ->getNamedItem ('type ' )->value ;
285
+ switch ($ inputType ) {
286
+ case 'checkbox ' :
287
+ $ checked = ($ checked = $ attributes ->getNamedItem ('checked ' )) && $ checked ->value === 'true ' ? true : false ;
288
+ $ textrun = $ element ->addTextRun ($ styles ['paragraph ' ]);
289
+ $ textrun ->addFormField ('checkbox ' )->setValue ($ checked );
290
+ break ;
291
+ }
292
+ }
293
+
269
294
/**
270
295
* Parse heading node
271
296
*
0 commit comments