2012-04-11 4 views
7

Ich möchte eine Garnelentabelle erstellen, in der Zelle Text durch Wörter und nicht Buchstaben eingewickelt wird. Ich benutze bereits shrink_to_fit, aber es scheint, dass Garnelen auf Buchstaben basiert. Ich würde im Idealfall wollen, dass es nur Wörter umwickelt (single_line ist keine Option, da es 2-3 Wörter pro Zelle geben kann).Wie man durch Wörter in Prawn einwickelt Tabelle

Wer weiß, wie man das macht?

Antwort

3

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,..) 
+0

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

+1

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

Verwandte Themen