Pyt*_*ast 9 python pdf pdf-generation reportlab
我正在制作一张桌子,根据收到的数据,桌子可以是小桌子还是大桌子.
虽然我提供了一个庞大的数据集,但我注意到虽然表格正在制作但我的所有内容都不存在,因为它只占用了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('''<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))
Run Code Online (Sandbox Code Playgroud)
使用table.split():
from reportlab.lib.pagesizes import A4 # im using A4
width, height = A4
table_pieces = table.split(width, height)
for table_piece in table_pieces:
table_piece.drawOn(the_canvas, *coordinates)
the_canvas.show_page()
the_canvas.save()
Run Code Online (Sandbox Code Playgroud)
告诉我是否有帮助:)
| 归档时间: |
|
| 查看次数: |
1450 次 |
| 最近记录: |