使用reportlab生成pdf的长表

时间:2012-03-23 15:05:12

标签: python pdf reportlab

我正在处理从庞大的数据列表中生成PDF。

没有花哨的样式或格式。只是数据是一个巨大的列表(大约500行和500列)。这是我的代码。目前,根据页面大小在多个页面之间拆分行没有问题,但由于500列不适合一页,因此列被截断。我还想在不同的页面上拆分列。每个单元格条目只是一个整数。我怎样才能做到这一点?

from reportlab.lib import colors
from reportlab.lib.units import cm
from reportlab.lib.pagesizes import A0
from reportlab.platypus import SimpleDocTemplate, LongTable, TableStyle


elements = []
doc = SimpleDocTemplate(output, pagesize=A0)
t = LongTable(data)
t.setStyle(TableStyle([('INNERGRID', (0,0), (-1, -1), 0.25, colors.black), 
                       ('BOX', (0, 0), (-1, -1), 0.25, colors.black), 
                     ]))
elements.append(t)
doc.build(elements)

1 个答案:

答案 0 :(得分:3)

我认为PDF打印的最佳选择可能是实际声明一个足够大的页面大小来处理数据。例如,如果网格的每个块都是1x1英寸,每边有一英寸填充,那么尝试做类似的事情:

doc = SimpleDocTemplate(output, pagesize=(502*inch, 502*inch) )