Wie setze ich einen Inhalt auf einer nächsten Seite in Reportlabs - Python fort?
Ich mache eine Tabelle, in der die Tabelle je nach den empfangenen Daten entweder klein oder groß sein kann.
Während ich einen riesigen Datensatz zur Verfügung stellte, bemerkte ich, dass die Tabelle zwar erstellt wird, mein gesamter Inhalt jedoch nicht vorhanden ist, da er nur 1 Seite dafür belegt.
Meine Frage lautet daher: Wie setze ich einen Inhalt ohne Verwendung von auf einer nächsten Seite in Reportlabs fort?showpage()
, da ich nicht wissen kann, wann ich schlagen sollshowpage
oder wann nicht, weil der Inhalt dynamisch generiert wird?
Code
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('''<b>City Name</b>''', styleBH)
meter_name = Paragraph('''<b>Meter Name</b>''', styleBH)
consumption = Paragraph('''<b>Total Consumption</b>''', 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))