protected function writeRichTextStyle(XMLWriter $objWriter, RichText $shape)
{
$oFill = $shape->getFill();
if ($oFill->getFillType() == Fill::FILL_GRADIENT_LINEAR || $oFill->getFillType() == Fill::FILL_GRADIENT_PATH) {
if (!in_array($oFill->getHashCode(), $this->arrayGradient)) {
$this->writeGradientFill($objWriter, $oFill);
}
}
$oBorder = $shape->getBorder();
if ($oBorder->getDashStyle() != Border::DASH_SOLID) {
if (!in_array($oBorder->getDashStyle(), $this->arrayStrokeDash)) {
$objWriter->startElement('draw:stroke-dash');
$objWriter->writeAttribute('draw:name', 'strokeDash_' . $oBorder->getDashStyle());
$objWriter->writeAttribute('draw:style', 'rect');
switch ($oBorder->getDashStyle()) {
case Border::DASH_DASH:
$objWriter->writeAttribute('draw:distance', '0.105cm');
$objWriter->writeAttribute('draw:dots2', '1');
$objWriter->writeAttribute('draw:dots2-length', '0.14cm');
break;
case Border::DASH_DASHDOT:
$objWriter->writeAttribute('draw:distance', '0.105cm');
$objWriter->writeAttribute('draw:dots1', '1');
$objWriter->writeAttribute('draw:dots1-length', '0.035cm');
$objWriter->writeAttribute('draw:dots2', '1');
$objWriter->writeAttribute('draw:dots2-length', '0.14cm');
break;
case Border::DASH_DOT:
$objWriter->writeAttribute('draw:distance', '0.105cm');
$objWriter->writeAttribute('draw:dots1', '1');
$objWriter->writeAttribute('draw:dots1-length', '0.035cm');
break;
case Border::DASH_LARGEDASH:
$objWriter->writeAttribute('draw:distance', '0.105cm');
$objWriter->writeAttribute('draw:dots2', '1');
$objWriter->writeAttribute('draw:dots2-length', '0.28cm');
break;
case Border::DASH_LARGEDASHDOT:
$objWriter->writeAttribute('draw:distance', '0.105cm');
$objWriter->writeAttribute('draw:dots1', '1');
$objWriter->writeAttribute('draw:dots1-length', '0.035cm');
$objWriter->writeAttribute('draw:dots2', '1');
$objWriter->writeAttribute('draw:dots2-length', '0.28cm');
break;
case Border::DASH_LARGEDASHDOTDOT:
$objWriter->writeAttribute('draw:distance', '0.105cm');
$objWriter->writeAttribute('draw:dots1', '2');
$objWriter->writeAttribute('draw:dots1-length', '0.035cm');
$objWriter->writeAttribute('draw:dots2', '1');
$objWriter->writeAttribute('draw:dots2-length', '0.28cm');
break;
case Border::DASH_SYSDASH:
$objWriter->writeAttribute('draw:distance', '0.035cm');
$objWriter->writeAttribute('draw:dots2', '1');
$objWriter->writeAttribute('draw:dots2-length', '0.105cm');
break;
case Border::DASH_SYSDASHDOT:
$objWriter->writeAttribute('draw:distance', '0.035cm');
$objWriter->writeAttribute('draw:dots1', '1');
$objWriter->writeAttribute('draw:dots1-length', '0.035cm');
$objWriter->writeAttribute('draw:dots2', '1');
$objWriter->writeAttribute('draw:dots2-length', '0.105cm');
break;
case Border::DASH_SYSDASHDOTDOT:
$objWriter->writeAttribute('draw:distance', '0.035cm');
$objWriter->writeAttribute('draw:dots1', '2');
$objWriter->writeAttribute('draw:dots1-length', '0.035cm');
$objWriter->writeAttribute('draw:dots2', '1');
$objWriter->writeAttribute('draw:dots2-length', '0.105cm');
break;
case Border::DASH_SYSDOT:
$objWriter->writeAttribute('draw:distance', '0.035cm');
$objWriter->writeAttribute('draw:dots1', '1');
$objWriter->writeAttribute('draw:dots1-length', '0.035cm');
break;
}
$objWriter->endElement();
$this->arrayStrokeDash[] = $oBorder->getDashStyle();
}
}
}