Class: Idml::Render::Renderers::RectangleRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/idml/render/renderers/rectangle_renderer.rb

Overview

Renders an IDML Rectangle on a Pdfrb::Content::Canvas.

Class Method Summary collapse

Class Method Details

.placement_box(rect, page_height) ⇒ Object



21
22
23
24
25
26
# File 'lib/idml/render/renderers/rectangle_renderer.rb', line 21

def self.placement_box(rect, page_height)
  bounds = rect.geometric_bounds
  return nil unless bounds

  Geometry.placement_rect(bounds, rect.item_transform, page_height)
end

.render(canvas, context) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/idml/render/renderers/rectangle_renderer.rb', line 8

def self.render(canvas, context)
  rect = context.item
  return if rect.visible == false

  box = placement_box(rect, context.page_height)
  return unless box

  canvas.save_graphics_state do
    render_fill(canvas, rect, context, box)
    render_stroke(canvas, rect, context, box)
  end
end

.strokeable?(rect) ⇒ Boolean

Returns:

  • (Boolean)


54
55
56
57
58
# File 'lib/idml/render/renderers/rectangle_renderer.rb', line 54

def self.strokeable?(rect)
  rect.stroke_color &&
    rect.stroke_color != "Color/None" &&
    rect.stroke_weight&.positive?
end