1
votes

I need put 2 images and text in the same line.

For Example:

(image1) "TEXT" (image2)

Simulating a header. here is my code:

class PruebasPdf < Prawn::Document

def initialize(prueba)
    super()
    @prueba = Prueba.order("id DESC").all
    cabecera
    prueba_id
    marcagua
end
def cabecera
    image "#{Rails.root}/app/assets/images/logo-i.jpg", :width => 50, :height => 50,:position => :left
    text "Universidad Centroccidental Lisandro Alvarado",  size: 18, style: :bold, align: :center
    image "#{Rails.root}/app/assets/images/logo-d.jpg", :width => 50, :height => 50,:position => :right
end
def prueba_id
    table prueba_id_all do
        row(0).font_style = :bold
        columns(1..3).align = :center
        self.row_colors = ["DDDDDD","FFFFFF"]
        self.header = true
        end

end

def prueba_id_all
    [["Titulo","Descripcion","Fecha"]] + 
    @prueba.map do |prueba|
        [prueba.titulo,prueba.desc,prueba.fecha]
    end

end

def marcagua
    create_stamp("watermark") do
     rotate(30, :origin => [-5, -5]) do
       stroke_color "FF3333"
       stroke_color "000000"
       fill_color "993333"
       font("Times-Roman") do
         draw_text "Coordinacion de Investigacion", :at => [-23, -3]
       end
       fill_color "000000"
     end
    end

        stamp_at "watermark", [300, 300] 
            end  end

Does anyone know how it can be done? Thanks in advance! sorry for my english---

1

1 Answers

0
votes

If your header isn't going to change or be dynamic in any way, then I would just use absolute positioning with x and y coordinates to get your images and text to line up the way you want. You could do something like this with the :at option:

image "#{Rails.root}/app/assets/images/logo-i.jpg", :width => 50, :height => 50, :at => [200, 80]
draw_text "Universidad Centroccidental Lisandro Alvarado",  size: 18, style: :bold, :at => [260, 100]
image "#{Rails.root}/app/assets/images/logo-d.jpg", :width => 50, :height => 50, :at => [320, 80]

Those are just example coordinates but you can get the idea