Преобразование HTML-кода в doc с помощью PHP и PHPWord

Я использую 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.