【问题标题】:Convert HTML code to doc using PHP and PHPWord使用 PHP 和 PHPWord 将 HTML 代码转换为 doc
【发布时间】:2015-07-16 14:25:10
【问题描述】:

我正在使用 PHPWord 加载 docx 模板并替换 {test} 之类的标签。这工作得很好。

但我想用 html 代码替换一个值。无法将其直接替换到模板中。据我所知,现在有办法使用 PHPWord 来做到这一点。

我查看了 htmltodocx。但是它接缝也不起作用,是否可以将像<p>Test<b>test</b><br>test</p> 这样的代码和平转换为有效的文档标记?我只需要基本代码,不需要样式。但换行必须起作用。

【问题讨论】:

    标签: php html openxml phpword


    【解决方案1】:

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

    它是演示也可用here

    其他选项是这个Link

     $toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>");
        $templateProcessor->setValue('test', $toOpenXML);
    

    【讨论】:

    • 感谢您的回答,它运作良好,但是,我只想要我的小 mc 值的代码。
    • 这是什么意思?如果您使用任何具有免费许可的代码,您只需遵守该许可的条款和条件。
    • 假设我有字符串“test”。我希望将其转换为 doc 元素,而不是文档。然后,我将使用 PHPWord 将此元素放在我的 docx 中。放置现有的 doc 元素有效,但将 html 转换为它们无效。
    • 不清楚你在哪里问但尝试了我上面给出的链接??这是我添加的另一个链接,您可以在其中使用相同的源代码测试 html 到 doc 转换的工作演示。
    • 是的,我试过了,但我不想有一个可下载的文件,而是像 bla 之类的代码
    【解决方案2】:

    其他答案建议H2OXML只支持

    • 粗体、斜体和下划线文本

    • Bulled List

    如他们的文档中所述,他们的最后一次更新是在 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”粗体,等等。不确定它是否适用于所有标签。

    【讨论】:

      【解决方案3】:

      感谢您的回答,瓦伦。

      简单的 PHP 库 H2OXML 适合我 https://h2openxml.codeplex.com/

      $toOpenXML = HTMLtoOpenXML::getInstance()->fromHTML("<p>te<b>s</b>t</p>");
      $templateProcessor->setValue('test', $toOpenXML);
      

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

      【讨论】:

        【解决方案4】:

        $content = '&lt;p&gt;Test&lt;b&gt;test&lt;/b&gt;&lt;br&gt;test&lt;/p&gt;';

        在 IOFactory::createWriter() 之前使用它;

        \PhpOffice\PhpWord\Shared\Html::addHtml($section, $content);
        

        【讨论】:

          猜你喜欢
          • 2020-05-10
          • 2017-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-02
          • 2019-02-17
          • 2021-10-03
          • 2010-09-20
          相关资源
          最近更新 更多