使用 PHP 和 PHPWord 将 HTML 代码转换为文档
Convert HTML code to doc using PHP and PHPWord
我正在使用 PHPWord 加载 docx 模板并替换 {test}
等标签。这工作得很好。
但我想用 html 代码替换一个值。直接替换到模板中是不可能的。据我所知,现在可以使用 PHPWord 执行此操作。
我查看了 htmltodocx。但它接缝它也不会工作,是否可以将像 <p>Test<b>test</b><br>test</p>
这样的代码和平转换为工作文档标记?我只需要基本代码,不需要样式。但换行必须有效。
这里是link到github。它工作正常 Html-Docx-js。
并且该演示也可用 here。
其他选项是这个Link。
$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>");
$templateProcessor->setValue('test', $toOpenXML);
感谢您的回答,Varun。
简单的 PHP 库 H2OXML 对我有用 https://h2openxml.codeplex.com/
$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>");
$templateProcessor->setValue('test', $toOpenXML);
我现在可以转换 html 代码以使用 PHPWord 插入它。
其他答案提出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:i" 来代替 "w:strike" 斜体或 "w:b" 粗体,等等。不确定它是否适用于所有标签。
$内容='<p>Test<b>test</b><br>test</p>'
;
在 IOFactory::createWriter() 之前使用它;
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $content);
我正在使用 PHPWord 加载 docx 模板并替换 {test}
等标签。这工作得很好。
但我想用 html 代码替换一个值。直接替换到模板中是不可能的。据我所知,现在可以使用 PHPWord 执行此操作。
我查看了 htmltodocx。但它接缝它也不会工作,是否可以将像 <p>Test<b>test</b><br>test</p>
这样的代码和平转换为工作文档标记?我只需要基本代码,不需要样式。但换行必须有效。
这里是link到github。它工作正常 Html-Docx-js。
并且该演示也可用 here。
其他选项是这个Link。
$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>");
$templateProcessor->setValue('test', $toOpenXML);
感谢您的回答,Varun。
简单的 PHP 库 H2OXML 对我有用 https://h2openxml.codeplex.com/
$toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>");
$templateProcessor->setValue('test', $toOpenXML);
我现在可以转换 html 代码以使用 PHPWord 插入它。
其他答案提出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:i" 来代替 "w:strike" 斜体或 "w:b" 粗体,等等。不确定它是否适用于所有标签。
$内容='<p>Test<b>test</b><br>test</p>'
;
在 IOFactory::createWriter() 之前使用它;
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $content);