diff --git a/lib/prawn/table/cell/text.rb b/lib/prawn/table/cell/text.rb index 4fed7dd..d2f140e 100644 --- a/lib/prawn/table/cell/text.rb +++ b/lib/prawn/table/cell/text.rb @@ -17,7 +17,7 @@ class Text < Cell TextOptions = [:inline_format, :kerning, :size, :align, :valign, :rotate, :rotate_around, :leading, :single_line, :skip_encoding, - :overflow, :min_font_size] + :overflow, :min_font_size, :nowrap] TextOptions.each do |option| define_method("#{option}=") { |v| @text_options[option] = v } @@ -80,7 +80,7 @@ def set_width_constraints # sure we have enough width to be at least one character wide. This is # a bit of a hack, but it should work well enough. unless defined?(@min_width) && @min_width - min_content_width = [natural_content_width, styled_width_of_single_character].min + min_content_width = nowrap ? natural_content_width : [natural_content_width, styled_width_of_single_character].min @min_width = padding_left + padding_right + min_content_width super end @@ -134,7 +134,11 @@ def text_box(extra_options={}) # Returns the width of +text+ under the given text options. # def styled_width_of(text) - @pdf.width_of(text, @text_options) + if text.empty? + 0 + else + text.lines.collect{|line|@pdf.width_of(line, @text_options)}.max + end end private