Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WicketPDF呈现表未正确对齐,页脚位于最后一页_Javascript_Ruby_Ruby On Rails 3_Ruby On Rails 4_Wicked Pdf - Fatal编程技术网

Javascript WicketPDF呈现表未正确对齐,页脚位于最后一页

Javascript WicketPDF呈现表未正确对齐,页脚位于最后一页,javascript,ruby,ruby-on-rails-3,ruby-on-rails-4,wicked-pdf,Javascript,Ruby,Ruby On Rails 3,Ruby On Rails 4,Wicked Pdf,我从html页面生成pdf报告,我分别创建了页眉和页脚的布局,我只需要第一页的页眉和最后一页的页脚,我尝试了一些 脚本,但它是不工作的,如何避免在表行和我需要的每一页的边框内页中断,而不打破表行是打破了,如图所示 respond_to do |format| format.html format.pdf { render :pdf => "Report", :template => 'layouts/pdf_layout.pdf.erb',

我从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

还有其他建议吗


提前感谢

通常可以通过一些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 */
}
因此,有趣的是,这些规则对表元素不起作用,因此,如果您有一个表,并且希望防止单元格被拆分为两半,则可以使用
包装每个表行

这当然不是干净的&语义的,但您可以这样做:

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

一二
UnoDos
要使页面边框完美对齐,您可能需要使用CSS将其设置为固定高度,并使用
.awaysbreak
,然后使用javascript计算表的高度,并根据高度将其拆分为块

也许这只是因为到目前为止您的表非常简单,但这看起来可能是一个很好的候选表。您可以更好地控制这些类型的布局问题


这里有一个火车票。

你能把你的相关代码贴出来吗?还有什么不起作用?请参阅我添加的渲染示例代码。