Как мне продолжить содержание на следующей странице в Reportlabs - Python
m составление таблицы, где таблица может быть как маленькой, так и большой в зависимости от принимаемых данных.
В то время как я предоставлял огромный набор данных, я заметил, что, хотя таблица составляется, но моего всего содержимого там нет, поскольку для этого она занимает всего 1 страницу.
Итак, мой вопрос: как я могу продолжить содержание на следующей странице в Reportlabs, не используяshowpage()
, так как я не смогу знать, когда ударитьshowpage
или когда нет, потому что контент генерируется динамически?
Код
def plot_table(pie_labels, pie_data, city_devices):
styles = getSampleStyleSheet()
styleN = styles["BodyText"]
styleN.alignment = TA_LEFT
styleBH = styles["Normal"]
styleBH.alignment = TA_CENTER
city_name = Paragraph('''City Name''', styleBH)
meter_name = Paragraph('''Meter Name''', styleBH)
consumption = Paragraph('''Total Consumption''', styleBH)
data= [[city_name, meter_name, consumption]]
# Texts
for label,record,device in zip(pie_labels,pie_data,city_devices):
label = Paragraph(label, styleN)
record = Paragraph(str(record), styleN)
device_list = ""
for d in device:
device_list += str(d) + ", "
device = Paragraph(device_list, styleN)
data.append([label, device, record])
table = Table(data, colWidths=[5.05 * cm, 5.7 * cm, 3* cm ])
table.setStyle(TableStyle([('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
('BOX', (0,0), (-1,-1), 0.25, colors.black),
]))
return table
table = plot_table(pie_labels, pie_data, city_devices)
table.wrapOn(the_canvas, width, height)
table.drawOn(the_canvas, *coord(2, 59.6, cm))