我从html页面生成pdf报告,我分别用页眉和页脚创建了布局,我只需要在最后一页的第一页和页脚标题,我尝试了一些 脚本,但它不起作用,以及如何避免表行内的页面中断,我需要每个页面的边框,而不会破坏表格行,如图所示。
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
任何其他建议
提前致谢
答案 0 :(得分:1)
分页问题通常可以通过一些简单的css规则来缓解:
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 */
}
所以,其中一个有趣的事情是这些规则不适用于表元素,所以如果你有一个表并希望防止单元格被分成两半,你可以用{包裹每个表行{1}}。
这当然不干净&语义,但你可以这样做:
<div>
为了让您的页面边框完美排列,您可能需要使用带有<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>
的CSS将其设置为固定高度,然后使用一些javascript来计算表格的高度并将其分解根据身高变成块状。
也许只是因为到目前为止您的表格非常简单,但看起来尝试使用prawn可能是一个不错的选择。您可以更好地控制这些类型的布局问题。
它有一个railscast here。