在铁轨和虾中围绕图像包裹文本

时间:2010-04-22 16:39:23

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

我有一个包含动态图片和动态文字的文档,并希望图片周围的文字。图像在横向页面上右对齐。以下是我到目前为止的情况:

pdf.bounding_box([0,pdf.bounds.top - 50], :width => pdf.bounds.width, :height => pdf.bounds.height-50) do
  pdf.text @article.title, :size => 30, :style => :bold
  pdf.text @article.content, :align => :left
  # image
  pdf.bounding_box([pdf.bounds.right - 250, pdf.bounds.top], :width => 250, :height => 250) do
    pdf.image image_path, :width => 250
  end
end

文字正好位于图像下方。我尝试过这样做ruby prawn how to wrap text around an aligned right image?但是没有用。

感谢帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

如果您知道图像的宽度和高度,则可以使用text_box定位图像旁边的文本框,并收集不适合的文本的返回字符串。然后在图像和text_box下创建第二个文本框或普通的text()调用,你应该很高兴。

此示例应该有所帮助: http://github.com/sandal/prawn/blob/0.9.1/examples/text/text_box_returning_excess.rb

答案 1 :(得分:0)

我对虾没什么经验,所以这只是猜测。您是否尝试将pdf.text语句放在图像边界框之后?

pdf.bounding_box([0,pdf.bounds.top - 50], 
   :width => pdf.bounds.width, 
   :height => pdf.bounds.height-50) do 

   # image 
   pdf.bounding_box([pdf.bounds.right - 250, pdf.bounds.top], 
      :width => 250, :height => 250) do 
      pdf.image image_path, :width => 250 
   end 

   pdf.text @article.title, :size => 30, :style => :bold 
   pdf.text @article.content, :align => :left 

end