1

我必须打印一份可能有数百行长度的报告。它的特殊性是每一项的内容都应该打印在两行上。这些线条具有特定的风格。

样本 :

line 1 : First Header line 
line 2 : Second Header line 
line 3 : Name , adress
line 4 : birth date , gender, hobbies 
line 5 : Name , adress
line 6 : birth date , gender, hobbies 
...

我使用表格来处理每页内容。

在样式定义中,我有这样的东西:

('FONTSIZE',(0,2),(-1,-1),18)

但我希望这种风格适用于所有偶数行和像这样的风格

('FONTSIZE',(0,2),(-1,1),12)

适用于所有赔率行。

最好的情况是这两种样式适用于整个表格,除了包含表格标题的第一行和第二行。

4

1 回答 1

7

您可以通过使用根据行号生成表格样式的代码来做到这一点。Reportlab 确实具有自动为行和颜色交替背景颜色的内置功能(在用户手册中查找ROWBACKGROUNDSCOLBACKGROUNDS),但对于任意样式,您必须通过循环遍历数据行来执行以下自定义操作。

table_style = [...]

for i, row in enumerate(table_rows):
  if i % 2 == 0:
    table_style.append(('FONTSIZE',(0,i),(-1,i),18))
  else:
    table_style.append(('FONTSIZE',(0,i),(-1,i),12))

my_table.setStyle(TableStyle(table_style))
于 2013-07-25T14:09:53.460 回答