4
我建立使用一個的ReportLab PDF,包含大部分內容的表。添加頁面排版感知水平線的ReportLab的表格佈局
爲了幫助區分視覺行,我想在每行之後放一條水平線,,只要它不是頁面上的最後一行。
爲了把水平線後每行,我可以只使用一個TableStyle:
style = TableStyle([
("LINEBELOW", (0,0), (-1,-1), 1, colors.black),
])
t = Table(data)
t.setStyle(style)
..但使用這種TableStyles似乎並不可能,因爲在這一點上ReportLab的不會知道我的內容的頁面佈局。
有沒有辦法用onFirstPage
和onLaterPages
參數到doc.build
?
我想省略:如果您在現有的「LINEBELOW」命令後添加一個樣式命令因此它應該工作對於PDF_的每個頁面中的最後一行_LINEBELOW(表格跨越許多頁面)。將其更改爲(-1,-2)僅刪除表格中最後一行下面的行。 – ejucovy 2011-04-06 16:08:38
哦。以下是文檔中的相關部分:「在任何樣式命令中,第一行索引可以設置爲特殊字符串'splitlast'或'splitfirst'中的一個以指示該樣式只應用於拆分表的最後一行,或者延續的第一行,這樣就可以在拆分的時候分割更好的效果表。「 – 2011-04-06 20:21:41
謝謝,這讓我更加接近。儘管如此,仍然無法運作。 :-( 我知道後表的命令都應該覆蓋早期的,但LINEBELOWs似乎是添加劑:畫線,重量0不會清除與體重1.我也嘗試'(「LINEBELOW」行了, (0, 'splitlast'),( - 1, 'splitlast'),1,colors.white)' - 這導致了灰線(白色黑色的) 這讓我找對了方向,雖然。我發現http://stackoverflow.com/questions/78450/python-reportlab-use-of-splitfirst-splitlast/94869#94869,它看起來像一個類似的子類的方法可能會奏效 – ejucovy 2011-04-07 19:41:19