【问题标题】:How can I positionize table in PDF using ReportLab?如何使用 ReportLab 在 PDF 中定位表格?
【发布时间】:2019-03-29 18:23:21
【问题描述】:

我很想创建 PDF 格式的报告。我的报告应该在 PDF 的顶部和标题下方的表格中有一些标题。如何将表格定位在我的 PDF 列表中的确切位置?

现在我的表格是在标题之上创建的。 你可以在下面看到我的代码:

对不起,如果我的问题看起来很愚蠢,我最近才开始使用 ReportLab。

任何帮助将不胜感激!

class Ui_WinTable(object):
    def title(self,canvas,doc):
        canvas.saveState()
        canvas.setFont('Courier-Bold', 16)
        canvas.drawString(200, 800, 'Oil Consumption Report')
        canvas.drawImage('s7logoforreport.bmp', 450, 780)
        canvas.setFont('Courier', 14)
        canvas.drawString(240, 780, 'TSN: ' + self.comboBox_TSN.currentText())
        canvas.drawString(240, 740, 'Engine 1 ' + self.comboBox_Eng.currentText())
    def createPDF(self):
        elements = []
        doc = SimpleDocTemplate('example.pdf', pagesize=A4)
        data = [['00', '01', '02', '03', '04'],
                ['10', '11', '12', '13', '14'],
                ['20', '21', '22', '23', '24'],
                ['30', '31', '32', '33', '34']]
        t1 = Table(data, 20, 20)
        elements.append(t1)
        doc.build(elements,onFirstPage=self.title)

【问题讨论】:

    标签: python-3.x reportlab


    【解决方案1】:

    您可以使用边距为文档中的标题创建空间。像这样:

    doc = SimpleDocTemplate(file,pagesize=A4,rightMargin=3*cm,leftMargin=3*cm,topMargin=4*cm,bottomMargin=3*cm)
    doc.build(Story, onFirstPage=cabeceraPortada, onLaterPages=cabecera)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多