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)

这将确保它适用于 row -2,即倒数第二行。这应该给你你想要的。

预计 2011/4/6

啊,你需要的是splitlast。如果您在现有的“LINEBELOW”命令之后添加样式命令,它应该可以工作:

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

或者选择您想要的任何颜色,只要您将大小设置为 0。

于 2011-04-04T11:32:48.130 回答