将支持页面布局的水平线添加到ReportLab表布局中

时间:2011-04-03 16:19:51

标签: python reportlab

我正在使用ReportLab构建PDF,其中包含一个包含大部分内容的表。

为了帮助在视觉上区分行,我想在每行后面加一条水平线,只要它不是页面的最后一行

要在每个行之后放一条水平线,我可以使用TableStyle:

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

..但是使用TableStyles似乎不可能,因为在那时,ReportLab将不知道我的内容的页面布局。

使用onFirstPageonLaterPages参数对doc.build进行某种方式吗?

1 个答案:

答案 0 :(得分: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。