Die Proben Sie sich beziehen, aus dem prawnto Plugin wird eine ältere Version von Garnelen verwendet wird.
Da ich auch Header und Footer brauchte, habe ich ein bisschen mehr in das hineingeschaut. Es scheint, dass diese Version von Prawn Header- und Footer-Methoden hatte, die mit Lazy Bounding Box implementiert wurden. (gefunden durch Überprüfung des Codes auf GitHub)
In der neuen Garnelen Version können Sie das Gleiche tun, mit Repeater.
Hier ist die vollständige Probe neu geschrieben, die neue Version mit:
require "#{File.dirname(__FILE__)}/../example_helper.rb"
Prawn::Document.generate("test.pdf") do
repeat :all do
# header
bounding_box [bounds.left, bounds.top], :width => bounds.width do
font "Helvetica"
text "Here's My Fancy Header", :align => :center, :size => 25
stroke_horizontal_rule
end
# footer
bounding_box [bounds.left, bounds.bottom + 25], :width => bounds.width do
font "Helvetica"
stroke_horizontal_rule
move_down(5)
text "And here's a sexy footer", :size => 16
end
end
bounding_box([bounds.left, bounds.top - 50], :width => bounds.width, :height => bounds.height - 100) do
text "this is some flowing text " * 200
move_down(20)
font "#{Prawn::BASEDIR}/data/fonts/DejaVuSans.ttf"
table [["ὕαλον ϕαγεῖν", "baaar", "1" ],
["This is","a sample", "2" ],
["Table", "dont\ncha\nknow?", "3" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules\nwith an iron fist", "x" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ],
[ "It", "Rules", "4" ]],
:font_size => 24,
:horizontal_padding => 10,
:vertical_padding => 3,
:border_width => 2,
:position => :center,
:headers => ["Column A","Column B","#"]
end
end
Sie die Dokumentation Seite der Wiederholung für andere Optionen, die Sie genau erlauben überprüfen können angeben, wo Sie die Repeater möchten.
helfen immer noch frage ich mich, wie Sie verwalten, dass Garnelen schreibt in diesem Fall nichts über deine Fußzeilen. Ich benutze den gleichen Weg und es funktioniert einfach nicht. Das gleiche passiert in Ihrem Beispiel, wenn Sie die Menge an Text erhöhen. Entfernen Sie einfach die start_new_page und fügen Sie der Textzeile innerhalb der Schleife ein * 100 hinzu. Normalerweise verschiebe ich das gesamte Dokument in eine Begrenzungsbox und subtrahiere die Größe der Kopf-/Fußzeilen, um solche Probleme zu vermeiden. – unexist
Dieses Fußzeilenbeispiel rettete mir wirklich Stunden des Elends. – Vigrant