如何在PHPWord中为传入的HTML添加样式

时间:2019-10-23 21:00:40

标签: phpword phpoffice

在phpword中,我看到您曾经能够将样式数组传递给addHTML函数,但现在不再可用。

如果我的HTML没有设置任何内联样式,是否有一种方法可以指定fontStyle和段落样式,使其在Word文件中不会以纯“ Arial 10pt”结尾?

通过在调用addHTML之前设置默认样式,我已经取得了一些成功:

$phpWord->setDefaultFontName('...');
$phpWord->setDefaultFontSize('...');
$phpWord->setDefaultParagraphStyle('...');

但是,这不是完整的字体样式。例如,如何更改文本的颜色?

3 个答案:

答案 0 :(得分:0)

doc之后,它将类似于:

// New document
$phpWord = new \PhpOffice\PhpWord\PhpWord();
// New empty section
$section = $phpWord->addSection();
// Set font-styles
$fontStyle = new \PhpOffice\PhpWord\Style\Font();
$fontStyle->setName('Tahoma');
$fontStyle->setSize(13);
// Adding text and font-styles to the section
$myTextElement = $section->addText("Bla bla bla");
$myTextElement->setFontStyle($fontStyle);

这样,您可以将$ fontStyle用作创建的所有文本的默认样式。

答案 1 :(得分:0)

似乎最通用的解决方案实际上是在调用addHTML()之前将样式直接添加到html中。像...

$html = str_replace("<p>", 
    "<p style='font-size: 10pt; font-family: Arial; color:#595959; line-height: 140%; margin-bottom: 160pt;'>", 
    $html);

答案 2 :(得分:0)

仅添加例如默认字体 示例:

$phpWord->setDefaultFontName('Times New Roman');
$phpWord->setDefaultFontSize(12);