2 回答
TA贡献1840条经验 获得超5个赞
我刚刚执行了一个非常简单的测试,它工作正常。我的代码与您的代码几乎完全相同,只是我告诉系统将其编写为 Word 文档,而不是 HTML。
use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\Shared\Html;
require_once __DIR__ . '/vendor/autoload.php';
$htmlTemplate = ' <p style="background-color:#FFFF00;color:#FF0000;">Some text</p>';
$phpWord = new PhpWord();
$section = $phpWord->addSection();
Html::addHtml($section, $htmlTemplate);
$targetFile = __DIR__ . "/1.docx";
$phpWord->save($targetFile, 'Word2007');
哪个产生:
如果将保存模式更改为HTML
,背景颜色会消失,但无论如何它不再是 Word 文档,只是原始 HTML,所以我认为这无关紧要。
$targetFile = __DIR__ . "/1.html"; $phpWord->save($targetFile, 'HTML');
TA贡献1797条经验 获得超4个赞
您在一个问题/主题中有很多东西。所以我只会根据您列举的设计问题来回答:
背景颜色
您可以通过像这样设置表格样式来呈现背景颜色:
$table_style = array( 'bgColor' => '#FFFF00' );
$section = $phpWord->addSection();
$table = $section->addTable($table_style);
$table->addRow();
$cell = $table->addCell();
\PhpOffice\PhpWord\Shared\Html::addHtml($cell, $htmlTemplate);
分页符
文档中的示例 html 似乎不支持 html 代码中的分页符。但是,您可以通过隐式调用addPageBreak()来在各节中呈现分页符,如下所示:
$section = $phpWord->addSection();
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $someHTMLcode);
$section->addPageBreak();
$section->addText("some plain text");
$section->addPageBreak();
意外的内联文本中断
也许你可以尝试spaces用 这样的方式替换一些:
<p>some text before span tag <span style="color:#FF0000;">XXXXX</span> Text after span tag.</p>
我希望其中一些——如果不是全部——可能对你有用。祝你好运!
- 2 回答
- 0 关注
- 213 浏览
添加回答
举报