Prawn nie wydaje się pchać układu w dół podczas używania funkcji powtarzania (: wszystkie)
Generuję dokument z danymi, które przepływają na każdą kolejną stronę, każda strona ma standardowy nagłówek. Jednak gdy używam repeat (: all) do umieszczenia nagłówka na każdej stronie, stwierdzam, że na każdej stronie, ale na pierwszej stronie, następna zawartość nie jest przenoszona w dół o rozmiar nagłówka nagłówka, który umieściłem na stronie .
Mój kod do generowania banera:
class SmartsoftPdf < Prawn::Document
BOX_MARGIN = 30
RHYTHM = 10
INNER_MARGIN = 30
# Colors
#
BLACK = "000000"
LIGHT_GRAY = "F2F2F2"
GRAY = "DDDDDD"
DARK_GRAY = "333333"
BROWN = "A4441C"
ORANGE = "F28157"
LIGHT_GOLD = "FBFBBE"
DARK_GOLD = "EBE389"
BLUE = "08C"
GREEN = "00ff00"
RED = "ff0000"
def show_header(text,date)
header_box do
image "#{Rails.root}/app/assets/images/smart_records_logo_h60.png", :height => 40
draw_text text,
:at => [80,25], :size => 12, :style => :bold, :color => BLUE
draw_text "Date: #{ausDate(date)}",
:at => [bounds.right - 100,bounds.top - 15], :size => 10 if date
end
end
def header_box(&block)
bounding_box([-bounds.absolute_left, cursor + BOX_MARGIN + 8],
:width => bounds.absolute_left + bounds.absolute_right,
:height => BOX_MARGIN*2) do
fill_color LIGHT_GRAY
fill_rectangle([bounds.left, bounds.top],
bounds.right,
bounds.top - bounds.bottom)
fill_color BLACK
move_down(RHYTHM)
indent(BOX_MARGIN, &block)
end
stroke_color GRAY
stroke_horizontal_line(-BOX_MARGIN, bounds.width + BOX_MARGIN, :at => cursor)
stroke_color BLACK
move_down(RHYTHM*4)
end
end
Następnie w samej generacji pdf:
repeat(:all) do
show_header("Custom Report",DateTime.now())
end
Jednak gdy zaczynam umieszczać zawartość na stronach, oczekuję, że gdy zawartość przepełni się na następnej stronie, zawartość pojawi się po nagłówku. Stwierdzam, że zamiast tego nagłówek nakłada się na treść.
Oto obraz ilustrujący problem:http://i.imgur.com/mSy2but.png
Czy nieprawidłowo buduję pole nagłówka? Czy muszę zrobić coś dodatkowego, aby zawartość, która rozlewa się na następną stronę, została obniżona o odpowiednią kwotę?