7
我想创建一个虾字表,其中单元格文本是由单词而不是字母包装的。我已经在使用shrink_to_fit了,但看起来大虾正在基于字母打包。理想情况下,我希望它单独包装单词(single_line不是一个选项,因为每个单元格可以有2-3个单词)。如何用虾字表包装
任何人都知道该怎么做?
我想创建一个虾字表,其中单元格文本是由单词而不是字母包装的。我已经在使用shrink_to_fit了,但看起来大虾正在基于字母打包。理想情况下,我希望它单独包装单词(single_line不是一个选项,因为每个单元格可以有2-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,..)
您好,非常感谢您的回复:)如果您在数据的第一行中更改为'data = [['Pig','Hello There'* 10]',您会看到您会得到我得到的同样的问题。单词'there'包裹不正确。我现在也会仔细看看text_box,无论如何感谢您的回复+1。 – Spyros 2012-04-11 22:19:30
正如我在问题中所述,我已经使用了shrink_to_fit,但是这个每个字符并不是每个字符的包装,这几乎是整个问题的关键。 – Spyros 2012-04-11 22:20:29