defmodule Pdf.Color do @moduledoc """ A list of predefined colors you can use """ @colors [ {:pink, {0xFF, 0xC0, 0xCB}}, {:light_pink, {0xFF, 0xB6, 0xC1}}, {:hot_pink, {0xFF, 0x69, 0xB4}}, {:deep_pink, {0xFF, 0x14, 0x93}}, {:pale_violet_red, {0xDB, 0x70, 0x93}}, {:medium_violet_red, {0xC7, 0x15, 0x85}}, {:light_salmon, {0xFF, 0xA0, 0x7A}}, {:salmon, {0xFA, 0x80, 0x72}}, {:dark_salmon, {0xE9, 0x96, 0x7A}}, {:light_coral, {0xF0, 0x80, 0x80}}, {:indian_red, {0xCD, 0x5C, 0x5C}}, {:crimson, {0xDC, 0x14, 0x3C}}, {:firebrick, {0xB2, 0x22, 0x22}}, {:dark_red, {0x8B, 0x00, 0x00}}, {:red, {0xFF, 0x00, 0x00}}, {:orange_red, {0xFF, 0x45, 0x00}}, {:tomato, {0xFF, 0x63, 0x47}}, {:coral, {0xFF, 0x7F, 0x50}}, {:dark_orange, {0xFF, 0x8C, 0x00}}, {:orange, {0xFF, 0xA5, 0x00}}, {:yellow, {0xFF, 0xFF, 0x00}}, {:light_yellow, {0xFF, 0xFF, 0xE0}}, {:lemon_chiffon, {0xFF, 0xFA, 0xCD}}, {:light_goldenrod_yellow, {0xFA, 0xFA, 0xD2}}, {:papaya_whip, {0xFF, 0xEF, 0xD5}}, {:moccasin, {0xFF, 0xE4, 0xB5}}, {:peach_puff, {0xFF, 0xDA, 0xB9}}, {:pale_goldenrod, {0xEE, 0xE8, 0xAA}}, {:khaki, {0xF0, 0xE6, 0x8C}}, {:dark_khaki, {0xBD, 0xB7, 0x6B}}, {:gold, {0xFF, 0xD7, 0x00}}, {:cornsilk, {0xFF, 0xF8, 0xDC}}, {:blanched_almond, {0xFF, 0xEB, 0xCD}}, {:bisque, {0xFF, 0xE4, 0xC4}}, {:navajo_white, {0xFF, 0xDE, 0xAD}}, {:wheat, {0xF5, 0xDE, 0xB3}}, {:burlywood, {0xDE, 0xB8, 0x87}}, {:tan, {0xD2, 0xB4, 0x8C}}, {:rosy_brown, {0xBC, 0x8F, 0x8F}}, {:sandy_brown, {0xF4, 0xA4, 0x60}}, {:goldenrod, {0xDA, 0xA5, 0x20}}, {:dark_goldenrod, {0xB8, 0x86, 0x0B}}, {:peru, {0xCD, 0x85, 0x3F}}, {:chocolate, {0xD2, 0x69, 0x1E}}, {:saddle_brown, {0x8B, 0x45, 0x13}}, {:sienna, {0xA0, 0x52, 0x2D}}, {:brown, {0xA5, 0x2A, 0x2A}}, {:maroon, {0x80, 0x00, 0x00}}, {:dark_olive_green, {0x55, 0x6B, 0x2F}}, {:olive, {0x80, 0x80, 0x00}}, {:olive_drab, {0x6B, 0x8E, 0x23}}, {:yellow_green, {0x9A, 0xCD, 0x32}}, {:lime_green, {0x32, 0xCD, 0x32}}, {:lime, {0x00, 0xFF, 0x00}}, {:lawn_green, {0x7C, 0xFC, 0x00}}, {:chartreuse, {0x7F, 0xFF, 0x00}}, {:green_yellow, {0xAD, 0xFF, 0x2F}}, {:spring_green, {0x00, 0xFF, 0x7F}}, {:medium_spring_green, {0x00, 0xFA, 0x9A}}, {:light_green, {0x90, 0xEE, 0x90}}, {:pale_green, {0x98, 0xFB, 0x98}}, {:dark_sea_green, {0x8F, 0xBC, 0x8F}}, {:medium_aquamarine, {0x66, 0xCD, 0xAA}}, {:medium_sea_green, {0x3C, 0xB3, 0x71}}, {:sea_green, {0x2E, 0x8B, 0x57}}, {:forest_green, {0x22, 0x8B, 0x22}}, {:green, {0x00, 0x80, 0x00}}, {:dark_green, {0x00, 0x64, 0x00}}, {:aqua, {0x00, 0xFF, 0xFF}}, {:cyan, {0x00, 0xFF, 0xFF}}, {:light_cyan, {0xE0, 0xFF, 0xFF}}, {:pale_turquoise, {0xAF, 0xEE, 0xEE}}, {:aquamarine, {0x7F, 0xFF, 0xD4}}, {:turquoise, {0x40, 0xE0, 0xD0}}, {:medium_turquoise, {0x48, 0xD1, 0xCC}}, {:dark_turquoise, {0x00, 0xCE, 0xD1}}, {:light_sea_green, {0x20, 0xB2, 0xAA}}, {:cadet_blue, {0x5F, 0x9E, 0xA0}}, {:dark_cyan, {0x00, 0x8B, 0x8B}}, {:teal, {0x00, 0x80, 0x80}}, {:light_steel_blue, {0xB0, 0xC4, 0xDE}}, {:powder_blue, {0xB0, 0xE0, 0xE6}}, {:light_blue, {0xAD, 0xD8, 0xE6}}, {:sky_blue, {0x87, 0xCE, 0xEB}}, {:light_sky_blue, {0x87, 0xCE, 0xFA}}, {:deep_sky_blue, {0x00, 0xBF, 0xFF}}, {:dodger_blue, {0x1E, 0x90, 0xFF}}, {:cornflower_blue, {0x64, 0x95, 0xED}}, {:steel_blue, {0x46, 0x82, 0xB4}}, {:royal_blue, {0x41, 0x69, 0xE1}}, {:blue, {0x00, 0x00, 0xFF}}, {:medium_blue, {0x00, 0x00, 0xCD}}, {:dark_blue, {0x00, 0x00, 0x8B}}, {:navy, {0x00, 0x00, 0x80}}, {:midnight_blue, {0x19, 0x19, 0x70}}, {:lavender, {0xE6, 0xE6, 0xFA}}, {:thistle, {0xD8, 0xBF, 0xD8}}, {:plum, {0xDD, 0xA0, 0xDD}}, {:violet, {0xEE, 0x82, 0xEE}}, {:orchid, {0xDA, 0x70, 0xD6}}, {:fuchsia, {0xFF, 0x00, 0xFF}}, {:magenta, {0xFF, 0x00, 0xFF}}, {:medium_orchid, {0xBA, 0x55, 0xD3}}, {:medium_purple, {0x93, 0x70, 0xDB}}, {:blue_violet, {0x8A, 0x2B, 0xE2}}, {:dark_violet, {0x94, 0x00, 0xD3}}, {:dark_orchid, {0x99, 0x32, 0xCC}}, {:dark_magenta, {0x8B, 0x00, 0x8B}}, {:purple, {0x80, 0x00, 0x80}}, {:indigo, {0x4B, 0x00, 0x82}}, {:dark_slate_blue, {0x48, 0x3D, 0x8B}}, {:slate_blue, {0x6A, 0x5A, 0xCD}}, {:medium_slate_blue, {0x7B, 0x68, 0xEE}}, {:white, {0xFF, 0xFF, 0xFF}}, {:snow, {0xFF, 0xFA, 0xFA}}, {:honeydew, {0xF0, 0xFF, 0xF0}}, {:mint_cream, {0xF5, 0xFF, 0xFA}}, {:azure, {0xF0, 0xFF, 0xFF}}, {:alice_blue, {0xF0, 0xF8, 0xFF}}, {:ghost_white, {0xF8, 0xF8, 0xFF}}, {:white_smoke, {0xF5, 0xF5, 0xF5}}, {:seashell, {0xFF, 0xF5, 0xEE}}, {:beige, {0xF5, 0xF5, 0xDC}}, {:old_lace, {0xFD, 0xF5, 0xE6}}, {:floral_white, {0xFF, 0xFA, 0xF0}}, {:ivory, {0xFF, 0xFF, 0xF0}}, {:antique_white, {0xFA, 0xEB, 0xD7}}, {:linen, {0xFA, 0xF0, 0xE6}}, {:lavender_blush, {0xFF, 0xF0, 0xF5}}, {:misty_rose, {0xFF, 0xE4, 0xE1}}, {:gainsboro, {0xDC, 0xDC, 0xDC}}, {:light_gray, {0xD3, 0xD3, 0xD3}}, {:silver, {0xC0, 0xC0, 0xC0}}, {:dark_gray, {0xA9, 0xA9, 0xA9}}, {:gray, {0x80, 0x80, 0x80}}, {:dim_gray, {0x69, 0x69, 0x69}}, {:light_slate_gray, {0x77, 0x88, 0x99}}, {:slate_gray, {0x70, 0x80, 0x90}}, {:dark_slate_gray, {0x2F, 0x4F, 0x4F}}, {:black, {0x00, 0x00, 0x00}} ] @doc """ This functions returns the `rgb` tuple for the given color. #{Enum.map(@colors, fn {color_name, {r, g, b}} -> "
  • :#{color_name}
  • " end) |> Enum.join("\n")} """ @spec color(Pdf.color_name()) :: Pdf.rgb() Enum.each(@colors, fn {func_name, {r, g, b}} -> def color(unquote(func_name)), do: {unquote(r), unquote(g), unquote(b)} end) def color(color), do: raise(ArgumentError, "Undefined color #{color}") end