如何用虾表中的单词包装

时间:2012-04-11 07:52:52

标签: ruby prawn

我想创建一个prawn表,其中单元格文本用单词而不是字母包装。我已经在使用shrink_to_fit,但看起来大虾是基于字母包装的。理想情况下,我希望它单独包装单词(single_line不是一个选项,因为每个单元格可以有2-3个单词)。

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:4)

也许你的表包含单个表格单元格太长的单词?据我所知,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,..)