Оберните текст вокруг изображения в рельсах и креветках

У меня есть документ с динамическим изображением и динамическим текстом, и мне нужен текст вокруг изображения. Изображение выровнено по правому краю на альбомной странице. Вот что у меня есть до сих пор:

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, как обернуть текст вокруг выровненного правого изображения? но это не сработало.

Помощь приветствуется, спасибо.


person stevenheidel    schedule 22.04.2010    source источник
comment
Это то, что я хочу: ontask.ca/wp-content/ uploads/2009/06/july02.pdf Вот что у меня есть: s3.amazonaws.com/ontask_production/resources/1/   -  person stevenheidel    schedule 22.04.2010
comment
вы должны отформатировать исходный код. Трудно следить за тем, что вы сделали.   -  person ghoppe    schedule 22.04.2010
comment
ghoppe, извините за это, я случайно использовал обратные кавычки. Видите ли вы какие-либо решения сейчас?   -  person stevenheidel    schedule 23.04.2010


Ответы (2)


Если вы знаете ширину и высоту изображения, вы можете использовать text_box, чтобы расположить текстовое поле рядом с изображением и собрать возвращенную строку текста, которая не подходит. Затем создайте второе текстовое поле или обычный вызов text() под изображением и text_box, и все готово.

Этот пример должен помочь: http://github.com/sandal/prawn/blob/0.9.1/examples/text/text_box_returning_excess.rb

person Gregory Brown    schedule 02.05.2010

У меня нет большого опыта с креветками, так что это только предположение. Вы пытались поместить свои операторы 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
person ghoppe    schedule 22.04.2010
comment
Хорошая идея, но это просто заставляет текст начинаться под изображением, а не на одной линии с ним. Если я вызову move_up заранее, текст будет перед изображением. - person stevenheidel; 22.04.2010
comment
Хорошо, спасибо, просто беру удар. Похоже, что ссылка на переполнение стека, которую вы разместили, была неправильной? - person ghoppe; 23.04.2010