Я использую PHPWord для загрузки шаблона docx и заменяю теги наподобие {test}
. Это работает отлично.
Но я хочу заменить значение html-кодом. Непосредственно заменить его на шаблон невозможно. Насколько я знаю, теперь есть способ сделать это с помощью PHPWord.
Я посмотрел на htmltodocx. Но он тоже не работает, возможно ли преобразовать мир кода, например, <p>Test<b>test</b><br>test</p>
в рабочую разметку doc? Мне нужен только базовый код, без стиля. но Linebreaks должны работать.
Вот ссылка на github. Он отлично работает Html-Docx-js .
И это демо также доступно здесь .
Другим вариантом является эта ссылка .
$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>"); $templateProcessor->setValue('test', $toOpenXML);
Другие ответы предлагают H2OXML, который поддерживает только
Полужирный, курсивный и подчеркнутый текст
Запущенные списки
Как описано в их документах, и их последнее обновление было в 2012 году.
Я провел некоторое исследование и нашел довольно приятное решение:
$var = 'Some text'; $xml = "<w:p><w:r><w:rPr><w:strike/></w:rPr><w:t>". $var."</w:t></w:r></w:p>"; $templateProcessor->setValue('param_1', $xml);
Вышеприведенный пример показывает, каким будет текст с набросками. Вместо «w: strike» вы можете использовать «w: i» для курсива или «w: b» жирным шрифтом и т. Д. Не уверен, работает ли он на всех тегах или нет.
Спасибо за ваш ответ, Варун.
Простая PHP-библиотека H2OXML работает для меня https://h2openxml.codeplex.com/
$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>"); $templateProcessor->setValue('test', $toOpenXML);
Теперь я могу преобразовать html-код, чтобы вставить его с помощью PHPWord.