Search code examples
pythonreportlab

Reportlab - How to add margin between Tables?


So i am trying to create three tables per page, the following code will collide all three tables together with 0 margin between them. I would like some white space between two tables. Is there a configuration for that?

doc = SimpleDocTemplate("my.pdf", pagesize=A4)
elements = []
i = 0
for person in persons:
    data = get_data()
    t = Table(data, colWidths=col_widths, rowHeights=row_heights)
    elements.append(t)
    i = i + 1
    if i % 3 == 0:
        elements.append(PageBreak())

doc.build(elements)

Solution

  • You could try using the Spacer function to add space between the tables. An example of its use from the documentation is:

    from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer
    
    def go():
     doc = SimpleDocTemplate("hello.pdf")
     Story = [Spacer(1,2*inch)]
    
     for i in range(100):
         bogustext = ("This is Paragraph number %s. " % i) *20
         p = Paragraph(bogustext, style)
         Story.append(p)
         Story.append(Spacer(1,0.2*inch))
         doc.build(Story, onFirstPage=myFirstPage, onLaterPages=myLaterPages)