4

ほとんどのコンテンツを含むテーブルを使用して、ReportLab を使用して PDF を作成しています。

行を視覚的に区別しやすくするために、ページの最後の行でない限り、すべての行の後に水平線を入れたいと思います。

すべての行の後に水平線を配置するには、TableStyle を使用できます。

style = TableStyle([
     ("LINEBELOW", (0,0), (-1,-1), 1, colors.black),
   ])
t = Table(data)
t.setStyle(style)

..しかし、このために TableStyles を使用することは不可能に思えます。その時点で、ReportLab は私のコンテンツのページ レイアウトを認識していないからです。

onFirstPageonLaterPagesパラメータを使用してそれを行う方法はありますdoc.buildか?

4

1 に答える 1

2

しかし、それは機能するはずです:それはの美しさです-1:それは何があっても最後の行/列になります。唯一の本当のトリックは、最後の行の後の行を削除する方法です。これを行うには、「LINEBELOW」が終了する座標を変更するだけです。つまり、タプルは次のようになります。

("LINEBELOW", (0, 0), (-1, -2), 1, colors.black)

-2これにより、行まで、つまり最後の行の次の行まで適用されるようになります。これはあなたが望むものを正確に与えるはずです。

ETA 2011/4/6

ああ、必要なのはsplitlast。したがって、既存の「LINEBELOW」コマンドの後にスタイルコマンドを追加すると、次のように機能するはずです。

("LINEBELOW", (0, 'splitlast'), (-1, 'splitlast'), 0, colors.black)

または、サイズを0に設定している限り、任意の色を選択します。

于 2011-04-04T11:32:48.130 に答える