2 回答

TA貢獻1840條經(jīng)驗 獲得超5個贊
我剛剛執(zhí)行了一個非常簡單的測試,它工作正常。我的代碼與您的代碼幾乎完全相同,只是我告訴系統(tǒng)將其編寫為 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');
哪個產(chǎn)生:
如果將保存模式更改為HTML
,背景顏色會消失,但無論如何它不再是 Word 文檔,只是原始 HTML,所以我認為這無關(guān)緊要。
$targetFile = __DIR__ . "/1.html"; $phpWord->save($targetFile, 'HTML');

TA貢獻1797條經(jīng)驗 獲得超4個贊
您在一個問題/主題中有很多東西。所以我只會根據(jù)您列舉的設(shè)計問題來回答:
背景顏色
您可以通過像這樣設(shè)置表格樣式來呈現(xiàn)背景顏色:
$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 代碼中的分頁符。但是,您可以通過隱式調(diào)用addPageBreak()來在各節(jié)中呈現(xiàn)分頁符,如下所示:
$section = $phpWord->addSection();
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $someHTMLcode);
$section->addPageBreak();
$section->addText("some plain text");
$section->addPageBreak();
意外的內(nèi)聯(lián)文本中斷
也許你可以嘗試spaces用 這樣的方式替換一些:
<p>some text before span tag <span style="color:#FF0000;">XXXXX</span> Text after span tag.</p>
我希望其中一些——如果不是全部——可能對你有用。祝你好運!
- 2 回答
- 0 關(guān)注
- 318 瀏覽
添加回答
舉報