我正在尝试从用户生成的内容构建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”,而在下一个页面上会有图像,但这就是我所看到的。有什么方法可以达到我的目的吗?
答案 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
技巧是对图像使用绝对定位,并手动向下移动文本光标。