@@ -193,6 +193,7 @@ protected static function parseNode($node, $element, $styles = array(), $data =
193193 'img ' => array ('Image ' , $ node , $ element , $ styles , null , null , null ),
194194 'br ' => array ('LineBreak ' , null , $ element , $ styles , null , null , null ),
195195 'a ' => array ('Link ' , $ node , $ element , $ styles , null , null , null ),
196+ 'input ' => array ('Input ' , $ node , $ element , $ styles , null , null , null ),
196197 'hr ' => array ('HorizRule ' , $ node , $ element , $ styles , null , null , null ),
197198 );
198199
@@ -266,6 +267,30 @@ protected static function parseParagraph($node, $element, &$styles)
266267 return $ newElement ;
267268 }
268269
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+
269294 /**
270295 * Parse heading node
271296 *
0 commit comments