1818
1919namespace PhpOffice \PhpWord \Shared ;
2020
21+ use PhpOffice \PhpWord \SimpleType \Color ;
22+
2123/**
2224 * Common converter functions.
2325 */
@@ -295,6 +297,49 @@ public static function angleToDegree($angle = 1)
295297 return round ($ angle / self ::DEGREE_TO_ANGLE );
296298 }
297299
300+ private const STRING_TO_RGB = [
301+ Color::AQUA => '00FFFF ' ,
302+ Color::BLACK => '000000 ' ,
303+ Color::BLUE => '0000FF ' ,
304+ Color::BROWN => 'A52A2A ' ,
305+ Color::CYAN => '00FFFF ' ,
306+ Color::DARKBLUE => '00008B ' ,
307+ Color::DARKCYAN => '008B8B ' ,
308+ Color::DARKGRAY => 'A9A9A9 ' ,
309+ Color::DARKGREEN => '006400 ' ,
310+ Color::DARKMAGENTA => '8B008B ' ,
311+ Color::DARKORANGE => 'FF8C00 ' ,
312+ Color::DARKRED => '8B0000 ' ,
313+ Color::DARKVIOLET => '9400D3 ' ,
314+ Color::DARKYELLOW => '808000 ' ,
315+ Color::FUCHSIA => 'FF00FF ' ,
316+ Color::GOLD => 'FFD700 ' ,
317+ Color::GRAY => '808080 ' ,
318+ Color::GREEN => '008000 ' ,
319+ Color::LIGHTBLUE => 'ADD8E6 ' ,
320+ Color::LIGHTCYAN => 'E0FFFF ' ,
321+ Color::LIGHTGRAY => 'D3D3D3 ' ,
322+ Color::LIGHTGREEN => '90EE90 ' ,
323+ Color::LIGHTPINK => 'FFB6C1 ' ,
324+ Color::LIGHTYELLOW => 'FFFFE0 ' ,
325+ Color::LIME => '00FF00 ' ,
326+ Color::MAGENTA => 'FF00FF ' ,
327+ Color::MAROON => '800000 ' ,
328+ Color::NAVY => '000080 ' ,
329+ Color::OLIVE => '808000 ' ,
330+ Color::ORANGE => 'FFA500 ' ,
331+ Color::PINK => 'FFC0CB ' ,
332+ Color::PURPLE => '800080 ' ,
333+ Color::RED => 'FF0000 ' ,
334+ Color::SILVER => 'C0C0C0 ' ,
335+ Color::TAN => 'D2B48C ' ,
336+ Color::TEAL => '008080 ' ,
337+ Color::TURQUOISE => '40E0D0 ' ,
338+ Color::VIOLET => 'EE82EE ' ,
339+ Color::WHITE => 'FFFFFF ' ,
340+ Color::YELLOW => 'FFFF00 ' ,
341+ ];
342+
298343 /**
299344 * Convert colorname as string to RGB.
300345 *
@@ -304,40 +349,7 @@ public static function angleToDegree($angle = 1)
304349 */
305350 public static function stringToRgb ($ value )
306351 {
307- switch ($ value ) {
308- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_YELLOW :
309- return 'FFFF00 ' ;
310- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_LIGHTGREEN :
311- return '90EE90 ' ;
312- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_CYAN :
313- return '00FFFF ' ;
314- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_MAGENTA :
315- return 'FF00FF ' ;
316- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_BLUE :
317- return '0000FF ' ;
318- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_RED :
319- return 'FF0000 ' ;
320- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_DARKBLUE :
321- return '00008B ' ;
322- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_DARKCYAN :
323- return '008B8B ' ;
324- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_DARKGREEN :
325- return '006400 ' ;
326- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_DARKMAGENTA :
327- return '8B008B ' ;
328- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_DARKRED :
329- return '8B0000 ' ;
330- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_DARKYELLOW :
331- return '8B8B00 ' ;
332- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_DARKGRAY :
333- return 'A9A9A9 ' ;
334- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_LIGHTGRAY :
335- return 'D3D3D3 ' ;
336- case \PhpOffice \PhpWord \Style \Font::FGCOLOR_BLACK :
337- return '000000 ' ;
338- }
339-
340- return $ value ;
352+ return self ::STRING_TO_RGB [$ value ] ?? $ value ;
341353 }
342354
343355 /**
0 commit comments