1

http://rghost.ru/46587227.viewのようなテーブルを Prawn で作成しようとすると、CannotFit エラーが発生します。

first = {:content=>"Foooo fo foooooo",:width=>50,:align=>:center}
second = {:content=>"Foooo",:colspan=>2,:width=>70,:align=>:center}
third = {:content=>"fooooooooooo, fooooooooooooo, fooo, foooooo fooooo",:width=>55,:align=>:center}
fourth = {:content=>"Bar",:width=>20,:align=>:center}

table_content = [[
  first,
  [[second],[third,fourth]]
]]
pdf.move_down(20)
pdf.table(table_content)
4

1 に答える 1

4

エビでは、 のセルのセル サイズの計算に問題がありますcolspan

次のルールに従うことで、この問題を回避できました。

  • widthでセルに代入しないでくださいcolspan
  • テーブルに正しい合計幅を与える

あなたの例に適用

 first = { content: "Foooo fo foooooo", rowspan: 2, width: 50 }
second = { content: "Foooo", colspan: 2 } # <- avoid width here!
 third = { content: "fooooooooooo, fooooooooooooo, fooo, foooooo fooooo", width: 55 }
fourth = { content: "Bar", width: 20 }

Prawn::Document.generate("test.pdf") do |pdf|
  table_content = [ [first, second       ],
                    [       third, fourth],
                    [1,     2,     3     ] ]
  pdf.move_down(20)
  pdf.table(table_content, width: 50+55+20, cell_style: {align: :center})
end

出力

PDF

于 2013-06-07T18:52:16.960 に答える