マーチャントサイトをやっています。このサイトにはバウチャーが必要です。
このバウチャーは、Prawn gem によって生成された pdf ファイルです。
items = obtain_items
Prawn::Document.generate "public/#{self.saving.profile.user.id}/PDFs/order_#{self.id}.pdf" do |pdf|
pdf.font "#{Prawn::BASEDIR}/data/fonts/DejaVuSans.ttf"
pdf.repeat :all do
# header
pdf.image "public/images/fishle-logo-small.png", :at => [480, 735]
pdf.draw_text "Orden Nro. #{self.id}", :at => [0, 720]
pdf.draw_text "#{Date.today}", :at => [0, 680]
pdf.text "Fishle", :size => 36, :align => :center
# footer
pdf.draw_text "Fishle.com", :at => [200, 0], :size => 24, :color => "#ff0000"
end
#pdf poner texto numero de orden, debajo fecha, numero de pagina debajo de fecha
#PDF OTROS DATOS COMO INFO CLIENTE, Y DESC ORDEN
#NOW PRINT IN PDF A TABLE WITH INFORMATION ABOUT ORDER
pdf.move_down(80)
pdf.table items, :header => true, :column_widths => {0 => 35, 1 => 80, 2 => 195, 3 => 70, 4 => 70, 5 => 86, }, :row_colors => ["F0F0F0", "FFFFCC"]
pdf.move_down(10)
pdf.text "Precio Total:#{self.movements.first.debit_ammount}", :align => :right
#NOW PRINT THE FOOTER WITH COM INFO ABOUT FISHLE
10.times do
pdf.start_new_page
end
#NOW PRINT THE PAGE NUMBER
pdf.page_count.times do |i|
pdf.go_to_page(i+1)
pdf.draw_text "Página #{(i+1)} de #{pdf.page_count}", :at => [0, 700]
end
end
今私の問題は次のとおりです。サイトはn個のアイテムを持つ可能性のあるカートを実装しているため、テーブルを動的に生成する必要があります。このテーブルは、ヘッダーからフッターの上に move_down(80) する必要があります。
エビでこのテーブルを生成するにはどうすればよいですか?
この解決策だと思います。
最初に、絶対的な高さと幅を持つボックスにヘッダーとフッターを作成します。次に、ヘッダーの高さがテーブルのコンテンツを押し下げるようにテーブルを作成します。フッターがテーブルを押し上げます。したがって、新しいページを開始すると、テーブルの場所は問題ありません。
私の質問は次のとおりです。
- テーブルをプッシュするヘッダーとフッター用にこのボックスを作成するにはどうすればよいですか?
前もって感謝します。