سؤال

I'm making a dynamically generated report in python using Reportlab's Platypus.

I have multiple tables that are generated, most only have between 10 and 20 rows. Right now they are being automatically being split at the end of my page, but I would much rather have them stay together on the same page.

I have tried setting splitByRow to False upon Table instantiation, but that raises a "Not Implemented" error.

Also, I am not allowed make any changes to the reportLab python files, although I can see the code. Maybe I can subclass Table and disable split somehow?

What's the easiest way to disable flowable splitting?

هل كانت مفيدة؟

المحلول

I found the answer on my own. I import KeepTogether from reportlab.platypus.flowables and then when I add a table to the elements list, I use KeepTogether, like so:

from reportlab.platypus.flowables import KeepTogether 
t = Table(tableData)
self.elements[name] = KeepTogether(t)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top