我正在使用PHPWord加载一个docx模板并替换标签{test}。这工作完全正常

但是我想用html代码替换一个值。直接将其替换为模板是不可能的。据我所知,现在有办法使用PHPWord。

我看着htmltodocx。但是它的接缝也不会奏效,是否可以转换代码的安全,比如<p>Test<b>test</b><br>test</p>工作文档标记?我只需要基本的代码,没有样式。但是Linebreaks必须工作。

分享改善这个问题
 

这是github的链接。它工作正常Html-Docx-js

这也是演示也在这里

其他选项是这个链接

 $toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>");
    $templateProcessor->setValue('test', $toOpenXML);
分享改善这个答案
 
   
感谢您的答案,它的效果很好,但是,我只想要我的小mc值的代码。 -  亚历山大·福克斯 5月6日15日14时44分
   
我可以进一步处理这个文档代码。 -  亚历山大·福克斯 5月6日15日14时44分
   
你是什​​么意思 ?如果您使用任何带有免费许可证的代码,您只需按照该许可证的T&C。 -  瓦伦·纳哈里亚 5月6日'15在15:37
   
让我说我有字符串“<b>测试</ b>”。我想要将其转换为doc元素,而不是文档。然后我将使用PHPWord将此元素放在我的docx中。放置现有的文档元素起作用,但是将html转换为它们并不起作用。 -  亚历山大·福克斯 5月6日15时18分26秒
   
不清楚你在问什么,但试过我上面提供的链接?这里是另一个链接,添加了您可以使用相同的源代码测试html的工作演示文档转换。 -  瓦伦·纳哈里亚 5月6日15日18时31分

其他答案提出了只支持的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:罢工”,您可以使用“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);

我现在可以使用PHPWord转换html代码来插入。

分享改善这个答案
 
2 
请接受这个答复 -  Varun Naharia 5月7日'15在8:43

来自  https://stackoverflow.com/questions/30076922/convert-html-code-to-doc-using-php-and-phpword