Möglicherweise enthält Ihre Tabelle Wörter, die für eine einzelne Tabellenzelle zu lang sind? Soweit ich weiß, verwenden Tabellenzellen in Prawn-Tabellen Begrenzungsrahmen, die den Text automatisch umbrechen sollten. Das folgende Beispiel funktioniert gut für mich:
Prawn::Document.generate 'example.pdf' do
data = [['Pig','Oink '*10],
['Cow','Moo '*10],
['Duck','Quack '*10]]
table data do |table|
table.column_widths = [50,150]
end
end
Wenn nichts funktioniert, können Sie versuchen, Ihre eigene Tabelle mit mehreren Gebäuden text_box Anrufe statt mit dem eingebauten in Prawn table method, ist dies natürlich ein bisschen umständlich. text_box
zeichnet den angeforderten Text in eine Box. Der Parameter :overflow
steuert das Verhalten, wenn die Textmenge den verfügbaren Platz überschreitet, verfügbare Optionen sind :truncate
, :shrink_to_fit
oder :expand
.
text_box(txt, :at => [x,y], :width => width, :height => height, :size => size,
:overflow => :shrink_to_fit,..)
Hallo, danke für die Antwort :) Wenn Sie zu ‚data = [[‘ Pig ändern ‚‘ Hallo Es ‚* 10],‘ in der ersten Zeile Ihrer Daten, werden Sie sehen, dass Sie werde das gleiche Problem bekommen, das ich bekomme. Das Wort "da" wird falsch umgebrochen. Ich werde jetzt auch text_box genauer unter die Lupe nehmen, danke für Ihre Antwort, +1. – Spyros
Wie ich auch in der Frage sage, verwende ich bereits shrink_to_fit, aber dieses tut pro Zeichen und nicht pro Wortumhüllung, was ziemlich genau das ganze Problem ist. – Spyros