用Prawn将文本和图像分组为一个块?

时间:2012-09-05 15:33:27

标签: ruby pdf prawn

我正在尝试从用户生成的内容构建PDF,我有一大堆信息应该组合在一起。我知道group方法可以确保文本全部一起呈现,但这似乎不适用于文本和图像的混合。是否可以使用Prawn执行此操作,或者我是否需要尝试计算光标位置并手动换行?

编辑:为了说明我要做的事情:

pdf = PDF::Document.new
20.times do
  pdf.group do
    pdf.text "Something"
    pdf.image "path/to/image.jpg"
    pdf.text Time.now.to_s
  end
end

我希望在一个页面上没有“Something”,而在下一个页面上会有图像,但这就是我所看到的。有什么方法可以达到我的目的吗?

1 个答案:

答案 0 :(得分:3)

好的,我已经明白了。在分组时,Prawn似乎没有考虑图像高度,但你可以破解它的方式:

pdf.group do
  pdf.text "Best regards, (...)"
  pdf.image "#{Rails.root}/vendor/signature.jpg", {
    :height => 30,
    :at => [0, pdf.y.to_i - @bottom_margin]
  }
  pdf.move_down(35)
  pdf.text " "
end

技巧是对图像使用绝对定位,并手动向下移动文本光标。