Class: Idml::Render::Renderers::TableRenderer

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

Overview

Renders an IDML Table. Draws the cell grid via rectangle ops, then renders inline <CharacterStyleRange> text in each cell via canvas.text_rich. Cells with no text render as empty rectangles.

Constant Summary collapse

DEFAULT_SIZE =
10.0
INSET =
4.0

Class Method Summary collapse

Class Method Details

.render(canvas, context) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/idml/render/renderers/table_renderer.rb', line 14

def self.render(canvas, context)
  table = context.item
  return if table.visible == false
  return if table.table_row.empty?

  box = Placement.box(table, context.page_height)
  return unless box

  row_count = table.table_row.length
  row_height = box[:height] / row_count

  canvas.save_graphics_state do
    table.table_row.each_with_index do |row, row_index|
      render_row(canvas, row, row_index, row_count, box, row_height,
                 context)
    end
  end
end