PhpWord: Как создать новый абзац с рамкой и цветом фона?

Я пытаюсь создать аккуратный документ Word, используя Библиотека PhpWord. К сожалению, документация кажется неполной. Я хотел бы иметь абзацы с рамкой и цветом фона, охватывающие всю ширину страницы. Я провел некоторое исследование и нашел атрибуты 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');

2

Решение

Я только что узнал, посмотрев на исходный код:

Если вы хотите установить цвет фона абзаца, вам нужно будет установить затенение стиля абзаца:

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

Цвет фона для стиля абзаца устанавливается как заливка заливки.

Насколько я могу судить, вы должны прочитать API PhpWord

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

и / или спецификация docx

http://officeopenxml.com/WPshading.php

найти правильные параметры для «затенения».

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]