diff --git a/docs/changes/1.x/1.5.0.md b/docs/changes/1.x/1.5.0.md index b96865bada..e204a61911 100644 --- a/docs/changes/1.x/1.5.0.md +++ b/docs/changes/1.x/1.5.0.md @@ -11,9 +11,11 @@ ### Miscellaneous - Update phpstan/phpstan requirement from ^0.12.88 || ^1.0.0 to ^0.12.88 || ^1.0.0 || ^2.0.0 by [@dependabot](https://github.com/dependabot) & [@Progi1984](https://github.com/Progi1984) in [#2736](https://github.com/PHPOffice/PHPWord/pull/2736) +- SimpleType: Create Color, adding a variety of preset colors for use anywhere a color is specified by [@rasamassen](https://github.com/rasamassen) in [#2839](https://github.com/PHPOffice/PHPWord/pull/2839) ### Deprecations +- Style > Font deprecate FGCOLOR constants, replaced by SimpleType > Color by [@rasamassen](https://github.com/rasamassen) in [#2839](https://github.com/PHPOffice/PHPWord/pull/2839) ### BC Breaks -### Notes \ No newline at end of file +### Notes diff --git a/docs/usage/simpletypes/color.md b/docs/usage/simpletypes/color.md new file mode 100644 index 0000000000..5086421f75 --- /dev/null +++ b/docs/usage/simpletypes/color.md @@ -0,0 +1,47 @@ +# Colors +When used in [`Styles > Font`](../styles/font.md) to set the `fgColor`, only certain colors may be used, as identified below. + +## Constants +- `AQUA`. +- `BLACK`. Possible `fgColor` option. +- `BLUE`. Possible `fgColor` option. +- `BROWN`. +- `CYAN`. Possible `fgColor` option. +- `DARKBLUE`. Possible `fgColor` option. +- `DARKCYAN`. Possible `fgColor` option. +- `DARKGRAY`. Possible `fgColor` option. +- `DARKGREEN`. Possible `fgColor` option. +- `DARKMAGENTA`. Possible `fgColor` option. +- `DARKORANGE`. +- `DARKRED`. Possible `fgColor` option. +- `DARKVIOLET`. +- `DARKYELLOW`. Possible `fgColor` option. +- `FUCHSIA`. +- `GOLD`. +- `GRAY`. +- `GREEN`. Possible `fgColor` option. +- `LIGHTBLUE`. +- `LIGHTCYAN`. +- `LIGHTGRAY`. Possible `fgColor` option. +- `LIGHTGREEN`. +- `LIGHTPINK`. +- `LIGHTYELLOW`. +- `LIME`. +- `MAGENTA`. Possible `fgColor` option. +- `MAROON`. +- `NAVY`. +- `OLIVE`. +- `ORANGE`. +- `PINK`. +- `PURPLE`. +- `RED`. Possible `fgColor` option. +- `SILVER`. +- `TAN`. +- `TEAL`. +- `TURQUOISE`. +- `VIOLET`. +- `WHITE`. Possible `fgColor` option. +- `YELLOW`. Possible `fgColor` option. + +## Used In +- Anywhere a hexadecimal color can be specified. e.g. *FF0000*. diff --git a/src/PhpWord/Shared/Converter.php b/src/PhpWord/Shared/Converter.php index 17d2e1a05d..cd62b3aeca 100644 --- a/src/PhpWord/Shared/Converter.php +++ b/src/PhpWord/Shared/Converter.php @@ -18,6 +18,9 @@ namespace PhpOffice\PhpWord\Shared; +use PhpOffice\PhpWord\SimpleType\Color; +use PhpOffice\PhpWord\Style\Font as FontColor; + /** * Common converter functions. */ @@ -305,35 +308,117 @@ public static function angleToDegree($angle = 1) public static function stringToRgb($value) { switch ($value) { - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_YELLOW: + case Color::AQUA: + return '00FFFF'; + case Color::BLACK: + return '000000'; + case Color::BLUE: + return '0000FF'; + case Color::BROWN: + return 'A52A2A'; + case Color::CYAN: + return '00FFFF'; + case Color::DARKBLUE: + return '00008B'; + case Color::DARKCYAN: + return '008B8B'; + case Color::DARKGRAY: + return 'A9A9A9'; + case Color::DARKGREEN: + return '006400'; + case Color::DARKMAGENTA: + return '8B008B'; + case Color::DARKORANGE: + return 'FF8C00'; + case Color::DARKRED: + return '8B0000'; + case Color::DARKVIOLET: + return '9400D3'; + case Color::DARKYELLOW: + return '8B8B00'; + case Color::FUCHSIA: + return 'FF00FF'; + case Color::GOLD: + return 'FFD700'; + case Color::GRAY: + return '808080'; + case Color::GREEN: + return '008000'; + case Color::LIGHTBLUE: + return 'ADD8E6'; + case Color::LIGHTCYAN: + return 'E0FFFF'; + case Color::LIGHTGRAY: + return 'D3D3D3'; + case Color::LIGHTGREEN: + return '90EE90'; + case Color::LIGHTPINK: + return 'FFB6C1'; + case Color::LIGHTYELLOW: + return 'FFFFE0'; + case Color::LIME: + return '00FF00'; + case Color::MAGENTA: + return 'FF00FF'; + case Color::MAROON: + return '800000'; + case Color::NAVY: + return '000080'; + case Color::OLIVE: + return '808000'; + case Color::ORANGE: + return 'FFA500'; + case Color::PINK: + return 'FFC0CB'; + case Color::PURPLE: + return '800080'; + case Color::RED: + return 'FF0000'; + case Color::SILVER: + return 'C0C0C0'; + case Color::TAN: + return 'D2B48C'; + case Color::TEAL: + return '008080'; + case Color::TURQUOISE: + return '40E0D0'; + case Color::VIOLET: + return 'EE82EE'; + case Color::WHITE: + return 'FFFFFF'; + case Color::YELLOW: + return 'FFFF00'; + + // deprecated constants + case FontColor::FGCOLOR_YELLOW: return 'FFFF00'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_LIGHTGREEN: + case FontColor::FGCOLOR_LIGHTGREEN: return '90EE90'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_CYAN: + case FontColor::FGCOLOR_CYAN: return '00FFFF'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_MAGENTA: + case FontColor::FGCOLOR_MAGENTA: return 'FF00FF'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_BLUE: + case FontColor::FGCOLOR_BLUE: return '0000FF'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_RED: + case FontColor::FGCOLOR_RED: return 'FF0000'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_DARKBLUE: + case FontColor::FGCOLOR_DARKBLUE: return '00008B'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_DARKCYAN: + case FontColor::FGCOLOR_DARKCYAN: return '008B8B'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_DARKGREEN: + case FontColor::FGCOLOR_DARKGREEN: return '006400'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_DARKMAGENTA: + case FontColor::FGCOLOR_DARKMAGENTA: return '8B008B'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_DARKRED: + case FontColor::FGCOLOR_DARKRED: return '8B0000'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_DARKYELLOW: + case FontColor::FGCOLOR_DARKYELLOW: return '8B8B00'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_DARKGRAY: + case FontColor::FGCOLOR_DARKGRAY: return 'A9A9A9'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_LIGHTGRAY: + case FontColor::FGCOLOR_LIGHTGRAY: return 'D3D3D3'; - case \PhpOffice\PhpWord\Style\Font::FGCOLOR_BLACK: + case FontColor::FGCOLOR_BLACK: return '000000'; } diff --git a/src/PhpWord/SimpleType/Color.php b/src/PhpWord/SimpleType/Color.php new file mode 100644 index 0000000000..33ffb720a1 --- /dev/null +++ b/src/PhpWord/SimpleType/Color.php @@ -0,0 +1,74 @@ +