<?php
namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
> use PhpOffice\PhpSpreadsheet\Reader\Xlsx\Namespaces;
use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
> use PhpOffice\PhpSpreadsheet\Theme as SpreadsheetTheme;
class Theme extends WriterPart
{
/**
< * Map of Major fonts to write.
< *
< * @var array of string
< */
< private static $majorFonts = [
< 'Jpan' => 'MS Pゴシック',
< 'Hang' => '맑은 고딕',
< 'Hans' => '宋体',
< 'Hant' => '新細明體',
< 'Arab' => 'Times New Roman',
< 'Hebr' => 'Times New Roman',
< 'Thai' => 'Tahoma',
< 'Ethi' => 'Nyala',
< 'Beng' => 'Vrinda',
< 'Gujr' => 'Shruti',
< 'Khmr' => 'MoolBoran',
< 'Knda' => 'Tunga',
< 'Guru' => 'Raavi',
< 'Cans' => 'Euphemia',
< 'Cher' => 'Plantagenet Cherokee',
< 'Yiii' => 'Microsoft Yi Baiti',
< 'Tibt' => 'Microsoft Himalaya',
< 'Thaa' => 'MV Boli',
< 'Deva' => 'Mangal',
< 'Telu' => 'Gautami',
< 'Taml' => 'Latha',
< 'Syrc' => 'Estrangelo Edessa',
< 'Orya' => 'Kalinga',
< 'Mlym' => 'Kartika',
< 'Laoo' => 'DokChampa',
< 'Sinh' => 'Iskoola Pota',
< 'Mong' => 'Mongolian Baiti',
< 'Viet' => 'Times New Roman',
< 'Uigh' => 'Microsoft Uighur',
< 'Geor' => 'Sylfaen',
< ];
<
< /**
< * Map of Minor fonts to write.
< *
< * @var array of string
< */
< private static $minorFonts = [
< 'Jpan' => 'MS Pゴシック',
< 'Hang' => '맑은 고딕',
< 'Hans' => '宋体',
< 'Hant' => '新細明體',
< 'Arab' => 'Arial',
< 'Hebr' => 'Arial',
< 'Thai' => 'Tahoma',
< 'Ethi' => 'Nyala',
< 'Beng' => 'Vrinda',
< 'Gujr' => 'Shruti',
< 'Khmr' => 'DaunPenh',
< 'Knda' => 'Tunga',
< 'Guru' => 'Raavi',
< 'Cans' => 'Euphemia',
< 'Cher' => 'Plantagenet Cherokee',
< 'Yiii' => 'Microsoft Yi Baiti',
< 'Tibt' => 'Microsoft Himalaya',
< 'Thaa' => 'MV Boli',
< 'Deva' => 'Mangal',
< 'Telu' => 'Gautami',
< 'Taml' => 'Latha',
< 'Syrc' => 'Estrangelo Edessa',
< 'Orya' => 'Kalinga',
< 'Mlym' => 'Kartika',
< 'Laoo' => 'DokChampa',
< 'Sinh' => 'Iskoola Pota',
< 'Mong' => 'Mongolian Baiti',
< 'Viet' => 'Arial',
< 'Uigh' => 'Microsoft Uighur',
< 'Geor' => 'Sylfaen',
< ];
<
< /**
< * Map of core colours.
< *
< * @var array of string
< */
< private static $colourScheme = [
< 'dk2' => '1F497D',
< 'lt2' => 'EEECE1',
< 'accent1' => '4F81BD',
< 'accent2' => 'C0504D',
< 'accent3' => '9BBB59',
< 'accent4' => '8064A2',
< 'accent5' => '4BACC6',
< 'accent6' => 'F79646',
< 'hlink' => '0000FF',
< 'folHlink' => '800080',
< ];
<
< /**
* Write theme to XML format.
*
* @return string XML Output
*/
public function writeTheme(Spreadsheet $spreadsheet)
{
// Create XML writer
$objWriter = null;
if ($this->getParentWriter()->getUseDiskCaching()) {
$objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
} else {
$objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
}
> $theme = $spreadsheet->getTheme();
// XML header
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
// a:theme
$objWriter->startElement('a:theme');
< $objWriter->writeAttribute('xmlns:a', 'http://schemas.openxmlformats.org/drawingml/2006/main');
> $objWriter->writeAttribute('xmlns:a', Namespaces::DRAWINGML);
$objWriter->writeAttribute('name', 'Office Theme');
// a:themeElements
$objWriter->startElement('a:themeElements');
// a:clrScheme
$objWriter->startElement('a:clrScheme');
< $objWriter->writeAttribute('name', 'Office');
<
< // a:dk1
< $objWriter->startElement('a:dk1');
<
< // a:sysClr
< $objWriter->startElement('a:sysClr');
< $objWriter->writeAttribute('val', 'windowText');
< $objWriter->writeAttribute('lastClr', '000000');
< $objWriter->endElement();
<
< $objWriter->endElement();
<
< // a:lt1
< $objWriter->startElement('a:lt1');
> $objWriter->writeAttribute('name', $theme->getThemeColorName());
< // a:sysClr
< $objWriter->startElement('a:sysClr');
< $objWriter->writeAttribute('val', 'window');
< $objWriter->writeAttribute('lastClr', 'FFFFFF');
< $objWriter->endElement();
<
< $objWriter->endElement();
<
< // a:dk2
< $this->writeColourScheme($objWriter);
> $this->writeColourScheme($objWriter, $theme);
$objWriter->endElement();
// a:fontScheme
$objWriter->startElement('a:fontScheme');
< $objWriter->writeAttribute('name', 'Office');
> $objWriter->writeAttribute('name', $theme->getThemeFontName());
// a:majorFont
$objWriter->startElement('a:majorFont');
< $this->writeFonts($objWriter, 'Cambria', self::$majorFonts);
< $objWriter->endElement();
> $this->writeFonts(
> $objWriter,
> $theme->getMajorFontLatin(),
> $theme->getMajorFontEastAsian(),
> $theme->getMajorFontComplexScript(),
> $theme->getMajorFontSubstitutions()
> );
> $objWriter->endElement(); // a:majorFont
// a:minorFont
$objWriter->startElement('a:minorFont');
< $this->writeFonts($objWriter, 'Calibri', self::$minorFonts);
< $objWriter->endElement();
> $this->writeFonts(
> $objWriter,
> $theme->getMinorFontLatin(),
> $theme->getMinorFontEastAsian(),
> $theme->getMinorFontComplexScript(),
> $theme->getMinorFontSubstitutions()
> );
> $objWriter->endElement(); // a:minorFont
< $objWriter->endElement();
> $objWriter->endElement(); // a:fontScheme
// a:fmtScheme
$objWriter->startElement('a:fmtScheme');
$objWriter->writeAttribute('name', 'Office');
// a:fillStyleLst
$objWriter->startElement('a:fillStyleLst');
// a:solidFill
$objWriter->startElement('a:solidFill');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
$objWriter->endElement();
$objWriter->endElement();
// a:gradFill
$objWriter->startElement('a:gradFill');
$objWriter->writeAttribute('rotWithShape', '1');
// a:gsLst
$objWriter->startElement('a:gsLst');
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '0');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:tint
$objWriter->startElement('a:tint');
$objWriter->writeAttribute('val', '50000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '300000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '35000');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:tint
$objWriter->startElement('a:tint');
$objWriter->writeAttribute('val', '37000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '300000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '100000');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:tint
$objWriter->startElement('a:tint');
$objWriter->writeAttribute('val', '15000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '350000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:lin
$objWriter->startElement('a:lin');
$objWriter->writeAttribute('ang', '16200000');
$objWriter->writeAttribute('scaled', '1');
$objWriter->endElement();
$objWriter->endElement();
// a:gradFill
$objWriter->startElement('a:gradFill');
$objWriter->writeAttribute('rotWithShape', '1');
// a:gsLst
$objWriter->startElement('a:gsLst');
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '0');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:shade
$objWriter->startElement('a:shade');
$objWriter->writeAttribute('val', '51000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '130000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '80000');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:shade
$objWriter->startElement('a:shade');
$objWriter->writeAttribute('val', '93000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '130000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '100000');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:shade
$objWriter->startElement('a:shade');
$objWriter->writeAttribute('val', '94000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '135000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:lin
$objWriter->startElement('a:lin');
$objWriter->writeAttribute('ang', '16200000');
$objWriter->writeAttribute('scaled', '0');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:lnStyleLst
$objWriter->startElement('a:lnStyleLst');
// a:ln
$objWriter->startElement('a:ln');
$objWriter->writeAttribute('w', '9525');
$objWriter->writeAttribute('cap', 'flat');
$objWriter->writeAttribute('cmpd', 'sng');
$objWriter->writeAttribute('algn', 'ctr');
// a:solidFill
$objWriter->startElement('a:solidFill');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:shade
$objWriter->startElement('a:shade');
$objWriter->writeAttribute('val', '95000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '105000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:prstDash
$objWriter->startElement('a:prstDash');
$objWriter->writeAttribute('val', 'solid');
$objWriter->endElement();
$objWriter->endElement();
// a:ln
$objWriter->startElement('a:ln');
$objWriter->writeAttribute('w', '25400');
$objWriter->writeAttribute('cap', 'flat');
$objWriter->writeAttribute('cmpd', 'sng');
$objWriter->writeAttribute('algn', 'ctr');
// a:solidFill
$objWriter->startElement('a:solidFill');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
$objWriter->endElement();
$objWriter->endElement();
// a:prstDash
$objWriter->startElement('a:prstDash');
$objWriter->writeAttribute('val', 'solid');
$objWriter->endElement();
$objWriter->endElement();
// a:ln
$objWriter->startElement('a:ln');
$objWriter->writeAttribute('w', '38100');
$objWriter->writeAttribute('cap', 'flat');
$objWriter->writeAttribute('cmpd', 'sng');
$objWriter->writeAttribute('algn', 'ctr');
// a:solidFill
$objWriter->startElement('a:solidFill');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
$objWriter->endElement();
$objWriter->endElement();
// a:prstDash
$objWriter->startElement('a:prstDash');
$objWriter->writeAttribute('val', 'solid');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:effectStyleLst
$objWriter->startElement('a:effectStyleLst');
// a:effectStyle
$objWriter->startElement('a:effectStyle');
// a:effectLst
$objWriter->startElement('a:effectLst');
// a:outerShdw
$objWriter->startElement('a:outerShdw');
$objWriter->writeAttribute('blurRad', '40000');
$objWriter->writeAttribute('dist', '20000');
$objWriter->writeAttribute('dir', '5400000');
$objWriter->writeAttribute('rotWithShape', '0');
// a:srgbClr
$objWriter->startElement('a:srgbClr');
$objWriter->writeAttribute('val', '000000');
// a:alpha
$objWriter->startElement('a:alpha');
$objWriter->writeAttribute('val', '38000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:effectStyle
$objWriter->startElement('a:effectStyle');
// a:effectLst
$objWriter->startElement('a:effectLst');
// a:outerShdw
$objWriter->startElement('a:outerShdw');
$objWriter->writeAttribute('blurRad', '40000');
$objWriter->writeAttribute('dist', '23000');
$objWriter->writeAttribute('dir', '5400000');
$objWriter->writeAttribute('rotWithShape', '0');
// a:srgbClr
$objWriter->startElement('a:srgbClr');
$objWriter->writeAttribute('val', '000000');
// a:alpha
$objWriter->startElement('a:alpha');
$objWriter->writeAttribute('val', '35000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:effectStyle
$objWriter->startElement('a:effectStyle');
// a:effectLst
$objWriter->startElement('a:effectLst');
// a:outerShdw
$objWriter->startElement('a:outerShdw');
$objWriter->writeAttribute('blurRad', '40000');
$objWriter->writeAttribute('dist', '23000');
$objWriter->writeAttribute('dir', '5400000');
$objWriter->writeAttribute('rotWithShape', '0');
// a:srgbClr
$objWriter->startElement('a:srgbClr');
$objWriter->writeAttribute('val', '000000');
// a:alpha
$objWriter->startElement('a:alpha');
$objWriter->writeAttribute('val', '35000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:scene3d
$objWriter->startElement('a:scene3d');
// a:camera
$objWriter->startElement('a:camera');
$objWriter->writeAttribute('prst', 'orthographicFront');
// a:rot
$objWriter->startElement('a:rot');
$objWriter->writeAttribute('lat', '0');
$objWriter->writeAttribute('lon', '0');
$objWriter->writeAttribute('rev', '0');
$objWriter->endElement();
$objWriter->endElement();
// a:lightRig
$objWriter->startElement('a:lightRig');
$objWriter->writeAttribute('rig', 'threePt');
$objWriter->writeAttribute('dir', 't');
// a:rot
$objWriter->startElement('a:rot');
$objWriter->writeAttribute('lat', '0');
$objWriter->writeAttribute('lon', '0');
$objWriter->writeAttribute('rev', '1200000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:sp3d
$objWriter->startElement('a:sp3d');
// a:bevelT
$objWriter->startElement('a:bevelT');
$objWriter->writeAttribute('w', '63500');
$objWriter->writeAttribute('h', '25400');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:bgFillStyleLst
$objWriter->startElement('a:bgFillStyleLst');
// a:solidFill
$objWriter->startElement('a:solidFill');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
$objWriter->endElement();
$objWriter->endElement();
// a:gradFill
$objWriter->startElement('a:gradFill');
$objWriter->writeAttribute('rotWithShape', '1');
// a:gsLst
$objWriter->startElement('a:gsLst');
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '0');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:tint
$objWriter->startElement('a:tint');
$objWriter->writeAttribute('val', '40000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '350000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '40000');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:tint
$objWriter->startElement('a:tint');
$objWriter->writeAttribute('val', '45000');
$objWriter->endElement();
// a:shade
$objWriter->startElement('a:shade');
$objWriter->writeAttribute('val', '99000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '350000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '100000');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:shade
$objWriter->startElement('a:shade');
$objWriter->writeAttribute('val', '20000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '255000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:path
$objWriter->startElement('a:path');
$objWriter->writeAttribute('path', 'circle');
// a:fillToRect
$objWriter->startElement('a:fillToRect');
$objWriter->writeAttribute('l', '50000');
$objWriter->writeAttribute('t', '-80000');
$objWriter->writeAttribute('r', '50000');
$objWriter->writeAttribute('b', '180000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:gradFill
$objWriter->startElement('a:gradFill');
$objWriter->writeAttribute('rotWithShape', '1');
// a:gsLst
$objWriter->startElement('a:gsLst');
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '0');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:tint
$objWriter->startElement('a:tint');
$objWriter->writeAttribute('val', '80000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '300000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:gs
$objWriter->startElement('a:gs');
$objWriter->writeAttribute('pos', '100000');
// a:schemeClr
$objWriter->startElement('a:schemeClr');
$objWriter->writeAttribute('val', 'phClr');
// a:shade
$objWriter->startElement('a:shade');
$objWriter->writeAttribute('val', '30000');
$objWriter->endElement();
// a:satMod
$objWriter->startElement('a:satMod');
$objWriter->writeAttribute('val', '200000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:path
$objWriter->startElement('a:path');
$objWriter->writeAttribute('path', 'circle');
// a:fillToRect
$objWriter->startElement('a:fillToRect');
$objWriter->writeAttribute('l', '50000');
$objWriter->writeAttribute('t', '50000');
$objWriter->writeAttribute('r', '50000');
$objWriter->writeAttribute('b', '50000');
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
$objWriter->endElement();
// a:objectDefaults
$objWriter->writeElement('a:objectDefaults', null);
// a:extraClrSchemeLst
$objWriter->writeElement('a:extraClrSchemeLst', null);
$objWriter->endElement();
// Return
return $objWriter->getData();
}
/**
* Write fonts to XML format.
*
< * @param XMLWriter $objWriter
< * @param string $latinFont
< * @param array of string $fontSet
< *
< * @return string XML Output
> * @param string[] $fontSet
*/
< private function writeFonts($objWriter, $latinFont, $fontSet)
> private function writeFonts(XMLWriter $objWriter, string $latinFont, string $eastAsianFont, string $complexScriptFont, array $fontSet): void
{
// a:latin
$objWriter->startElement('a:latin');
$objWriter->writeAttribute('typeface', $latinFont);
$objWriter->endElement();
// a:ea
$objWriter->startElement('a:ea');
< $objWriter->writeAttribute('typeface', '');
> $objWriter->writeAttribute('typeface', $eastAsianFont);
$objWriter->endElement();
// a:cs
$objWriter->startElement('a:cs');
< $objWriter->writeAttribute('typeface', '');
> $objWriter->writeAttribute('typeface', $complexScriptFont);
$objWriter->endElement();
foreach ($fontSet as $fontScript => $typeface) {
$objWriter->startElement('a:font');
$objWriter->writeAttribute('script', $fontScript);
$objWriter->writeAttribute('typeface', $typeface);
$objWriter->endElement();
}
}
/**
* Write colour scheme to XML format.
< *
< * @param XMLWriter $objWriter
< *
< * @return string XML Output
*/
< private function writeColourScheme($objWriter)
> private function writeColourScheme(XMLWriter $objWriter, SpreadsheetTheme $theme): void
{
< foreach (self::$colourScheme as $colourName => $colourValue) {
< $objWriter->startElement('a:' . $colourName);
> $themeArray = $theme->getThemeColors();
> // a:dk1
> $objWriter->startElement('a:dk1');
> $objWriter->startElement('a:sysClr');
> $objWriter->writeAttribute('val', 'windowText');
> $objWriter->writeAttribute('lastClr', $themeArray['dk1'] ?? '000000');
> $objWriter->endElement(); // a:sysClr
> $objWriter->endElement(); // a:dk1
> // a:lt1
$objWriter->startElement('a:srgbClr');
> $objWriter->startElement('a:lt1');
$objWriter->writeAttribute('val', $colourValue);
> $objWriter->startElement('a:sysClr');
$objWriter->endElement();
> $objWriter->writeAttribute('val', 'window');
> $objWriter->writeAttribute('lastClr', $themeArray['lt1'] ?? 'FFFFFF');
$objWriter->endElement();
> $objWriter->endElement(); // a:sysClr
}
> $objWriter->endElement(); // a:lt1
}
>
}
> foreach ($themeArray as $colourName => $colourValue) {
> if ($colourName !== 'dk1' && $colourName !== 'lt1') {
> $objWriter->startElement('a:' . $colourName);
< $objWriter->endElement();
<
< $objWriter->endElement();
> $objWriter->endElement(); // a:srgbClr
> $objWriter->endElement(); // a:$colourName
> }