pdf-labels 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. data/History.txt +8 -0
  2. data/LICENCE +38 -0
  3. data/Manifest.txt +141 -0
  4. data/README.txt +72 -0
  5. data/Rakefile +30 -0
  6. data/lib/alias.rb +8 -0
  7. data/lib/glabel_template.rb +36 -0
  8. data/lib/label.rb +52 -0
  9. data/lib/layout.rb +13 -0
  10. data/lib/length_node.rb +47 -0
  11. data/lib/markup.rb +25 -0
  12. data/lib/pdf_label_page.rb +171 -0
  13. data/lib/pdf_labels.rb +6 -0
  14. data/lib/template.rb +37 -0
  15. data/templates/avery-iso-templates.xml +222 -0
  16. data/templates/avery-other-templates.xml +21 -0
  17. data/templates/avery-us-templates.xml +599 -0
  18. data/templates/glabels-2.0.dtd +329 -0
  19. data/templates/misc-iso-templates.xml +434 -0
  20. data/templates/misc-other-templates.xml +21 -0
  21. data/templates/misc-us-templates.xml +183 -0
  22. data/templates/paper-sizes.xml +37 -0
  23. data/templates/zweckform-iso-templates.xml +197 -0
  24. data/test/test_pdf_label_page.rb +91 -0
  25. data/vendor/color.rb +87 -0
  26. data/vendor/color/cmyk.rb +182 -0
  27. data/vendor/color/css.rb +27 -0
  28. data/vendor/color/grayscale.rb +135 -0
  29. data/vendor/color/hsl.rb +130 -0
  30. data/vendor/color/palette.rb +15 -0
  31. data/vendor/color/palette/gimp.rb +107 -0
  32. data/vendor/color/palette/monocontrast.rb +180 -0
  33. data/vendor/color/rgb-colors.rb +189 -0
  34. data/vendor/color/rgb.rb +311 -0
  35. data/vendor/color/rgb/metallic.rb +28 -0
  36. data/vendor/color/yiq.rb +78 -0
  37. data/vendor/pdf/charts.rb +13 -0
  38. data/vendor/pdf/charts/stddev.rb +433 -0
  39. data/vendor/pdf/grid.rb +135 -0
  40. data/vendor/pdf/math.rb +108 -0
  41. data/vendor/pdf/pagenumbers.rb +288 -0
  42. data/vendor/pdf/quickref.rb +331 -0
  43. data/vendor/pdf/simpletable.rb +947 -0
  44. data/vendor/pdf/techbook.rb +901 -0
  45. data/vendor/pdf/writer.rb +2801 -0
  46. data/vendor/pdf/writer/arc4.rb +63 -0
  47. data/vendor/pdf/writer/fontmetrics.rb +202 -0
  48. data/vendor/pdf/writer/fonts/Courier-Bold.afm +342 -0
  49. data/vendor/pdf/writer/fonts/Courier-BoldOblique.afm +342 -0
  50. data/vendor/pdf/writer/fonts/Courier-Oblique.afm +342 -0
  51. data/vendor/pdf/writer/fonts/Courier.afm +342 -0
  52. data/vendor/pdf/writer/fonts/Helvetica-Bold.afm +2827 -0
  53. data/vendor/pdf/writer/fonts/Helvetica-BoldOblique.afm +2827 -0
  54. data/vendor/pdf/writer/fonts/Helvetica-Oblique.afm +3051 -0
  55. data/vendor/pdf/writer/fonts/Helvetica.afm +3051 -0
  56. data/vendor/pdf/writer/fonts/Symbol.afm +213 -0
  57. data/vendor/pdf/writer/fonts/Times-Bold.afm +2588 -0
  58. data/vendor/pdf/writer/fonts/Times-BoldItalic.afm +2384 -0
  59. data/vendor/pdf/writer/fonts/Times-Italic.afm +2667 -0
  60. data/vendor/pdf/writer/fonts/Times-Roman.afm +2419 -0
  61. data/vendor/pdf/writer/fonts/ZapfDingbats.afm +225 -0
  62. data/vendor/pdf/writer/graphics.rb +813 -0
  63. data/vendor/pdf/writer/graphics/imageinfo.rb +365 -0
  64. data/vendor/pdf/writer/lang.rb +44 -0
  65. data/vendor/pdf/writer/lang/en.rb +104 -0
  66. data/vendor/pdf/writer/object.rb +23 -0
  67. data/vendor/pdf/writer/object/action.rb +40 -0
  68. data/vendor/pdf/writer/object/annotation.rb +42 -0
  69. data/vendor/pdf/writer/object/catalog.rb +39 -0
  70. data/vendor/pdf/writer/object/contents.rb +69 -0
  71. data/vendor/pdf/writer/object/destination.rb +40 -0
  72. data/vendor/pdf/writer/object/encryption.rb +53 -0
  73. data/vendor/pdf/writer/object/font.rb +68 -0
  74. data/vendor/pdf/writer/object/fontdescriptor.rb +34 -0
  75. data/vendor/pdf/writer/object/fontencoding.rb +40 -0
  76. data/vendor/pdf/writer/object/image.rb +308 -0
  77. data/vendor/pdf/writer/object/info.rb +79 -0
  78. data/vendor/pdf/writer/object/outline.rb +30 -0
  79. data/vendor/pdf/writer/object/outlines.rb +30 -0
  80. data/vendor/pdf/writer/object/page.rb +195 -0
  81. data/vendor/pdf/writer/object/pages.rb +115 -0
  82. data/vendor/pdf/writer/object/procset.rb +46 -0
  83. data/vendor/pdf/writer/object/viewerpreferences.rb +74 -0
  84. data/vendor/pdf/writer/ohash.rb +58 -0
  85. data/vendor/pdf/writer/oreader.rb +25 -0
  86. data/vendor/pdf/writer/state.rb +48 -0
  87. data/vendor/pdf/writer/strokestyle.rb +140 -0
  88. data/vendor/transaction/simple.rb +693 -0
  89. data/vendor/transaction/simple/group.rb +133 -0
  90. data/vendor/transaction/simple/threadsafe.rb +52 -0
  91. data/vendor/transaction/simple/threadsafe/group.rb +23 -0
  92. data/vendor/xml-mapping/ChangeLog +128 -0
  93. data/vendor/xml-mapping/LICENSE +56 -0
  94. data/vendor/xml-mapping/README +386 -0
  95. data/vendor/xml-mapping/README_XPATH +175 -0
  96. data/vendor/xml-mapping/Rakefile +214 -0
  97. data/vendor/xml-mapping/TODO.txt +32 -0
  98. data/vendor/xml-mapping/doc/xpath_impl_notes.txt +119 -0
  99. data/vendor/xml-mapping/examples/company.rb +34 -0
  100. data/vendor/xml-mapping/examples/company.xml +26 -0
  101. data/vendor/xml-mapping/examples/company_usage.intin.rb +19 -0
  102. data/vendor/xml-mapping/examples/company_usage.intout +39 -0
  103. data/vendor/xml-mapping/examples/order.rb +61 -0
  104. data/vendor/xml-mapping/examples/order.xml +54 -0
  105. data/vendor/xml-mapping/examples/order_signature_enhanced.rb +7 -0
  106. data/vendor/xml-mapping/examples/order_signature_enhanced.xml +9 -0
  107. data/vendor/xml-mapping/examples/order_signature_enhanced_usage.intin.rb +12 -0
  108. data/vendor/xml-mapping/examples/order_signature_enhanced_usage.intout +16 -0
  109. data/vendor/xml-mapping/examples/order_usage.intin.rb +73 -0
  110. data/vendor/xml-mapping/examples/order_usage.intout +147 -0
  111. data/vendor/xml-mapping/examples/time_augm.intin.rb +19 -0
  112. data/vendor/xml-mapping/examples/time_augm.intout +23 -0
  113. data/vendor/xml-mapping/examples/time_node.rb +27 -0
  114. data/vendor/xml-mapping/examples/xpath_create_new.intin.rb +85 -0
  115. data/vendor/xml-mapping/examples/xpath_create_new.intout +181 -0
  116. data/vendor/xml-mapping/examples/xpath_docvsroot.intin.rb +30 -0
  117. data/vendor/xml-mapping/examples/xpath_docvsroot.intout +34 -0
  118. data/vendor/xml-mapping/examples/xpath_ensure_created.intin.rb +62 -0
  119. data/vendor/xml-mapping/examples/xpath_ensure_created.intout +114 -0
  120. data/vendor/xml-mapping/examples/xpath_pathological.intin.rb +42 -0
  121. data/vendor/xml-mapping/examples/xpath_pathological.intout +56 -0
  122. data/vendor/xml-mapping/examples/xpath_usage.intin.rb +51 -0
  123. data/vendor/xml-mapping/examples/xpath_usage.intout +57 -0
  124. data/vendor/xml-mapping/install.rb +40 -0
  125. data/vendor/xml-mapping/lib/xml/mapping.rb +14 -0
  126. data/vendor/xml-mapping/lib/xml/mapping/base.rb +571 -0
  127. data/vendor/xml-mapping/lib/xml/mapping/standard_nodes.rb +343 -0
  128. data/vendor/xml-mapping/lib/xml/mapping/version.rb +8 -0
  129. data/vendor/xml-mapping/lib/xml/xxpath.rb +354 -0
  130. data/vendor/xml-mapping/test/all_tests.rb +6 -0
  131. data/vendor/xml-mapping/test/company.rb +56 -0
  132. data/vendor/xml-mapping/test/documents_folders.rb +33 -0
  133. data/vendor/xml-mapping/test/fixtures/bookmarks1.xml +24 -0
  134. data/vendor/xml-mapping/test/fixtures/company1.xml +85 -0
  135. data/vendor/xml-mapping/test/fixtures/documents_folders.xml +71 -0
  136. data/vendor/xml-mapping/test/fixtures/documents_folders2.xml +30 -0
  137. data/vendor/xml-mapping/test/multiple_mappings.rb +80 -0
  138. data/vendor/xml-mapping/test/tests_init.rb +2 -0
  139. data/vendor/xml-mapping/test/xml_mapping_adv_test.rb +84 -0
  140. data/vendor/xml-mapping/test/xml_mapping_test.rb +201 -0
  141. data/vendor/xml-mapping/test/xpath_test.rb +273 -0
  142. metadata +191 -0
