3

I am using wicked_pdf to generate pdfs. The problem i am facing is that, sometimes it displays the last row in the page across two pages. Is there a way to tell wicked_pdf to render the row in next page if it can't fit the entire row in that page or set a limit on the number of rows in a page?

Below image is an example of my problem.

Below image is an example of my problem

My options are

render :pdf => file_name,
       :layout => "pdf.html",
       :disposition => "attachment"
usha
  • 28,973
  • 5
  • 72
  • 93

2 Answers2

3

Since WickedPDF isn't actually creating a table (just rendering one from the html/css) there aren't many options available - you can try using page-break-inside: avoid; in your css, you may also need to manually break down the sizes of the tables so that the effect of avoiding page breaks isn't too severe.

css:

table, tr, td, th, tbody, thead, tfoot {
    page-break-inside: avoid;
}

That should get you started, at least.

Edit: Here is another question on this subject with some further info: How to avoid page break inside table row for wkhtmltopdf

Community
  • 1
  • 1
Matt
  • 13,948
  • 6
  • 44
  • 68
0

I have had this same problem. There is no easy answer. You have to close the entire table and issue the .page-break (I define .page-break {page-break-before:always} in my css) outside the table. Then, start a new table and continue to render from where you were at. It's not easy! I ended up counting rows, and even checking for size of cell content to get to cell rows, and just closing the table and restarting as needed.

Definitely a limitation of the HTML to PDF process.

Eskim0
  • 775
  • 7
  • 17