ruby-on-rails - prawnto 显示新页面时不会中断的表格

标签 ruby-on-rails ruby pdf-generation prawn prawnto

我有可变数量的表格和可变数量的行,我想让它们一个接一个地显示,但如果表格不适合当前页面,请将其放在下一页,然后继续。我已将表格放入事务中,以便我可以回滚然后打印它(如果高度适合当前页面),但我如何获得表格高度?

我现在有这段代码

pdf.transaction do 

pdf.table @data,
    :font_size  => 12, 
    :border_style => :grid,
    :horizontal_padding => 10,
    :vertical_padding   => 3,
    :border_width       => 2,
    :position           => :left,
    :row_colors => ["FFFFFF","DDDDDD"]

pdf.move_down 20

#pdf.rollback 
end

在这方面的任何帮助都会很棒。或者任何其他方式来做到这一点?

最好的问候 rake

最佳答案

4 年后...:)

正如@m-x 所写,回滚出于安全原因被禁用,就像“组”一样,并且仍然没有实现。所以,这里我是如何处理表格的断页的:

大而简单的表格(每个数据一行)

只使用标题选项

pdf.table @data,
  header: true, # You can use 'header: 2' if your header take two rows
  font_size: 12, 
  border_style: :grid,
  horizontal_padding: 10,
  vertical_padding: 3,
  border_width: 2,
  position: :left,
  row_colors: ["FFFFFF","DDDDDD"]

小表或复杂表

  • 摆 table
  • 检查是否需要分页
  • 绘制表格

以你的例子:

t = pdf.make_table @data,
  font_size: 12, 
  border_style: :grid,
  horizontal_padding: 10,
  vertical_padding: 3,
  border_width: 2,
  position: :left,
  row_colors: ["FFFFFF","DDDDDD"]

if cursor - t.height < 0
  start_new_page
end

t.draw

希望对你有帮助

关于ruby-on-rails - prawnto 显示新页面时不会中断的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081635/

相关文章:

ruby-on-rails - 集成测试时,ActionController::ParameterMissing 出现,尽管记录相反

javascript - Rack 中间件到前置 while(1);所有 ajax/json 请求

powershell - 如何将图像添加到使用 Nreco PdfGenrator 创建的 PDF

ruby-on-rails - PostgreSQL 触发器在 UPDATE 而不是 INSERT 时触发

ruby-on-rails - 如何在 Rails 3 中创建原子提要?

ruby-on-rails - 在 Rails 4 中将 hstore 列与 simple_form 集成

java - iText 将大表格嵌套在另一个表格的单元格内

objective-c - 在 Ipad 中直接从 UiTextView 创建多页 PDF

ruby-on-rails - 实现一个Facebook样式的消息传递系统,其中用户可以位于另一个模型的两个不同列中的任意一个中

ruby - 是否有 ruby​​ 的 'standard' 读/写锁实现?