3

次の形式で reportLab のテーブルをレイアウトしようとしています。テーブルは動的で、多くの行を持つことができます。

---------
| a | b |
|---|   |
| a |   |
|---|   |
| a |   |
---------

tTableStyle=[ ('SPAN',(1,0),(1,-1)) ]

表が 1 ページに収まる場合は問題なく動作しますが、表が複数のページに分割されている場合はクラッシュします。スパンがなければ、テーブルは問題なく分割されますが、2 番目の列のグリッド線に固執しています。

これは、使用されているアルゴリズムがページ間で自動的に SPAN できないことが原因であることがわかりましたが、この問題を回避する方法がわかりません

各ページに表示される行数を取得し、-1 の代わりにそれを使用することは可能ですか? 例えば。x=rows_on_page1, y=rows_on_page2 次に、tableStyle で次のようなことができます

('SPAN',(1,0),(1, x)), 
('SPAN',(1,x+1),(1,y))

テーブルを手動で作成することが提案されていますが、方法がわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

2

私が最終的に使用した解決策は、スパンしようとすることを無視し、ボックスコードを使用して必要な線を描くことでした.

('INNERGRID', (0,0), (0,-1), colors.grey),  # gridlines for first column
('BOX', (0,0), (-1,-1), 0.25, colors.grey), # outer border
('BOX', (0,0), (0,-1), 0.25, colors.grey),  # inner border
("LINEBELOW", (0, 'splitlast'), (-1, 'splitlast'), 0, colors.grey), # draw bottom line on table split
于 2012-12-12T00:33:51.223 に答える