【发布时间】:2025-12-16 17:05:02
【问题描述】:
我正在使用 PHPWord 库将我的 HTML 模板转换为 Word。
我将 HTML 转换为 Word 文件的代码如下:
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $htmlTemplate);
$targetFile = __DIR__ . "/1.docx";
$phpWord->save($targetFile, 'HTML');
我面临以下问题:
- 我正在使用内联样式应用背景颜色和字体颜色,但字体颜色仅起作用,而背景颜色不起作用。
<p style="background-color:#FFFF00;color:#FF0000;">Some text</p>
- 我正在使用下面的 HTML 代码来允许 HTML 模板部分中的分页符。但它不适用于导出的 Word 文件。
<div style="page-break-after:always"><span style="display:none"> </span></div>
- 我正在使用 span 标签将某些单词标记为粗体或更改段落中单词的颜色。但是当我导出到 Word 文件时,span 标记后的内容会移动到单词下方的新行。我尝试在 span 标签中使用 display:inline css 属性。但它不起作用。
<p>some text before span tag <span style="color:#FF0000;display:inline">XXXXX</span> Text after span tag.</p>
编辑:
如果上面提到的问题不能用 PHPWord 解决,请推荐任何其他库,我可以使用它来将带有内联 css 的 HTML 转换为 Word!
【问题讨论】:
-
正如您在Official Page 上看到的,您不能使用背景颜色。
-
此处列出的样式适用于我们使用 PHPWord 语法在 Word 中添加内容时。但是我有 HTML 模板,我正在将其转换为 word。所以我不能使用这些样式!
-
是的,抱歉,请参阅here,样式列表。
-
是的,我看到了这个文件,并且在调试时,在函数 parseStyle 中,当我在返回之前在函数末尾打印 $styles 时,样式属性在那里正确打印。但不知道之后会发生什么错误并且它没有反映在文档中
-
我注意到的一点是 background-color 与
标签一起使用,但不适用于 或标签!