向ReportLab表格布局添加页面布局感知的横线

4 投票
1 回答
3164 浏览
提问于 2025-04-16 14:59

我正在使用ReportLab创建一个PDF文件,里面有一个表格,表格里放了大部分内容。

为了让每一行看起来更清晰,我想在每一行后面加一条横线,但最后一行除外

如果我想在每一行后面加横线,我可以直接用一个表格样式(TableStyle):

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

..但是用表格样式来实现这个功能似乎不太行,因为在那时ReportLab还不知道我内容的页面布局。

有没有什么方法可以通过onFirstPageonLaterPages这两个参数来实现呢?

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就可以了。

撰写回答