我正在使用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?
解决方法:
但它应该工作:这是-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即可.