Reportlab技术问题:如何在表格之间添加空白边距?
解决ReportLab表格间无间距的问题
要在表格之间添加空白间隔,你可以使用ReportLab Platypus中的Spacer元素,它能精准控制垂直方向的空白大小。
具体实现步骤:
- 导入
Spacer类(若未导入) - 在每个表格后添加
Spacer,每页的第三个表格后无需添加,避免页尾出现多余空白 - 调整
Spacer的高度参数,适配你的需求
修改后的代码如下:
from reportlab.platypus import SimpleDocTemplate, Table, PageBreak, Spacer from reportlab.lib.pagesizes import A4 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 += 1 # 非每页第三个表格时,添加垂直空白 if i % 3 != 0: elements.append(Spacer(1, 20)) # 第二个参数为空白高度,单位是点(1英寸=72点),可自行调整 if i % 3 == 0: elements.append(PageBreak()) doc.build(elements)
补充说明:
Spacer(width, height)的第一个参数是宽度,设置为1即可,不会影响布局;第二个参数是垂直空白的高度,你可以根据需要改成30、40等数值来调整间距大小。- 如果希望表格上下自带内边距,也可以通过
TableStyle设置PADDING属性,但Spacer是更直接控制表格之间间距的方式。
内容的提问来源于stack exchange,提问作者DavisZ
相关产品推荐
相关产品推荐