@@ -0,0 +1,15 @@
1
+ #--
2
+ # Colour management with Ruby.
3
+ #
4
+ # Copyright 2005 Austin Ziegler
5
+ # http://rubyforge.org/ruby-pdf/
6
+ #
7
+ # Licensed under a MIT-style licence.
8
+ #
9
+ # $Id: palette.rb,v 1.2 2005/08/05 23:07:20 austin Exp $
10
+ #++
11
+
12
+ require 'color'
13
+
14
+ module Color::Palette
15
+ end
@@ -0,0 +1,107 @@
1
+ #--
2
+ # Colour management with Ruby.
3
+ #
4
+ # Copyright 2005 Austin Ziegler
5
+ # http://rubyforge.org/ruby-pdf/
6
+ #
7
+ # Licensed under a MIT-style licence.
8
+ #
9
+ # $Id: gimp.rb,v 1.3 2005/08/08 02:44:17 austin Exp $
10
+ #++
11
+
12
+ require 'color/palette'
13
+
14
+ # A class that can read a GIMP (GNU Image Manipulation Program) palette
15
+ # file and provide a Hash-like interface to the contents. GIMP colour
16
+ # palettes are RGB values only.
17
+ #
18
+ # Because two or more entries in a GIMP palette may have the same name,
19
+ # all named entries are returned as an array.
20
+ #
21
+ # pal = Color::Palette::Gimp.from_file(my_gimp_palette)
22
+ # pal[0] => Color::RGB<...>
23
+ # pal["white"] => [ Color::RGB<...> ]
24
+ # pal["unknown"] => [ Color::RGB<...>, Color::RGB<...>, ... ]
25
+ #
26
+ # GIMP Palettes are always indexable by insertion order (an integer key).
27
+ class Color::Palette::Gimp
28
+ include Enumerable
29
+
30
+ class << self
31
+ # Create a GIMP palette object from the named file.
32
+ def from_file(filename)
33
+ File.open(filename, "rb") { |io| Color::Palette::Gimp.from_io(io) }
34
+ end
35
+
36
+ # Create a GIMP palette object from the provided IO.
37
+ def from_io(io)
38
+ Color::Palette::Gimp.new(io.read)
39
+ end
40
+ end
41
+
42
+ # Create a new GIMP palette.
43
+ def initialize(palette)
44
+ @colors = []
45
+ @names = {}
46
+ @valid = false
47
+ @name = "(unnamed)"
48
+
49
+ index = 0
50
+
51
+ palette.split($/).each do |line|
52
+ line.chomp!
53
+ line.gsub!(/\s*#.*\Z/, '')
54
+
55
+ next if line.empty?
56
+
57
+ if line =~ /\AGIMP Palette\Z/
58
+ @valid = true
59
+ next
60
+ end
61
+
62
+ info = /(\w+):\s(.*$)/.match(line)
63
+ if info
64
+ @name = info.captures[1] if info.captures[0] =~ /name/i
65
+ next
66
+ end
67
+
68
+ line.gsub!(/^\s+/, '')
69
+ data = line.split(/\s+/, 4)
70
+ name = data.pop.strip
71
+ data.map! { |el| el.to_i }
72
+
73
+ color = Color::RGB.new(*data)
74
+
75
+ @colors[index] = color
76
+ @names[name] ||= []
77
+ @names[name] << color
78
+
79
+ index += 1
80
+ end
81
+ end
82
+
83
+ def [](key)
84
+ if key.kind_of?(Numeric)
85
+ @colors[key]
86
+ else
87
+ @names[key]
88
+ end
89
+ end
90
+
91
+ # Loops through each colour.
92
+ def each
93
+ @colors.each { |el| yield el }
94
+ end
95
+
96
+ # Loops through each named colour set.
97
+ def each_name #:yields color_name, color_set:#
98
+ @names.each { |color_name, color_set| yield color_name, color_set }
99
+ end
100
+
101
+ # Returns true if this is believed to be a valid GIMP palette.
102
+ def valid?
103
+ @valid
104
+ end
105
+
106
+ attr_reader :name
107
+ end
@@ -0,0 +1,180 @@
1
+ #--
2
+ # Colour management with Ruby.
3
+ #
4
+ # Copyright 2005 Austin Ziegler
5
+ # http://rubyforge.org/ruby-pdf/
6
+ #
7
+ # Licensed under a MIT-style licence.
8
+ #
9
+ # $Id: monocontrast.rb,v 1.3 2005/08/08 02:44:17 austin Exp $
10
+ #++
11
+
12
+ require 'color/palette'
13
+
14
+ # Generates a monochromatic constrasting colour palette for background and
15
+ # foreground. What does this mean?
16
+ #
17
+ # Monochromatic: A single colour is used to generate the base palette, and
18
+ # this colour is lightened five times and darkened five times to provide
19
+ # eleven distinct colours.
20
+ #
21
+ # Contrasting: The foreground is also generated as a monochromatic colour
22
+ # palettte; however, all generated colours are tested to see that they are
23
+ # appropriately contrasting to ensure maximum readability of the
24
+ # foreground against the background.
25
+ class Color::Palette::MonoContrast
26
+ # Hash of CSS background colour values.
27
+ #
28
+ # This is always 11 values:
29
+ #
30
+ # 0:: The starting colour.
31
+ # +1..+5:: Lighter colours.
32
+ # -1..-5:: Darker colours.
33
+ attr_reader :background
34
+ # Hash of CSS foreground colour values.
35
+ #
36
+ # This is always 11 values:
37
+ #
38
+ # 0:: The starting colour.
39
+ # +1..+5:: Lighter colours.
40
+ # -1..-5:: Darker colours.
41
+ attr_reader :foreground
42
+
43
+ DEFAULT_MINIMUM_BRIGHTNESS_DIFF = (125.0 / 255.0)
44
+
45
+ # The minimum brightness difference between the background and the
46
+ # foreground, and must be between 0..1. Setting this value will
47
+ # regenerate the palette based on the base colours. The default value
48
+ # for this is 125 / 255.0. If this value is set to +nil+, it will be
49
+ # restored to the default.
50
+ attr_accessor :minimum_brightness_diff
51
+ remove_method :minimum_brightness_diff= ;
52
+ def minimum_brightness_diff=(bd) #:nodoc:
53
+ if bd.nil?
54
+ @minimum_brightness_diff = DEFAULT_MINIMUM_BRIGHTNESS_DIFF
55
+ elsif bd > 1.0
56
+ @minimum_brightness_diff = 1.0
57
+ elsif bd < 0.0
58
+ @minimum_brightness_diff = 0.0
59
+ else
60
+ @minimum_brightness_diff = bd
61
+ end
62
+
63
+ regenerate(@background[0], @foreground[0])
64
+ end
65
+
66
+ DEFAULT_MINIMUM_COLOR_DIFF = (500.0 / 255.0)
67
+
68
+ # The minimum colour difference between the background and the
69
+ # foreground, and must be between 0..3. Setting this value will
70
+ # regenerate the palette based on the base colours. The default value
71
+ # for this is 500 / 255.0.
72
+ attr_accessor :minimum_color_diff
73
+ remove_method :minimum_color_diff= ;
74
+ def minimum_color_diff=(cd) #:noco:
75
+ if cd.nil?
76
+ @minimum_color_diff = DEFAULT_MINIMUM_COLOR_DIFF
77
+ elsif cd > 3.0
78
+ @minimum_color_diff = 3.0
79
+ elsif cd < 0.0
80
+ @minimum_color_diff = 0.0
81
+ else
82
+ @minimum_color_diff = cd
83
+ end
84
+ regenerate(@background[0], @foreground[0])
85
+ end
86
+
87
+ # Generate the initial palette.
88
+ def initialize(background, foreground = nil)
89
+ @minimum_brightness_diff = DEFAULT_MINIMUM_BRIGHTNESS_DIFF
90
+ @minimum_color_diff = DEFAULT_MINIMUM_COLOR_DIFF
91
+
92
+ regenerate(background, foreground)
93
+ end
94
+
95
+ # Generate the colour palettes.
96
+ def regenerate(background, foreground = nil)
97
+ foreground ||= background
98
+ background = background.to_rgb
99
+ foreground = foreground.to_rgb
100
+
101
+ @background = {}
102
+ @foreground = {}
103
+
104
+ @background[-5] = background.darken_by(10)
105
+ @background[-4] = background.darken_by(25)
106
+ @background[-3] = background.darken_by(50)
107
+ @background[-2] = background.darken_by(75)
108
+ @background[-1] = background.darken_by(85)
109
+ @background[ 0] = background
110
+ @background[+1] = background.lighten_by(85)
111
+ @background[+2] = background.lighten_by(75)
112
+ @background[+3] = background.lighten_by(50)
113
+ @background[+4] = background.lighten_by(25)
114
+ @background[+5] = background.lighten_by(10)
115
+
116
+ @foreground[-5] = calculate_foreground(@background[-5], foreground)
117
+ @foreground[-4] = calculate_foreground(@background[-4], foreground)
118
+ @foreground[-3] = calculate_foreground(@background[-3], foreground)
119
+ @foreground[-2] = calculate_foreground(@background[-2], foreground)
120
+ @foreground[-1] = calculate_foreground(@background[-1], foreground)
121
+ @foreground[ 0] = calculate_foreground(@background[ 0], foreground)
122
+ @foreground[+1] = calculate_foreground(@background[+1], foreground)
123
+ @foreground[+2] = calculate_foreground(@background[+2], foreground)
124
+ @foreground[+3] = calculate_foreground(@background[+3], foreground)
125
+ @foreground[+4] = calculate_foreground(@background[+4], foreground)
126
+ @foreground[+5] = calculate_foreground(@background[+5], foreground)
127
+ end
128
+
129
+ # Given a background colour and a foreground colour, modifies the
130
+ # foreground colour so that it will have enough contrast to be seen
131
+ # against the background colour.
132
+ #
133
+ # Uses #mininum_brightness_diff and #minimum_color_diff.
134
+ def calculate_foreground(background, foreground)
135
+ nfg = nil
136
+ # Loop through brighter and darker versions of the foreground color.
137
+ # The numbers here represent the amount of foreground color to mix
138
+ # with black and white.
139
+ [100, 75, 50, 25, 0].each do |percent|
140
+ dfg = foreground.darken_by(percent)
141
+ lfg = foreground.lighten_by(percent)
142
+
143
+ dbd = brightness_diff(background, dfg)
144
+ lbd = brightness_diff(background, lfg)
145
+
146
+ if lbd > dbd
147
+ nfg = lfg
148
+ nbd = lbd
149
+ else
150
+ nfg = dfg
151
+ nbd = dbd
152
+ end
153
+
154
+ ncd = color_diff(background, nfg)
155
+
156
+ break if nbd >= @minimum_brightness_diff and ncd >= @minimum_color_diff
157
+ end
158
+ nfg
159
+ end
160
+
161
+ # Returns the absolute difference between the brightness levels of two
162
+ # colours. This will be a decimal value between 0 and 1. W3C
163
+ # accessibility guidelines for colour
164
+ # contrast[http://www.w3.org/TR/AERT#color-contrast] suggest that this
165
+ # value be at least approximately 0.49 (125 / 255.0) for proper contrast.
166
+ def brightness_diff(c1, c2)
167
+ (c1.brightness - c2.brightness).abs
168
+ end
169
+
170
+ # Returns the contrast between to colours, a decimal value between 0 and
171
+ # 3. W3C accessibility guidelines for colour
172
+ # contrast[http://www.w3.org/TR/AERT#color-contrast] suggest that this
173
+ # value be at least approximately 1.96 (500 / 255.0) for proper contrast.
174
+ def color_diff(c1, c2)
175
+ r = (c1.r - c2.r).abs
176
+ g = (c1.g - c2.g).abs
177
+ b = (c1.b - c2.b).abs
178
+ r + g + b
179
+ end
180
+ end
@@ -0,0 +1,189 @@
1
+ #--
2
+ # Colour management with Ruby.
3
+ #
4
+ # Copyright 2005 Austin Ziegler
5
+ # http://rubyforge.org/ruby-pdf/
6
+ #
7
+ # Licensed under a MIT-style licence.
8
+ #
9
+ # $Id: rgb-colors.rb,v 1.1 2005/08/05 23:07:20 austin Exp $
10
+ #++
11
+
12
+ class Color::RGB
13
+ AliceBlue = Color::RGB.new(0xf0, 0xf8, 0xff).freeze
14
+ AntiqueWhite = Color::RGB.new(0xfa, 0xeb, 0xd7).freeze
15
+ Aqua = Color::RGB.new(0x00, 0xff, 0xff).freeze
16
+ Aquamarine = Color::RGB.new(0x7f, 0xff, 0xd4).freeze
17
+ Azure = Color::RGB.new(0xf0, 0xff, 0xff).freeze
18
+ Beige = Color::RGB.new(0xf5, 0xf5, 0xdc).freeze
19
+ Bisque = Color::RGB.new(0xff, 0xe4, 0xc4).freeze
20
+ Black = Color::RGB.new(0, 0, 0).freeze
21
+ BlanchedAlmond = Color::RGB.new(0xff, 0xeb, 0xcd).freeze
22
+ Blue = Color::RGB.new(0x00, 0x00, 0xff).freeze
23
+ BlueViolet = Color::RGB.new(0x8a, 0x2b, 0xe2).freeze
24
+ Brown = Color::RGB.new(0xa5, 0x2a, 0x2a).freeze
25
+ Burlywood = Color::RGB.new(0xde, 0xb8, 0x87).freeze
26
+ BurlyWood = Burlywood
27
+ CadetBlue = Color::RGB.new(0x5f, 0x9e, 0xa0).freeze
28
+ Chartreuse = Color::RGB.new(0x7f, 0xff, 0x00).freeze
29
+ Chocolate = Color::RGB.new(0xd2, 0x69, 0x1e).freeze
30
+ Coral = Color::RGB.new(0xff, 0x7f, 0x50).freeze
31
+ CornflowerBlue = Color::RGB.new(0x64, 0x95, 0xed).freeze
32
+ Cornsilk = Color::RGB.new(0xff, 0xf8, 0xdc).freeze
33
+ Crimson = Color::RGB.new(0xdc, 0x14, 0x3c).freeze
34
+ Cyan = Color::RGB.new(0x00, 0xff, 0xff).freeze
35
+ DarkBlue = Color::RGB.new(0x00, 0x00, 0x8b).freeze
36
+ DarkCyan = Color::RGB.new(0x00, 0x8b, 0x8b).freeze
37
+ DarkGoldenrod = Color::RGB.new(0xb8, 0x86, 0x0b).freeze
38
+ DarkGoldenRod = DarkGoldenrod
39
+ DarkGray = Color::RGB.new(0xa9, 0xa9, 0xa9).freeze
40
+ DarkGreen = Color::RGB.new(0x00, 0x64, 0x00).freeze
41
+ DarkGrey = DarkGray
42
+ DarkKhaki = Color::RGB.new(0xbd, 0xb7, 0x6b).freeze
43
+ DarkMagenta = Color::RGB.new(0x8b, 0x00, 0x8b).freeze
44
+ DarkoliveGreen = Color::RGB.new(0x55, 0x6b, 0x2f).freeze
45
+ DarkOliveGreen = DarkoliveGreen
46
+ Darkorange = Color::RGB.new(0xff, 0x8c, 0x00).freeze
47
+ DarkOrange = Darkorange
48
+ DarkOrchid = Color::RGB.new(0x99, 0x32, 0xcc).freeze
49
+ DarkRed = Color::RGB.new(0x8b, 0x00, 0x00).freeze
50
+ Darksalmon = Color::RGB.new(0xe9, 0x96, 0x7a).freeze
51
+ DarkSalmon = Darksalmon
52
+ DarkSeaGreen = Color::RGB.new(0x8f, 0xbc, 0x8f).freeze
53
+ DarkSlateBlue = Color::RGB.new(0x48, 0x3d, 0x8b).freeze
54
+ DarkSlateGray = Color::RGB.new(0x2f, 0x4f, 0x4f).freeze
55
+ DarkSlateGrey = DarkSlateGray
56
+ DarkTurquoise = Color::RGB.new(0x00, 0xce, 0xd1).freeze
57
+ DarkViolet = Color::RGB.new(0x94, 0x00, 0xd3).freeze
58
+ DeepPink = Color::RGB.new(0xff, 0x14, 0x93).freeze
59
+ DeepSkyBlue = Color::RGB.new(0x00, 0xbf, 0xbf).freeze
60
+ DimGray = Color::RGB.new(0x69, 0x69, 0x69).freeze
61
+ DimGrey = DimGray
62
+ DodgerBlue = Color::RGB.new(0x1e, 0x90, 0xff).freeze
63
+ Feldspar = Color::RGB.new(0xd1, 0x92, 0x75).freeze
64
+ Firebrick = Color::RGB.new(0xb2, 0x22, 0x22).freeze
65
+ FireBrick = Firebrick
66
+ FloralWhite = Color::RGB.new(0xff, 0xfa, 0xf0).freeze
67
+ ForestGreen = Color::RGB.new(0x22, 0x8b, 0x22).freeze
68
+ Fuchsia = Color::RGB.new(0xff, 0x00, 0xff).freeze
69
+ Gainsboro = Color::RGB.new(0xdc, 0xdc, 0xdc).freeze
70
+ GhostWhite = Color::RGB.new(0xf8, 0xf8, 0xff).freeze
71
+ Gold = Color::RGB.new(0xff, 0xd7, 0x00).freeze
72
+ Goldenrod = Color::RGB.new(0xda, 0xa5, 0x20).freeze
73
+ GoldenRod = Goldenrod
74
+ Gray = Color::RGB.new(0x80, 0x80, 0x80).freeze
75
+ Green = Color::RGB.new(0x00, 0x80, 0x00).freeze
76
+ GreenYellow = Color::RGB.new(0xad, 0xff, 0x2f).freeze
77
+ Grey = Gray
78
+ Honeydew = Color::RGB.new(0xf0, 0xff, 0xf0).freeze
79
+ HoneyDew = Honeydew
80
+ HotPink = Color::RGB.new(0xff, 0x69, 0xb4).freeze
81
+ IndianRed = Color::RGB.new(0xcd, 0x5c, 0x5c).freeze
82
+ Indigo = Color::RGB.new(0x4b, 0x00, 0x82).freeze
83
+ Ivory = Color::RGB.new(0xff, 0xff, 0xf0).freeze
84
+ Khaki = Color::RGB.new(0xf0, 0xe6, 0x8c).freeze
85
+ Lavender = Color::RGB.new(0xe6, 0xe6, 0xfa).freeze
86
+ LavenderBlush = Color::RGB.new(0xff, 0xf0, 0xf5).freeze
87
+ LawnGreen = Color::RGB.new(0x7c, 0xfc, 0x00).freeze
88
+ LemonChiffon = Color::RGB.new(0xff, 0xfa, 0xcd).freeze
89
+ LightBlue = Color::RGB.new(0xad, 0xd8, 0xe6).freeze
90
+ LightCoral = Color::RGB.new(0xf0, 0x80, 0x80).freeze
91
+ LightCyan = Color::RGB.new(0xe0, 0xff, 0xff).freeze
92
+ LightGoldenrodYellow = Color::RGB.new(0xfa, 0xfa, 0xd2).freeze
93
+ LightGoldenRodYellow = LightGoldenrodYellow
94
+ LightGray = Color::RGB.new(0xd3, 0xd3, 0xd3).freeze
95
+ LightGreen = Color::RGB.new(0x90, 0xee, 0x90).freeze
96
+ LightGrey = LightGray
97
+ LightPink = Color::RGB.new(0xff, 0xb6, 0xc1).freeze
98
+ Lightsalmon = Color::RGB.new(0xff, 0xa0, 0x7a).freeze
99
+ LightSalmon = Lightsalmon
100
+ LightSeaGreen = Color::RGB.new(0x20, 0xb2, 0xaa).freeze
101
+ LightSkyBlue = Color::RGB.new(0x87, 0xce, 0xfa).freeze
102
+ LightSlateBlue = Color::RGB.new(0x84, 0x70, 0xff).freeze
103
+ LightSlateGray = Color::RGB.new(0x77, 0x88, 0x99).freeze
104
+ LightSlateGrey = LightSlateGray
105
+ LightsteelBlue = Color::RGB.new(0xb0, 0xc4, 0xde).freeze
106
+ LightSteelBlue = LightsteelBlue
107
+ LightYellow = Color::RGB.new(0xff, 0xff, 0xe0).freeze
108
+ Lime = Color::RGB.new(0x00, 0xff, 0x00).freeze
109
+ LimeGreen = Color::RGB.new(0x32, 0xcd, 0x32).freeze
110
+ Linen = Color::RGB.new(0xfa, 0xf0, 0xe6).freeze
111
+ Magenta = Color::RGB.new(0xff, 0x00, 0xff).freeze
112
+ Maroon = Color::RGB.new(0x80, 0x00, 0x00).freeze
113
+ MediumAquamarine = Color::RGB.new(0x66, 0xcd, 0xaa).freeze
114
+ MediumAquaMarine = MediumAquamarine
115
+ MediumBlue = Color::RGB.new(0x00, 0x00, 0xcd).freeze
116
+ MediumOrchid = Color::RGB.new(0xba, 0x55, 0xd3).freeze
117
+ MediumPurple = Color::RGB.new(0x93, 0x70, 0xdb).freeze
118
+ MediumSeaGreen = Color::RGB.new(0x3c, 0xb3, 0x71).freeze
119
+ MediumSlateBlue = Color::RGB.new(0x7b, 0x68, 0xee).freeze
120
+ MediumSpringGreen = Color::RGB.new(0x00, 0xfa, 0x9a).freeze
121
+ MediumTurquoise = Color::RGB.new(0x48, 0xd1, 0xcc).freeze
122
+ MediumVioletRed = Color::RGB.new(0xc7, 0x15, 0x85).freeze
123
+ MidnightBlue = Color::RGB.new(0x19, 0x19, 0x70).freeze
124
+ MintCream = Color::RGB.new(0xf5, 0xff, 0xfa).freeze
125
+ MistyRose = Color::RGB.new(0xff, 0xe4, 0xe1).freeze
126
+ Moccasin = Color::RGB.new(0xff, 0xe4, 0xb5).freeze
127
+ NavajoWhite = Color::RGB.new(0xff, 0xde, 0xad).freeze
128
+ Navy = Color::RGB.new(0x00, 0x00, 0x80).freeze
129
+ OldLace = Color::RGB.new(0xfd, 0xf5, 0xe6).freeze
130
+ Olive = Color::RGB.new(0x80, 0x80, 0x00).freeze
131
+ Olivedrab = Color::RGB.new(0x6b, 0x8e, 0x23).freeze
132
+ OliveDrab = Olivedrab
133
+ Orange = Color::RGB.new(0xff, 0xa5, 0x00).freeze
134
+ OrangeRed = Color::RGB.new(0xff, 0x45, 0x00).freeze
135
+ Orchid = Color::RGB.new(0xda, 0x70, 0xd6).freeze
136
+ PaleGoldenrod = Color::RGB.new(0xee, 0xe8, 0xaa).freeze
137
+ PaleGoldenRod = PaleGoldenrod
138
+ PaleGreen = Color::RGB.new(0x98, 0xfb, 0x98).freeze
139
+ PaleTurquoise = Color::RGB.new(0xaf, 0xee, 0xee).freeze
140
+ PaleVioletRed = Color::RGB.new(0xdb, 0x70, 0x93).freeze
141
+ PapayaWhip = Color::RGB.new(0xff, 0xef, 0xd5).freeze
142
+ Peachpuff = Color::RGB.new(0xff, 0xda, 0xb9).freeze
143
+ PeachPuff = Peachpuff
144
+ Peru = Color::RGB.new(0xcd, 0x85, 0x3f).freeze
145
+ Pink = Color::RGB.new(0xff, 0xc0, 0xcb).freeze
146
+ Plum = Color::RGB.new(0xdd, 0xa0, 0xdd).freeze
147
+ PowderBlue = Color::RGB.new(0xb0, 0xe0, 0xe6).freeze
148
+ Purple = Color::RGB.new(0x80, 0x00, 0x80).freeze
149
+ Red = Color::RGB.new(0xff, 0x00, 0x00).freeze
150
+ RosyBrown = Color::RGB.new(0xbc, 0x8f, 0x8f).freeze
151
+ RoyalBlue = Color::RGB.new(0x41, 0x69, 0xe1).freeze
152
+ SaddleBrown = Color::RGB.new(0x8b, 0x45, 0x13).freeze
153
+ Salmon = Color::RGB.new(0xfa, 0x80, 0x72).freeze
154
+ SandyBrown = Color::RGB.new(0xf4, 0xa4, 0x60).freeze
155
+ SeaGreen = Color::RGB.new(0x2e, 0x8b, 0x57).freeze
156
+ Seashell = Color::RGB.new(0xff, 0xf5, 0xee).freeze
157
+ SeaShell = Seashell
158
+ Sienna = Color::RGB.new(0xa0, 0x52, 0x2d).freeze
159
+ Silver = Color::RGB.new(0xc0, 0xc0, 0xc0).freeze
160
+ SkyBlue = Color::RGB.new(0x87, 0xce, 0xeb).freeze
161
+ SlateBlue = Color::RGB.new(0x6a, 0x5a, 0xcd).freeze
162
+ SlateGray = Color::RGB.new(0x70, 0x80, 0x90).freeze
163
+ SlateGrey = SlateGray
164
+ Snow = Color::RGB.new(0xff, 0xfa, 0xfa).freeze
165
+ SpringGreen = Color::RGB.new(0x00, 0xff, 0x7f).freeze
166
+ SteelBlue = Color::RGB.new(0x46, 0x82, 0xb4).freeze
167
+ Tan = Color::RGB.new(0xd2, 0xb4, 0x8c).freeze
168
+ Teal = Color::RGB.new(0x00, 0x80, 0x80).freeze
169
+ Thistle = Color::RGB.new(0xd8, 0xbf, 0xd8).freeze
170
+ Tomato = Color::RGB.new(0xff, 0x63, 0x47).freeze
171
+ Turquoise = Color::RGB.new(0x40, 0xe0, 0xd0).freeze
172
+ Violet = Color::RGB.new(0xee, 0x82, 0xee).freeze
173
+ VioletRed = Color::RGB.new(0xd0, 0x20, 0x90).freeze
174
+ Wheat = Color::RGB.new(0xf5, 0xde, 0xb3).freeze
175
+ White = Color::RGB.new(0xff, 0xff, 0xff).freeze
176
+ WhiteSmoke = Color::RGB.new(0xf5, 0xf5, 0xf5).freeze
177
+ Yellow = Color::RGB.new(0xff, 0xff, 0x00).freeze
178
+ YellowGreen = Color::RGB.new(0x9a, 0xcd, 0x32).freeze
179
+
180
+ Gray10 = Grey10 = Color::RGB.from_percentage(10, 10, 10).freeze
181
+ Gray20 = Grey20 = Color::RGB.from_percentage(20, 20, 20).freeze
182
+ Gray30 = Grey30 = Color::RGB.from_percentage(30, 30, 30).freeze
183
+ Gray40 = Grey40 = Color::RGB.from_percentage(40, 40, 40).freeze
184
+ Gray50 = Grey50 = Color::RGB.from_percentage(50, 50, 50).freeze
185
+ Gray60 = Grey60 = Color::RGB.from_percentage(60, 60, 60).freeze
186
+ Gray70 = Grey70 = Color::RGB.from_percentage(70, 70, 70).freeze
187
+ Gray80 = Grey80 = Color::RGB.from_percentage(80, 80, 80).freeze
188
+ Gray90 = Grey90 = Color::RGB.from_percentage(90, 90, 90).freeze
189
+ end