Python学习之使用Python生成P

发布时间:2019-09-22 07:47:28编辑:auto阅读(1547)

    在有些时候运维同事需要对一些数据收集后形成PDF报告的形式发送出去。利用python的reportlab库可以帮我们很快的实现自定义生成PDF报告。

    在CentOS 下通过sudo yum install python-reportlab -y 安装reportlab库


    #/usr/bin/python
    
    from reportlab.pdfgen import canvas
    
    def hello():                           #定义hello函数
        c=canvas.Canvas("Helloworld.pdf")       #定义文件名称,会自动创建文件
        c.drawString(100,100,"Hello World")     #简单的文件内容布局和内容
        c.showPage()                            #停止画图
        c.save()                                #创建PDF
    hello()


    #/usr/bin/python
    
    import subprocess
    import datetime
    from reportlab.pdfgen import canvas
    from reportlab.lib.units import inch
    
    def disk_report():                #查看磁盘空间使用量
        p=subprocess.Popen("df -h",shell=True,stdout=subprocess.PIPE)
        return p.stdout.readlines()
    
    def create_pdf(input,output="disk_report.pdf"):   #创建PDF文件
        now=datetime.datetime.today()
        date=now.strftime("%h %d %Y %H:%M:%S")
        c=canvas.Canvas(output)
        textobject=c.beginText()
        textobject.setTextOrigin(inch,11*inch)
        textobject.textLines('''
        Disk Capacity Report: %s
        ''' % date)
    
        for line in input:
            textobject.textLine(line.strip())
        c.drawText(textobject)
        c.showPage()
        c.save()
    
    report=disk_report()
    create_pdf(report)


    利用reportlab库还可以在PDF中添加颜色和图表。

    可以通过查看文档学习如何详细使用

    http://www.reportlab.com/docs/reportlab-userguide.pdf


关键字