Angenommen, wir möchten auf der ersten Seite einen Titel anzeigen, der die obere Hälfte der Seite einnimmt. Die untere Hälfte der Seite sollte dann mit unserem Artikeltext aufzufüllen, und der Text über in die folgenden Seiten fließt weiter, bis es zu Ende geht:Steuern des Inhaltsflusses mit Prawn
Dies ist ein ziemlich grundlegendes Layout-Szenario, aber ich verstehe nicht, wie man es in Prawn umsetzen würde.
Hier einige Beispiel-Code aus ihren Online-Dokumentation abgeleitet:
pdf = Prawn::Document.new do
text "The Prince", :align => :center, :size => 48
text "Niccolò Machiavelli", :align => :center, :size => 20
move_down 42
column_box([0, cursor], :columns => 3, :width => bounds.width) do
text((<<-END.gsub(/\s+/, ' ') + "\n\n") * 20)
All the States and Governments by which men are or ever have been ruled,
have been and are either Republics or Princedoms. Princedoms are either
hereditary, in which the bla bla bla bla .....
END
end
end.render
aber das wird nur weiterhin die Titelraum zeigen, für jede Seite:
Was die richtige Art und Weise zu tun ist Dies?
@ mario- Ich versuchte Ihr Beispiel, aber es erzeugte nur eine einzelne Seite. – Yarin
Das stimmt. Wenn der letzte Aufruf von 'text_box' noch übrig gebliebenen Text zurückgibt, müssen Sie selbst eine neue Seite starten. Wenn Sie diese Lösung verwenden möchten, sollten Sie diese gesamte Prozedur wahrscheinlich in eine Methode einbinden. Wie gesagt, das ist eher ein Workaround als eine Lösung, aber ich habe nichts Besseres gefunden. – mario
@ Mario- OK, vielen Dank dafür. Ich hatte gehofft, dass Prawn eine bessere Layout-Unterstützung hat und ich würde nicht darauf beschränkt sein, solche Dinge manuell zu machen, aber das könnte die einzige Lösung sein. – Yarin