我正在使用ReportLab构建PDF,其中包含一个包含大部分内容的表。
为了帮助在视觉上区分行,我想在每行后面加一条水平线,只要它不是页面的最后一行。
要在每个行之后放一条水平线,我可以使用TableStyle:
style = TableStyle([
("LINEBELOW", (0,0), (-1,-1), 1, colors.black),
])
t = Table(data)
t.setStyle(style)
..但是使用TableStyles似乎不可能,因为在那时,ReportLab将不知道我的内容的页面布局。
使用onFirstPage
和onLaterPages
参数对doc.build
进行某种方式吗?
答案 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。