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))

Antworten auf die Frage(2)

Ihre Antwort auf die Frage