Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Add initial x coordinate to add_header #372

Closed
wants to merge 2 commits into from

3 participants

@ivantse1

If you use tables and column boxes, the table headers will not be drawn correctly. If the table flows to another column, the header for that column will be drawn as if it were a new page.

This fix will correctly draw the header with respect to the bounds.

(Sorry, I'm not sure how to write test(s) for this)

@practicingruby

Hi. Please resolve merge conflicts and provide an example that reproduces the problem. I am closing the pull request for now, but feel free to reopen once you have updated your branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Jul 13, 2012
  1. Set initial x coordinate for header cells

    Ivan Tse authored
  2. @ivantsepp

    Refactor the fix

    ivantsepp authored
This page is out of date. Refresh to see the latest.
Showing with 5 additions and 4 deletions.
  1. +5 −4 lib/prawn/table.rb
View
9 lib/prawn/table.rb
@@ -295,7 +295,7 @@ def draw
# Track cells to be drawn on this page. They will all be drawn when this
# page is finished.
cells_this_page = []
-
+
@cells.each do |cell|
if cell.height > (cell.y + offset) - ref_bounds.absolute_bottom &&
cell.row > started_new_page_at_row
@@ -309,8 +309,9 @@ def draw
# start a new page or column
@pdf.bounds.move_past_bottom
+ x_offset = @pdf.bounds.left_side - @pdf.bounds.absolute_left
if cell.row > 0 && @header
- header_height = add_header(cells_this_page, @pdf.cursor, cell.row-1)
+ header_height = add_header(cells_this_page, x_offset, @pdf.cursor, cell.row-1)
else
header_height = 0
end
@@ -488,10 +489,10 @@ def make_cells(data)
#
# Return the height of the header.
#
- def add_header(page_of_cells, y, row)
+ def add_header(page_of_cells, x_offset, y, row)
@header_row.each do |cell|
cell.row = row
- page_of_cells << [cell, [cell.x, y]]
+ page_of_cells << [cell, [cell.x + x_offset, y]]
end
@header_row.height
end
Something went wrong with that request. Please try again.