PhpWord:如何创建一个带有边框和背景色的新段落


PhpWord: How to create a new paragraph with border and background color?

我正在尝试使用PhpWord库创建一个整洁的Word文档。遗憾的是,文件似乎不完整。我想要有边框和背景颜色的段落,跨越整个页面宽度。我做了一些研究,发现了属性borderSize和borderColor,它们对于addText方法没有文档记录。还有一个bgColor属性,可以在文本上设置。以下示例创建了一个带边框的段落。文本也有一些背景色,但它只是文本,而不是被边框包围的整个区域。遗憾的是,属性bgColor对段落级别没有任何影响。

有人知道如何做到这一点吗?

use 'PhpOffice'PhpWord'IOFactory;
$document = new 'PhpOffice'PhpWord'PhpWord();
$titlepage = $document->createSection();
$titlepage->addText('My Title', 
    array("size" => 24, "color" => "FF0000", "bgColor"=>"00FF00"),
    array("borderSize"=>6, "borderColor"=>"0000FF")
);
$objWriter = IOFactory::createWriter($document, 'Word2007');

我刚刚通过查看源代码发现:

如果你想设置段落背景颜色,你必须设置段落样式的阴影:

$section->addText('Your text', array(), array('shading' => array('fill' => 'dddddd')));

段落样式的背景色设置为着色的填充。

据我所知,你必须阅读PhpWord API

http://phpoffice.github.io/PHPWord/docs/master/classes/PhpOffice.PhpWord.Style.Shading.html

和/或docx规范

http://officeopenxml.com/WPshading.php

以找到"着色"的正确参数。