【问题标题】:Prawn PDF: render a set of things on the same pagePrawn PDF:在同一页面上渲染一组东西
【发布时间】:2015-07-13 10:06:17
【问题描述】:

我正在寻找一种方法来执行以下操作

pdf.on_same_page do
   pdf.text "foo"
   pdf.imaage bar
   pdf.table(baz)
   ....
end

换句话说,我想对几个元素进行分组,如果整个组可以放在页面上,则将其呈现在同一页面上,否则分页并将其全部呈现在下一页上(假设整个组可以适合单页) 这样的事情怎么完成?

【问题讨论】:

  • 我明白你想要什么,但我想不出具体的方法。有一个选项可以模拟 TextBox 的渲染,称为 dry_run。您可以查看它以计算文本的高度。有了图像,您既可以获取之前的高度信息,也可以设置一个固定的高度,这样您就可以知道准确的高度。最后,通过表格,您还可以计算它有多少行并设置每行的高度。这样你就可以手动计算它的大小了。
  • 我不认为Prawn有一种方法可以自动计算事物的高度,或者如果它不适合将事物移动到新页面。

标签: ruby prawn


【解决方案1】:

我使用了一种略有不同的方法,但使用的是表格。

footer_table = pdf.make_table(data) do
  cells.borders = []
  row(0).font_style = :bold
  row(2).font_style = :bold
end
pdf.start_new_page if (pdf.cursor - footer_table.height).negative?
footer_table.draw

鉴于pdf是pdf文档,我只放适合页面的表格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2018-09-30
    • 1970-01-01
    • 2014-09-18
    相关资源
    最近更新 更多