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

我正在使用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即可.

上一篇:文字排版reportlab


下一篇:python – 使用Django报告标头的参数