【问题标题】:Insert html to .docx将 html 插入 .docx
【发布时间】:2014-04-13 02:03:22
【问题描述】:

我使用phpoffice/phpword 处理文档模板,示例可以在这里找到:https://github.com/PHPOffice/PHPWord/blob/master/samples/old/Template.php

问题是我需要插入格式化文本,它是从所见即所得编辑器生成的html 代码。我做不到:

$document->setValue('Value1', '<span>Sun</span>');

文档生成会出错,我猜是因为该库无法将 html 与 OpenXML 一起解析。我需要做的可能是先将html转换为OpenXML,我尝试过但总是得到:

我不知道。任何想法或建议如何处理这个?将不胜感激。谢谢。

【问题讨论】:

  • 您是否要插入文字 html,它是仅用于显示的 html - 例如您正在编写关于 html 的文档并且需要显示代码示例?或者您是否尝试插入实际的 html,使用它来标记/格式化插入的文本?
  • 我需要插入格式化文本。
  • 那么你不能。 wordml 是一种基于 xml 的格式。它不是 html。您需要编写符合微软要求的xml。
  • 您可以将 html 转换为 OpenXML(如您所想),或者您可以插入“altChunk”,然后依靠 altChunk 感知工具(例如 Word)将 HTML 转换为原始 OpenXML。后一种方法(使用 Word)对您有用吗?
  • @JasonPlutext 我会调查altChunk,以前从未听说过。这可能是解决方案。我想知道如何使用php。非常感谢。

标签: php html docx


【解决方案1】:

您可以将html添加到表格单元格,请参见示例:

$templateProcessor=$PHPWord->loadTemplate('Template.docx');

$value = '<b>TEST</b>';
$wordTable = new \PhpOffice\PhpWord\Element\Table();
$wordTable->addRow();
$cell = $wordTable->addCell();                                
 \PhpOffice\PhpWord\Shared\Html::addHtml($cell,$value);
                
$templateProcessor->setComplexBlock('SomePlaceholder', $wordTable);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 2015-11-11
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多