【问题标题】:Wicked pdf rendering the last row across two pages邪恶的 pdf 在两页中呈现最后一行
【发布时间】:2013-06-07 10:29:31
【问题描述】:

我正在使用wicked_pdf 来生成 pdf。我面临的问题是,有时它会跨两页显示页面中的最后一行。如果 wicked_pdf 无法容纳该页面中的整行或对页面中的行数设置限制,是否有办法告诉 wicked_pdf 在下一页中呈现该行?

下图是我的问题的一个例子。

我的选择是

render :pdf => file_name,
       :layout => "pdf.html",
       :disposition => "attachment"

【问题讨论】:

    标签: ruby-on-rails pdf pdf-generation wkhtmltopdf wicked-pdf


    【解决方案1】:

    我也遇到过同样的问题。没有简单的答案。您必须关闭整个表并在表外发出.page-break(我在我的css 中定义.page-break {page-break-before:always})。然后,启动一个新表并继续从您所在的位置进行渲染。这并不容易!我最终计算了行数,甚至检查了单元格内容的大小以到达单元格行,然后关闭表格并根据需要重新启动。

    绝对是 HTML 到 PDF 过程的限制。

    【讨论】:

      【解决方案2】:

      由于 WickedPDF 实际上并没有创建表格(只是从 html/css 呈现一个),因此可用的选项并不多 - 您可以尝试在您的 css 中使用 page-break-inside: avoid;,您可能还需要手动分解表的大小,这样避免分页符的效果不会太严重。

      css:

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

      至少,这应该可以帮助您入门。

      编辑:这是关于这个主题的另一个问题,还有一些进一步的信息:How to avoid page break inside table row for wkhtmltopdf

      【讨论】:

      • 我添加了page-break-inside。但它仍在发生。
      • 我仍然在发生这种情况。 :(
      • 尝试将您的 wkhtml 版本更新到至少0.12.1
      • 有人找到解决这个问题的方法吗?
      • 我刚刚将.avoidPageBreaks { page-break-inside: avoid !important; } 添加到我不想被破坏的元素中。就我而言,只是在table 元素上。 Matt 提出的附加问题提供了解决方案。
      猜你喜欢
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多