public function writeTableStyle(XMLWriter $objWriter, Table $shape)
{
foreach ($shape->getRows() as $keyRow => $shapeRow) {
// style:style
$objWriter->startElement('style:style');
$objWriter->writeAttribute('style:name', 'gr' . $this->shapeId . 'r' . $keyRow);
$objWriter->writeAttribute('style:family', 'table-row');
// style:table-row-properties
$objWriter->startElement('style:table-row-properties');
$objWriter->writeAttribute('style:row-height', Text::numberFormat(CommonDrawing::pixelsToCentimeters(CommonDrawing::pointsToPixels($shapeRow->getHeight())), 3) . 'cm');
$objWriter->endElement();
$objWriter->endElement();
foreach ($shapeRow->getCells() as $keyCell => $shapeCell) {
// style:style
$objWriter->startElement('style:style');
$objWriter->writeAttribute('style:name', 'gr' . $this->shapeId . 'r' . $keyRow . 'c' . $keyCell);
$objWriter->writeAttribute('style:family', 'table-cell');
// style:graphic-properties
$objWriter->startElement('style:graphic-properties');
if ($shapeCell->getFill()->getFillType() == Fill::FILL_SOLID) {
$objWriter->writeAttribute('draw:fill', 'solid');
$objWriter->writeAttribute('draw:fill-color', '#' . $shapeCell->getFill()->getStartColor()->getRGB());
}
if ($shapeCell->getFill()->getFillType() == Fill::FILL_GRADIENT_LINEAR) {
$objWriter->writeAttribute('draw:fill', 'gradient');
$objWriter->writeAttribute('draw:fill-gradient-name', 'gradient_' . $shapeCell->getFill()->getHashCode());
}
$objWriter->endElement();
// <style:graphic-properties
// style:paragraph-properties
$objWriter->startElement('style:paragraph-properties');
$cellBorders = $shapeCell->getBorders();
if ($cellBorders->getBottom()->getHashCode() == $cellBorders->getTop()->getHashCode() && $cellBorders->getBottom()->getHashCode() == $cellBorders->getLeft()->getHashCode() && $cellBorders->getBottom()->getHashCode() == $cellBorders->getRight()->getHashCode()) {
$lineStyle = 'none';
$lineWidth = Text::numberFormat($cellBorders->getBottom()->getLineWidth() / 1.75, 2);
$lineColor = $cellBorders->getBottom()->getColor()->getRGB();
switch ($cellBorders->getBottom()->getLineStyle()) {
case Border::LINE_SINGLE:
$lineStyle = 'solid';
}
$objWriter->writeAttribute('fo:border', $lineWidth . 'pt ' . $lineStyle . ' #' . $lineColor);
} else {
$lineStyle = 'none';
$lineWidth = Text::numberFormat($cellBorders->getBottom()->getLineWidth() / 1.75, 2);
$lineColor = $cellBorders->getBottom()->getColor()->getRGB();
switch ($cellBorders->getBottom()->getLineStyle()) {
case Border::LINE_SINGLE:
$lineStyle = 'solid';
}
$objWriter->writeAttribute('fo:border-bottom', $lineWidth . 'pt ' . $lineStyle . ' #' . $lineColor);
// TOP
$lineStyle = 'none';
$lineWidth = Text::numberFormat($cellBorders->getTop()->getLineWidth() / 1.75, 2);
$lineColor = $cellBorders->getTop()->getColor()->getRGB();
switch ($cellBorders->getTop()->getLineStyle()) {
case Border::LINE_SINGLE:
$lineStyle = 'solid';
}
$objWriter->writeAttribute('fo:border-top', $lineWidth . 'pt ' . $lineStyle . ' #' . $lineColor);
// RIGHT
$lineStyle = 'none';
$lineWidth = Text::numberFormat($cellBorders->getRight()->getLineWidth() / 1.75, 2);
$lineColor = $cellBorders->getRight()->getColor()->getRGB();
switch ($cellBorders->getRight()->getLineStyle()) {
case Border::LINE_SINGLE:
$lineStyle = 'solid';
}
$objWriter->writeAttribute('fo:border-right', $lineWidth . 'pt ' . $lineStyle . ' #' . $lineColor);
// LEFT
$lineStyle = 'none';
$lineWidth = Text::numberFormat($cellBorders->getLeft()->getLineWidth() / 1.75, 2);
$lineColor = $cellBorders->getLeft()->getColor()->getRGB();
switch ($cellBorders->getLeft()->getLineStyle()) {
case Border::LINE_SINGLE:
$lineStyle = 'solid';
}
$objWriter->writeAttribute('fo:border-left', $lineWidth . 'pt ' . $lineStyle . ' #' . $lineColor);
}
$objWriter->endElement();
$objWriter->endElement();
foreach ($shapeCell->getParagraphs() as $shapeParagraph) {
foreach ($shapeParagraph->getRichTextElements() as $shapeRichText) {
if ($shapeRichText instanceof Run) {
// Style des font text
if (!isset($this->arrStyleTextFont[$shapeRichText->getHashCode()])) {
$this->arrStyleTextFont[$shapeRichText->getHashCode()] = $shapeRichText;
}
}
}
}
}
}
}