Refactoring: Word2007 table and marginborder style writer
This commit is contained in:
parent
8745c5ee30
commit
7ae8c3cb81
|
|
@ -9,9 +9,14 @@
|
||||||
<rule ref="rulesets/design.xml/EvalExpression" />
|
<rule ref="rulesets/design.xml/EvalExpression" />
|
||||||
<rule ref="rulesets/design.xml/GotoStatement" />
|
<rule ref="rulesets/design.xml/GotoStatement" />
|
||||||
<rule ref="rulesets/design.xml/DepthOfInheritance" />
|
<rule ref="rulesets/design.xml/DepthOfInheritance" />
|
||||||
<rule ref="rulesets/design.xml/CouplingBetweenObjects" />
|
<rule ref="rulesets/design.xml/CouplingBetweenObjects">
|
||||||
|
<!-- AbstractContainer needs more coupling (default: 13) -->
|
||||||
|
<properties>
|
||||||
|
<property name="minimum" value="20" />
|
||||||
|
</properties>
|
||||||
|
</rule>
|
||||||
<rule ref="rulesets/design.xml/NumberOfChildren">
|
<rule ref="rulesets/design.xml/NumberOfChildren">
|
||||||
<!-- AbstractElement and AbstractStyle still needs a lot of children classes -->
|
<!-- AbstractStyle needs more children (default: 15) -->
|
||||||
<properties>
|
<properties>
|
||||||
<property name="minimum" value="20" />
|
<property name="minimum" value="20" />
|
||||||
</properties>
|
</properties>
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ class Settings
|
||||||
/**
|
/**
|
||||||
* Measurement unit
|
* Measurement unit
|
||||||
*
|
*
|
||||||
* @var string
|
* @var int|float
|
||||||
*/
|
*/
|
||||||
private static $measurementUnit = self::UNIT_TWIP;
|
private static $measurementUnit = self::UNIT_TWIP;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ abstract class AbstractStyle
|
||||||
/**
|
/**
|
||||||
* Set default for null and empty value
|
* Set default for null and empty value
|
||||||
*
|
*
|
||||||
* @param mixed $value
|
* @param string $value
|
||||||
* @param mixed $default
|
* @param mixed $default
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
|
|
@ -186,7 +186,7 @@ abstract class AbstractStyle
|
||||||
/**
|
/**
|
||||||
* Set integer value: Convert string that contains only numeric into integer
|
* Set integer value: Convert string that contains only numeric into integer
|
||||||
*
|
*
|
||||||
* @param mixed $value
|
* @param int|null $value
|
||||||
* @param int|null $default
|
* @param int|null $default
|
||||||
* @return int|null
|
* @return int|null
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,6 @@ class Container extends AbstractElement
|
||||||
$content = '';
|
$content = '';
|
||||||
|
|
||||||
$elements = $container->getElements();
|
$elements = $container->getElements();
|
||||||
$elementClass = '';
|
|
||||||
foreach ($elements as $element) {
|
foreach ($elements as $element) {
|
||||||
$elementClass = get_class($element);
|
$elementClass = get_class($element);
|
||||||
$writerClass = str_replace('PhpOffice\\PhpWord\\Element', $this->namespace, $elementClass);
|
$writerClass = str_replace('PhpOffice\\PhpWord\\Element', $this->namespace, $elementClass);
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ class Text extends AbstractElement
|
||||||
/**
|
/**
|
||||||
* Write font style beginning
|
* Write font style beginning
|
||||||
*
|
*
|
||||||
* @param mixed $style
|
* @param \PhpOffice\PhpWord\Style\Font $style
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
private function writeFontStyle($style)
|
private function writeFontStyle($style)
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ namespace PhpOffice\PhpWord\Writer\Word2007\Element;
|
||||||
|
|
||||||
use PhpOffice\PhpWord\Element\Cell as CellElement;
|
use PhpOffice\PhpWord\Element\Cell as CellElement;
|
||||||
use PhpOffice\PhpWord\Element\Row as RowElement;
|
use PhpOffice\PhpWord\Element\Row as RowElement;
|
||||||
|
use PhpOffice\PhpWord\Element\Table as TableElement;
|
||||||
use PhpOffice\PhpWord\Shared\XMLWriter;
|
use PhpOffice\PhpWord\Shared\XMLWriter;
|
||||||
use PhpOffice\PhpWord\Style\Cell as CellStyle;
|
use PhpOffice\PhpWord\Style\Cell as CellStyle;
|
||||||
use PhpOffice\PhpWord\Style\Row as RowStyle;
|
use PhpOffice\PhpWord\Style\Row as RowStyle;
|
||||||
|
|
@ -51,59 +52,54 @@ class Table extends AbstractElement
|
||||||
if ($rowCount > 0) {
|
if ($rowCount > 0) {
|
||||||
$xmlWriter->startElement('w:tbl');
|
$xmlWriter->startElement('w:tbl');
|
||||||
|
|
||||||
// Table grid
|
// Write columns
|
||||||
$cellWidths = array();
|
$this->writeColumns($xmlWriter, $element);
|
||||||
for ($i = 0; $i < $rowCount; $i++) {
|
|
||||||
$row = $rows[$i];
|
|
||||||
$cells = $row->getCells();
|
|
||||||
if (count($cells) <= count($cellWidths)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$cellWidths = array();
|
|
||||||
foreach ($cells as $cell) {
|
|
||||||
$cellWidths[] = $cell->getWidth();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$xmlWriter->startElement('w:tblGrid');
|
|
||||||
foreach ($cellWidths as $width) {
|
|
||||||
$xmlWriter->startElement('w:gridCol');
|
|
||||||
if (!is_null($width)) {
|
|
||||||
$xmlWriter->writeAttribute('w:w', $width);
|
|
||||||
$xmlWriter->writeAttribute('w:type', 'dxa');
|
|
||||||
}
|
|
||||||
$xmlWriter->endElement();
|
|
||||||
}
|
|
||||||
$xmlWriter->endElement(); // w:tblGrid
|
|
||||||
|
|
||||||
// Table style
|
// Write style
|
||||||
$tblStyle = $element->getStyle();
|
$styleWriter = new TableStyleWriter($xmlWriter, $element->getStyle());
|
||||||
$tblWidth = $element->getWidth();
|
$styleWriter->setWidth($element->getWidth());
|
||||||
if ($tblStyle instanceof TableStyle) {
|
$styleWriter->write();
|
||||||
$styleWriter = new TableStyleWriter($xmlWriter, $tblStyle);
|
|
||||||
$styleWriter->setIsFullStyle(false);
|
|
||||||
$styleWriter->write();
|
|
||||||
} else {
|
|
||||||
if (!empty($tblStyle)) {
|
|
||||||
$xmlWriter->startElement('w:tblPr');
|
|
||||||
$xmlWriter->startElement('w:tblStyle');
|
|
||||||
$xmlWriter->writeAttribute('w:val', $tblStyle);
|
|
||||||
$xmlWriter->endElement();
|
|
||||||
if (!is_null($tblWidth)) {
|
|
||||||
$xmlWriter->startElement('w:tblW');
|
|
||||||
$xmlWriter->writeAttribute('w:w', $tblWidth);
|
|
||||||
$xmlWriter->writeAttribute('w:type', 'pct');
|
|
||||||
$xmlWriter->endElement();
|
|
||||||
}
|
|
||||||
$xmlWriter->endElement();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Table rows
|
// Write rows
|
||||||
for ($i = 0; $i < $rowCount; $i++) {
|
for ($i = 0; $i < $rowCount; $i++) {
|
||||||
$this->writeRow($xmlWriter, $rows[$i]);
|
$this->writeRow($xmlWriter, $rows[$i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$xmlWriter->endElement(); // w:tbl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write column
|
||||||
|
*/
|
||||||
|
private function writeColumns(XMLWriter $xmlWriter, TableElement $element)
|
||||||
|
{
|
||||||
|
$rows = $element->getRows();
|
||||||
|
$rowCount = count($rows);
|
||||||
|
|
||||||
|
$cellWidths = array();
|
||||||
|
for ($i = 0; $i < $rowCount; $i++) {
|
||||||
|
$row = $rows[$i];
|
||||||
|
$cells = $row->getCells();
|
||||||
|
if (count($cells) <= count($cellWidths)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$cellWidths = array();
|
||||||
|
foreach ($cells as $cell) {
|
||||||
|
$cellWidths[] = $cell->getWidth();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$xmlWriter->startElement('w:tblGrid');
|
||||||
|
foreach ($cellWidths as $width) {
|
||||||
|
$xmlWriter->startElement('w:gridCol');
|
||||||
|
if ($width !== null) {
|
||||||
|
$xmlWriter->writeAttribute('w:w', $width);
|
||||||
|
$xmlWriter->writeAttribute('w:type', 'dxa');
|
||||||
|
}
|
||||||
$xmlWriter->endElement();
|
$xmlWriter->endElement();
|
||||||
}
|
}
|
||||||
|
$xmlWriter->endElement(); // w:tblGrid
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,8 @@
|
||||||
|
|
||||||
namespace PhpOffice\PhpWord\Writer\Word2007\Style;
|
namespace PhpOffice\PhpWord\Writer\Word2007\Style;
|
||||||
|
|
||||||
|
use PhpOffice\PhpWord\Shared\XMLWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Margin border style writer
|
* Margin border style writer
|
||||||
*
|
*
|
||||||
|
|
@ -56,31 +58,47 @@ class MarginBorder extends AbstractStyle
|
||||||
$sizeCount = count($this->sizes) - 1;
|
$sizeCount = count($this->sizes) - 1;
|
||||||
|
|
||||||
for ($i = 0; $i < $sizeCount; $i++) {
|
for ($i = 0; $i < $sizeCount; $i++) {
|
||||||
if (!is_null($this->sizes[$i])) {
|
if ($this->sizes[$i] !== null) {
|
||||||
$xmlWriter->startElement('w:' . $sides[$i]);
|
$color = null;
|
||||||
if (!empty($this->colors)) {
|
if (isset($this->colors[$i])) {
|
||||||
if (is_null($this->colors[$i]) && !empty($this->attributes)) {
|
$color = $this->colors[$i];
|
||||||
if (array_key_exists('defaultColor', $this->attributes)) {
|
|
||||||
$this->colors[$i] = $this->attributes['defaultColor'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$xmlWriter->writeAttribute('w:val', 'single');
|
|
||||||
$xmlWriter->writeAttribute('w:sz', $this->sizes[$i]);
|
|
||||||
$xmlWriter->writeAttribute('w:color', $this->colors[$i]);
|
|
||||||
if (!empty($this->attributes)) {
|
|
||||||
if (array_key_exists('space', $this->attributes)) {
|
|
||||||
$xmlWriter->writeAttribute('w:space', $this->attributes['space']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$xmlWriter->writeAttribute('w:w', $this->sizes[$i]);
|
|
||||||
$xmlWriter->writeAttribute('w:type', 'dxa');
|
|
||||||
}
|
}
|
||||||
$xmlWriter->endElement();
|
$this->writeSide($xmlWriter, $sides[$i], $this->sizes[$i], $color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write side
|
||||||
|
*
|
||||||
|
* @param string $side
|
||||||
|
* @param int $width
|
||||||
|
* @param string $color
|
||||||
|
*/
|
||||||
|
private function writeSide(XMLWriter $xmlWriter, $side, $width, $color = null)
|
||||||
|
{
|
||||||
|
$xmlWriter->startElement('w:' . $side);
|
||||||
|
if (!empty($this->colors)) {
|
||||||
|
if ($color === null && !empty($this->attributes)) {
|
||||||
|
if (array_key_exists('defaultColor', $this->attributes)) {
|
||||||
|
$color = $this->attributes['defaultColor'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$xmlWriter->writeAttribute('w:val', 'single');
|
||||||
|
$xmlWriter->writeAttribute('w:sz', $width);
|
||||||
|
$xmlWriter->writeAttribute('w:color', $color);
|
||||||
|
if (!empty($this->attributes)) {
|
||||||
|
if (array_key_exists('space', $this->attributes)) {
|
||||||
|
$xmlWriter->writeAttribute('w:space', $this->attributes['space']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$xmlWriter->writeAttribute('w:w', $width);
|
||||||
|
$xmlWriter->writeAttribute('w:type', 'dxa');
|
||||||
|
}
|
||||||
|
$xmlWriter->endElement();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set sizes
|
* Set sizes
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,6 @@
|
||||||
|
|
||||||
namespace PhpOffice\PhpWord\Writer\Word2007\Style;
|
namespace PhpOffice\PhpWord\Writer\Word2007\Style;
|
||||||
|
|
||||||
use PhpOffice\PhpWord\Style\Row as RowStyle;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Row style writer
|
* Row style writer
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,9 @@
|
||||||
|
|
||||||
namespace PhpOffice\PhpWord\Writer\Word2007\Style;
|
namespace PhpOffice\PhpWord\Writer\Word2007\Style;
|
||||||
|
|
||||||
|
use PhpOffice\PhpWord\Shared\XMLWriter;
|
||||||
use PhpOffice\PhpWord\Style\Alignment as AlignmentStyle;
|
use PhpOffice\PhpWord\Style\Alignment as AlignmentStyle;
|
||||||
|
use PhpOffice\PhpWord\Style\Table as TableStyle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table style writer
|
* Table style writer
|
||||||
|
|
@ -27,11 +29,9 @@ use PhpOffice\PhpWord\Style\Alignment as AlignmentStyle;
|
||||||
class Table extends AbstractStyle
|
class Table extends AbstractStyle
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Is full style
|
* @var int Table width
|
||||||
*
|
|
||||||
* @var bool
|
|
||||||
*/
|
*/
|
||||||
private $isFullStyle = true;
|
private $width;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write style
|
* Write style
|
||||||
|
|
@ -39,105 +39,137 @@ class Table extends AbstractStyle
|
||||||
public function write()
|
public function write()
|
||||||
{
|
{
|
||||||
$style = $this->getStyle();
|
$style = $this->getStyle();
|
||||||
if (!$style instanceof \PhpOffice\PhpWord\Style\Table) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$xmlWriter = $this->getXmlWriter();
|
$xmlWriter = $this->getXmlWriter();
|
||||||
|
|
||||||
|
if ($style instanceof \PhpOffice\PhpWord\Style\Table) {
|
||||||
// w:tblPr
|
$this->writeStyle($xmlWriter, $style);
|
||||||
$hasMargins = $style->hasMargins();
|
} elseif (is_string($style)) {
|
||||||
$hasBorders = $style->hasBorders();
|
$xmlWriter->startElement('w:tblPr');
|
||||||
$align = $style->getAlign();
|
$xmlWriter->startElement('w:tblStyle');
|
||||||
|
$xmlWriter->writeAttribute('w:val', $style);
|
||||||
$xmlWriter->startElement('w:tblPr');
|
$xmlWriter->endElement();
|
||||||
|
if ($this->width !== null) {
|
||||||
$xmlWriter->startElement('w:tblW');
|
$this->writeWidth($xmlWriter, $this->width, 'pct');
|
||||||
$xmlWriter->writeAttribute('w:w', $style->getWidth());
|
|
||||||
$xmlWriter->writeAttribute('w:type', $style->getUnit());
|
|
||||||
$xmlWriter->endElement(); // w:tblW
|
|
||||||
|
|
||||||
// Alignment
|
|
||||||
$styleWriter = new Alignment($xmlWriter, new AlignmentStyle(array('value' => $align)));
|
|
||||||
$styleWriter->write();
|
|
||||||
|
|
||||||
// Margins
|
|
||||||
if ($hasMargins) {
|
|
||||||
$mbWriter = new MarginBorder($xmlWriter);
|
|
||||||
$mbWriter->setSizes($style->getCellMargin());
|
|
||||||
|
|
||||||
$xmlWriter->startElement('w:tblCellMar');
|
|
||||||
$mbWriter->write();
|
|
||||||
$xmlWriter->endElement(); // w:tblCellMar
|
|
||||||
}
|
|
||||||
|
|
||||||
// Borders
|
|
||||||
if ($hasBorders) {
|
|
||||||
$mbWriter = new MarginBorder($xmlWriter);
|
|
||||||
$mbWriter->setSizes($style->getBorderSize());
|
|
||||||
$mbWriter->setColors($style->getBorderColor());
|
|
||||||
|
|
||||||
$xmlWriter->startElement('w:tblBorders');
|
|
||||||
$mbWriter->write();
|
|
||||||
$xmlWriter->endElement(); // w:tblBorders
|
|
||||||
}
|
|
||||||
|
|
||||||
$xmlWriter->endElement(); // w:tblPr
|
|
||||||
|
|
||||||
// Only write background color and first row for full style
|
|
||||||
if ($this->isFullStyle) {
|
|
||||||
// Background color
|
|
||||||
if (!is_null($style->getShading())) {
|
|
||||||
$xmlWriter->startElement('w:tcPr');
|
|
||||||
$styleWriter = new Shading($xmlWriter, $style->getShading());
|
|
||||||
$styleWriter->write();
|
|
||||||
$xmlWriter->endElement();
|
|
||||||
}
|
|
||||||
// First Row
|
|
||||||
$firstRow = $style->getFirstRow();
|
|
||||||
if ($firstRow instanceof \PhpOffice\PhpWord\Style\Table) {
|
|
||||||
$this->writeFirstRow($firstRow);
|
|
||||||
}
|
}
|
||||||
|
$xmlWriter->endElement();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set is full style
|
* Write full style
|
||||||
*
|
|
||||||
* @param bool $value
|
|
||||||
*/
|
*/
|
||||||
public function setIsFullStyle($value)
|
private function writeStyle(XMLWriter $xmlWriter, TableStyle $style)
|
||||||
{
|
{
|
||||||
$this->isFullStyle = $value;
|
// w:tblPr
|
||||||
|
$xmlWriter->startElement('w:tblPr');
|
||||||
|
|
||||||
|
// Alignment
|
||||||
|
$styleWriter = new Alignment($xmlWriter, new AlignmentStyle(array('value' => $style->getAlign())));
|
||||||
|
$styleWriter->write();
|
||||||
|
|
||||||
|
$this->writeWidth($xmlWriter, $style->getWidth(), $style->getUnit());
|
||||||
|
$this->writeMargin($xmlWriter, $style);
|
||||||
|
$this->writeBorder($xmlWriter, $style);
|
||||||
|
|
||||||
|
$xmlWriter->endElement(); // w:tblPr
|
||||||
|
|
||||||
|
$this->writeShading($xmlWriter, $style);
|
||||||
|
|
||||||
|
// First row style
|
||||||
|
$firstRow = $style->getFirstRow();
|
||||||
|
if ($firstRow instanceof \PhpOffice\PhpWord\Style\Table) {
|
||||||
|
$this->writeFirstRow($xmlWriter, $firstRow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write width
|
||||||
|
*
|
||||||
|
* @param int $width
|
||||||
|
* @param string $unit
|
||||||
|
*/
|
||||||
|
private function writeWidth(XMLWriter $xmlWriter, $width, $unit)
|
||||||
|
{
|
||||||
|
$xmlWriter->startElement('w:tblW');
|
||||||
|
$xmlWriter->writeAttribute('w:w', $width);
|
||||||
|
$xmlWriter->writeAttribute('w:type', $unit);
|
||||||
|
$xmlWriter->endElement(); // w:tblW
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write margin
|
||||||
|
*/
|
||||||
|
private function writeMargin(XMLWriter $xmlWriter, TableStyle $style)
|
||||||
|
{
|
||||||
|
if ($style->hasMargins()) {
|
||||||
|
$xmlWriter->startElement('w:tblCellMar');
|
||||||
|
|
||||||
|
$styleWriter = new MarginBorder($xmlWriter);
|
||||||
|
$styleWriter->setSizes($style->getCellMargin());
|
||||||
|
$styleWriter->write();
|
||||||
|
|
||||||
|
$xmlWriter->endElement(); // w:tblCellMar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write border
|
||||||
|
*/
|
||||||
|
private function writeBorder(XMLWriter $xmlWriter, TableStyle $style)
|
||||||
|
{
|
||||||
|
if ($style->hasBorders()) {
|
||||||
|
$xmlWriter->startElement('w:tblBorders');
|
||||||
|
|
||||||
|
$styleWriter = new MarginBorder($xmlWriter);
|
||||||
|
$styleWriter->setSizes($style->getBorderSize());
|
||||||
|
$styleWriter->setColors($style->getBorderColor());
|
||||||
|
$styleWriter->write();
|
||||||
|
|
||||||
|
$xmlWriter->endElement(); // w:tblBorders
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write row style
|
* Write row style
|
||||||
*/
|
*/
|
||||||
private function writeFirstRow(\PhpOffice\PhpWord\Style\Table $style)
|
private function writeFirstRow(XMLWriter $xmlWriter, TableStyle $style)
|
||||||
{
|
{
|
||||||
$xmlWriter = $this->getXmlWriter();
|
|
||||||
|
|
||||||
$xmlWriter->startElement('w:tblStylePr');
|
$xmlWriter->startElement('w:tblStylePr');
|
||||||
$xmlWriter->writeAttribute('w:type', 'firstRow');
|
$xmlWriter->writeAttribute('w:type', 'firstRow');
|
||||||
$xmlWriter->startElement('w:tcPr');
|
$xmlWriter->startElement('w:tcPr');
|
||||||
if (!is_null($style->getShading())) {
|
|
||||||
$styleWriter = new Shading($xmlWriter, $style->getShading());
|
|
||||||
$styleWriter->write();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Borders
|
$this->writeBorder($xmlWriter, $style);
|
||||||
if ($style->hasBorders()) {
|
$this->writeShading($xmlWriter, $style);
|
||||||
$mbWriter = new MarginBorder($xmlWriter);
|
|
||||||
$mbWriter->setSizes($style->getBorderSize());
|
|
||||||
$mbWriter->setColors($style->getBorderColor());
|
|
||||||
|
|
||||||
$xmlWriter->startElement('w:tcBorders');
|
|
||||||
$mbWriter->write();
|
|
||||||
$xmlWriter->endElement(); // w:tcBorders
|
|
||||||
}
|
|
||||||
|
|
||||||
$xmlWriter->endElement(); // w:tcPr
|
$xmlWriter->endElement(); // w:tcPr
|
||||||
$xmlWriter->endElement(); // w:tblStylePr
|
$xmlWriter->endElement(); // w:tblStylePr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write shading
|
||||||
|
*
|
||||||
|
* @param int $width
|
||||||
|
* @param string $unit
|
||||||
|
*/
|
||||||
|
private function writeShading(XMLWriter $xmlWriter, TableStyle $style)
|
||||||
|
{
|
||||||
|
if ($style->getShading() !== null) {
|
||||||
|
$xmlWriter->startElement('w:tcPr');
|
||||||
|
|
||||||
|
$styleWriter = new Shading($xmlWriter, $style->getShading());
|
||||||
|
$styleWriter->write();
|
||||||
|
|
||||||
|
$xmlWriter->endElement();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set width
|
||||||
|
*
|
||||||
|
* @param int $value
|
||||||
|
*/
|
||||||
|
public function setWidth($value = null)
|
||||||
|
{
|
||||||
|
$this->width = $value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue