WicketPDF渲染表未正确对齐,页脚位于最后一页

时间:2014-07-28 05:08:22

标签: javascript ruby ruby-on-rails-3 ruby-on-rails-4 wicked-pdf

我从html页面生成pdf报告,我分别用页眉和页脚创建了布局,我只需要在最后一页的第一页和页脚标题,我尝试了一些 脚本,但它不起作用,以及如何避免表行内的页面中断,我需要每个页面的边框,而不会破坏表格行,如图所示。

enter image description here

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

任何其他建议

提前致谢

1 个答案:

答案 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