问题
I am generating pdf report from html page, I created the layout with header and footer separately , I need header only for first page and footer at last page, I tried some scripts for that but it is not working, and how to avoid page break inside table row and I need border for each page without breaking table row is breaking like as shown in an image.
respond_to do |format|
format.html
format.pdf {
render :pdf => "Report",
:template => 'layouts/pdf_layout.pdf.erb',
:layout => 'pdf_layout.pdf.erb',
:margin => {:bottom => 35},
:page_size => 'A4',
:header => {:content => render_to_string({:template => 'layouts/header.pdf.erb'})},
:footer => {:content => render_to_string({:template => 'layouts/footer.pdf.erb'})}
}
end
Any other suggestion
Thanks in advance
回答1:
Page break issues can usually be mitigated with a few css rules, well placed:
div.alwaysbreak { page-break-before: always; }
div.nobreak:before { clear:both; }
div.nobreak{ page-break-inside: avoid;
/* http://code.google.com/p/wkhtmltopdf/issues/detail?id=9#c21 */
}
So, one of the interesting things is that these rules don't work on table elements, so if you have a table and want to prevent cells from being split in half, you can wrap each table row with a <div>
.
This is certainly not clean & semantic, but you can do it like this:
<table>
<thead>
<div class='nobreak'>
<tr>
<th>One</th><th>Two</th>
</tr>
</div>
</thead>
<tbody>
<div class = 'nobreak'>
<tr>
<td>Uno</td><td>Dos</td>
</tr>
</div>
</tbody>
</table>
To get your page borders to line up perfectly, you are probably going to have to set it to a fixed height with CSS with an .awaysbreak
, then have some javascript that computes the height of the table and breaks it into chunks based on height.
Maybe it's just because your table so far is so simple, but this looks like it might be a good candidate to try using prawn with. You'll have better control of those types of layout issues.
There's a railscast for it here.
来源:https://stackoverflow.com/questions/24988738/wicketpdf-rendering-table-not-aligned-properly-and-footer-place-at-last-page