Może Twoja tabela zawiera słowa, które są zbyt długie dla pojedynczej komórki tabeli? O ile mi wiadomo, komórki tabeli w tabelach Prawn używają obwiedni, które powinny automatycznie zawijać tekst. Poniższy przykład działa dobrze dla mnie:
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
Jeśli nic nie działa, można próbować budować własną tabelę z wielu text_box połączenia zamiast korzystać z wbudowanego Prawn table method, to jest oczywiście nieco kłopotliwe. text_box
rysuje żądany tekst w polu. Parametr :overflow
kontroluje zachowanie, gdy ilość tekstu przekracza dostępną przestrzeń, dostępne są opcje: :truncate
, :shrink_to_fit
lub :expand
.
text_box(txt, :at => [x,y], :width => width, :height => height, :size => size,
:overflow => :shrink_to_fit,..)
Witam, dziękuję za odpowiedź :) Jeśli zmienisz na "data = [[" Pig "," Hello There "* 10]," w pierwszym wierszu twoich danych zobaczysz, że dostanę ten sam problem, który dostaję. Słowo "tam" jest niepoprawnie zapakowane. Przyjrzę się teraz dokładniej text_box, dziękuję za odpowiedź, +1. – Spyros
Jak również stwierdzam w pytaniu, już używam shrink_to_fit, ale ten robi na znak, a nie na zawijanie słów, co jest właściwie tym, o co chodzi. – Spyros