Reportlab 在表格中插入水平线

Cha*_*arl 2 python reportlab

我知道 LINEABOVE 和 LINEBELOW 样式,我想知道是否有一种方法可以在表格中绘制指定宽度的线。

我正在尝试添加一条不会“接触”表格边框的线,如果我可以在单元格之间添加一些填充,则 LINEABOVE 将完美工作。

max*_*max 5

您可以canvas.line如下图所示使用:

from reportlab.platypus import Paragraph, SimpleDocTemplate

class MyTemplate(object):
    def __init__(self, report_data, page_size='A4',\
        report_type='Full Report', show_header_info=True):
        self.page_size = A4

    def _header_footer(self, canvas, doc):
        # do some stuff...

    def get_data(self):
        buff = BytesIO()
        doc = SimpleDocTemplate(buff, rightMargin=0.5 * inch,\
                                leftMargin=0.5 * inch,\
                                topMargin=110, bottomMargin=70)

        self.canv.line(doc.leftMargin, 100, doc.width, 100)
        doc.build(elements, onFirstPage=self._header_footer,\
                  onLaterPages=self._header_footer,\
                  canvasmaker=TEMPLATE.NumberedCanvas)
        pdf = buff.getvalue()
        buff.close()
        return pdf
Run Code Online (Sandbox Code Playgroud)

参数的顺序是x1,y1,x2,y2,坐标系的左下角是(0, 0)。