2012-04-11 20 views
7

我想創建一個蝦字表,其中單元格文本是由單詞而不是字母包裝的。我已經在使用shrink_to_fit了,但看起來大蝦正在基於字母打包。理想情況下,我希望它單獨包裝單詞(single_line不是一個選項,因爲每個單元格可以有2-3個單詞)。如何用蝦字表包裝

任何人都知道該怎麼做?

回答

3

也許你的表格包含單詞表單元格太長的單詞?據我所知,Prawn表中的表格單元格使用邊界框,它們應該自動地包裝文本。下面的例子能正常工作對我來說:

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 

如果實在不行,你可以嘗試用多建立自己的表,而不是text_box呼叫使用內置Prawn table method,這當然是有點麻煩。 text_box將請求的文本繪製到一個框中。 :overflow參數控制文本數量超過可用空間時的行爲,可用選項爲:truncate,:shrink_to_fit:expand

text_box(txt, :at => [x,y], :width => width, :height => height, :size => size, 
       :overflow => :shrink_to_fit,..) 
+0

您好,非常感謝您的回覆:)如果您在數據的第一行中更改爲'data = [['Pig','Hello There'* 10]',您會看到您會得到我得到的同樣的問題。單詞'there'包裹不正確。我現在也會仔細看看text_box,無論如何感謝您的回覆+1。 – Spyros 2012-04-11 22:19:30

+1

正如我在問題中所述,我已經使用了shrink_to_fit,但是這個每個字符並不是每個字符的包裝,這幾乎是整個問題的關鍵。 – Spyros 2012-04-11 22:20:29