Class: Prawn::SVG::PatternRenderer

Inherits:
Object
  • Object
show all
Includes:
PDFMatrix
Defined in:
lib/prawn/svg/pattern_renderer.rb

Instance Method Summary collapse

Methods included from PDFMatrix

#load_matrix, #matrix_for_pdf, #rotation_matrix, #scale_matrix, #translation_matrix

Constructor Details

#initialize(prawn, draw_type, renderer, tile_x:, tile_y:, tile_width:, tile_height:, transform:, calls:) ⇒ PatternRenderer

Returns a new instance of PatternRenderer.



4
5
6
7
8
9
10
11
12
13
14
# File 'lib/prawn/svg/pattern_renderer.rb', line 4

def initialize(prawn, draw_type, renderer, tile_x:, tile_y:, tile_width:, tile_height:, transform:, calls:)
  @prawn = prawn
  @draw_type = draw_type
  @renderer = renderer
  @tile_x = tile_x
  @tile_y = tile_y
  @tile_width = tile_width
  @tile_height = tile_height
  @transform = transform
  @calls = calls
end

Instance Method Details

#drawObject



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/prawn/svg/pattern_renderer.rb', line 16

def draw
  key = Prawn::SVG::GradientRenderer.next_key

  pattern_ref = create_tiling_pattern(key)

  prawn.page.resources[:Pattern] ||= {}
  prawn.page.resources[:Pattern]["PSVG-Pattern-#{key}"] = pattern_ref

  prawn.send(:set_color_space, draw_type, :Pattern)
  draw_operator = draw_type == :fill ? 'scn' : 'SCN'
  prawn.renderer.add_content("/PSVG-Pattern-#{key} #{draw_operator}")
end