向ReportLab表格布局添加页面布局感知的横线
我正在使用ReportLab创建一个PDF文件,里面有一个表格,表格里放了大部分内容。
为了让每一行看起来更清晰,我想在每一行后面加一条横线,但最后一行除外。
如果我想在每一行后面加横线,我可以直接用一个表格样式(TableStyle):
style = TableStyle([
("LINEBELOW", (0,0), (-1,-1), 1, colors.black),
])
t = Table(data)
t.setStyle(style)
..但是用表格样式来实现这个功能似乎不太行,因为在那时ReportLab还不知道我内容的页面布局。
有没有什么方法可以通过onFirstPage
和onLaterPages
这两个参数来实现呢?
1 个回答
2
但是这个方法应该是有效的:这就是-1
的妙处:无论如何,它总是指向最后一行或最后一列。真正的关键在于如何去掉最后一行之后的那条线。要做到这一点,只需更改“LINEBELOW”结束的坐标。也就是说,你的元组应该像这样:
("LINEBELOW", (0, 0), (-1, -2), 1, colors.black)
这样可以确保它应用到-2
行,也就是倒数第二行。这样就能得到你想要的效果。
补充说明 2011/4/6
哦,你需要的是splitlast
。如果你在现有的“LINEBELOW”命令后面添加一个样式命令,它应该就能工作,如下所示:
("LINEBELOW", (0, 'splitlast'), (-1, 'splitlast'), 0, colors.black)
或者你可以选择任何你想要的颜色,只要把大小设置为0就可以了。