I want to embed HTML snippets, and want to apply the document styles to it. However, it seems I can only apply styles to specific selectors, and the styles don't even cascade down to the child elements.
For example, I would expect this to at least style my header and table:
<?php require_once '../../../classes/CreateDocx.inc'; $docx = new CreateDocx(); $html = '<h1 style="color: #b70000">An embedHTML() example</h1>'; $html .= '<p>We draw a table with border and rawspans and colspans:</p>'; $html .= '<table border="1" style="border-collapse: collapse" width="600"> <tbody> <tr width="600"> <td style="background-color: yellow">1_1</td> <td rowspan="3" colspan="2">1_2</td> </tr> <tr width="600"> <td>Some random text.</td> </tr> <tr width="600"> <td> <ul> <li>One</li> <li>Two <b>and a half</b></li> </ul> </td> </tr> <tr width="600"> <td>3_2</td> <td>3_3</td> <td>3_3</td> </tr> </tbody> </table>'; $docx->createParagraphStyle('myStyle', array( 'font' => 'Verdana', 'fontSize' => 20, 'bold' => 'on', 'smallCaps' => 'on', )); $docx->embedHTML($html, array( 'strictWordStyles' => true, 'wordStyles' => array( 'h1' => 'myStyle', 'table' => 'myStyle', ), )); $docx->createDocx('example_embedHTML_1');
But it doesn't. It does cancel the default styles, but it will put everything in Calibri, 11. I want my document to have default styles for body text, as well as tables. How can I make sure it applies correctly to the HTML I import? And I don't want to list all imported tags, classes and IDs explicitly; there are thousands of snippets to import, and although they're all fairly consistent, the chance of missing something is too great. We really need to be able to apply a style "globally".