Prawn::Graphics::Color

Constants

COLOR_SPACES

Public Instance Methods

fill_color(*color) click to toggle source

Sets or returns the fill color.

When called with no argument, it returns the current fill color.

If a single argument is provided, it should be a 6 digit HTML color code.

  pdf.fill_color "f0ffc1"

If 4 arguments are provided, the color is assumed to be a CMYK value Values range from 0 - 100.

  pdf.fill_color 0, 99, 95, 0
    # File lib/prawn/graphics/color.rb, line 27
27:       def fill_color(*color)
28:         return @fill_color if color.empty?
29:         @fill_color = process_color(*color)
30:         set_fill_color
31:       end
Also aliased as: fill_color=
fill_color=(*color) click to toggle source
Alias for: fill_color
hex2rgb(hex) click to toggle source

Converts hex string into RGB value array:

 >> Prawn::Graphics::Color.hex2rgb("ff7808")
 => [255, 120, 8]
    # File lib/prawn/graphics/color.rb, line 93
93:       def hex2rgb(hex)
94:         r,g,b = hex[0..1], hex[2..3], hex[4..5]
95:         [r,g,b].map { |e| e.to_i(16) }
96:       end
method_missing(id,*args,&block) click to toggle source

Provides the following shortcuts:

   stroke_some_method(*args) #=> some_method(*args); stroke
   fill_some_method(*args) #=> some_method(*args); fill
   fill_and_stroke_some_method(*args) #=> some_method(*args); fill_and_stroke
    # File lib/prawn/graphics/color.rb, line 63
63:       def method_missing(id,*args,&block)
64:         case(id.to_s)
65:         when /^fill_and_stroke_(.*)/
66:           send($1,*args,&block); fill_and_stroke
67:         when /^stroke_(.*)/
68:           send($1,*args,&block); stroke
69:         when /^fill_(.*)/
70:           send($1,*args,&block); fill
71:         else
72:           super
73:         end
74:       end
rgb2hex(rgb) click to toggle source

Converts RGB value array to hex string suitable for use with fill_color and stroke_color

  >> Prawn::Graphics::Color.rgb2hex([255,120,8])
  => "ff7808"
    # File lib/prawn/graphics/color.rb, line 84
84:       def rgb2hex(rgb)
85:         rgb.map { |e| "%02x" % e }.join
86:       end
stroke_color(*color) click to toggle source

Sets or returns the line stroking color.

When called with no argument, it returns the current stroking color.

If a single argument is provided, it should be a 6 digit HTML color code.

  pdf.stroke_color "f0ffc1"

If 4 arguments are provided, the color is assumed to be a CMYK value Values range from 0 - 100.

  pdf.stroke_color 0, 99, 95, 0
    # File lib/prawn/graphics/color.rb, line 49
49:       def stroke_color(*color)
50:         return @stroke_color if color.empty?
51:         @stroke_color = process_color(*color)
52:         set_stroke_color
53:       end
Also aliased as: stroke_color=
stroke_color=(*color) click to toggle source
Alias for: stroke_color

Private Instance Methods

color_space(color) click to toggle source
     # File lib/prawn/graphics/color.rb, line 135
135:       def color_space(color)
136:         case color_type(color)
137:         when :RGB
138:           :DeviceRGB
139:         when :CMYK
140:           :DeviceCMYK
141:         end
142:       end
color_to_s(color) click to toggle source
     # File lib/prawn/graphics/color.rb, line 131
131:       def color_to_s(color)
132:         normalize_color(color).map { |c| '%.3f' % c }.join(' ')
133:       end
color_type(color) click to toggle source
     # File lib/prawn/graphics/color.rb, line 111
111:       def color_type(color)
112:         case color
113:         when String
114:           :RGB
115:         when Array
116:           :CMYK
117:         end
118:       end
normalize_color(color) click to toggle source
     # File lib/prawn/graphics/color.rb, line 120
120:       def normalize_color(color)
121:         case color_type(color)
122:         when :RGB
123:           r,g,b = hex2rgb(color)
124:           [r / 255.0, g / 255.0, b / 255.0]
125:         when :CMYK
126:           c,m,y,k = *color
127:           [c / 100.0, m / 100.0, y / 100.0, k / 100.0]
128:         end
129:       end
process_color(*color) click to toggle source
     # File lib/prawn/graphics/color.rb, line 100
100:       def process_color(*color)
101:         case(color.size)
102:         when 1
103:           color[0]
104:         when 4
105:           color
106:         else
107:           raise ArgumentError, 'wrong number of arguments supplied'
108:         end
109:       end
set_color(type, color, options = {}) click to toggle source
     # File lib/prawn/graphics/color.rb, line 167
167:       def set_color(type, color, options = {})
168:         operator = case type
169:         when :fill
170:           'scn'
171:         when :stroke
172:           'SCN'
173:         else
174:           raise ArgumentError, "unknown type '#{type}'"
175:         end
176: 
177:         if options[:pattern]
178:           set_color_space type, :Pattern
179:           add_content "/#{color} #{operator}"
180:         else
181:           set_color_space type, color_space(color)
182:           color = color_to_s(color)
183:           add_content "#{color} #{operator}"
184:         end
185:       end
set_color_space(type, color_space) click to toggle source
     # File lib/prawn/graphics/color.rb, line 146
146:       def set_color_space(type, color_space)
147:         # don't set the same color space again
148:         return if @color_space[type] == color_space
149:         @color_space[type] = color_space
150: 
151:         unless COLOR_SPACES.include?(color_space)
152:           raise ArgumentError, "unknown color space: '#{color_space}'"
153:         end
154: 
155:         operator = case type
156:         when :fill
157:           'cs'
158:         when :stroke
159:           'CS'
160:         else
161:           raise ArgumentError, "unknown type '#{type}'"
162:         end
163: 
164:         add_content "/#{color_space} #{operator}"
165:       end
set_fill_color() click to toggle source
     # File lib/prawn/graphics/color.rb, line 187
187:       def set_fill_color
188:         set_color :fill, @fill_color
189:       end
set_stroke_color() click to toggle source
     # File lib/prawn/graphics/color.rb, line 191
191:       def set_stroke_color
192:         set_color :stroke, @stroke_color
193:       end
update_colors() click to toggle source
     # File lib/prawn/graphics/color.rb, line 195
195:       def update_colors
196:         @color_space  = {}
197:         @fill_color   ||= "000000"
198:         @stroke_color ||= "000000"
199:         set_fill_color
200:         set_stroke_color
201:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.