使用 python 使用 reportlab 生成 pdf

Generate pdf with reportlab using python

我正在通过 ReportLab 生成 PDF 文件,输入文件在 excel 中,如果单元格值为空白,则生成为 pdf 中的 NONE。我想将 NONE 值转换为空白。

根据我的代码对此有任何解决方案。此 Pdf 使用 python

通过 reportlab 构建

代码

import openpyxl
from reportlab.pdfgen import canvas
wb = openpyxl.load_workbook (r'Input.xlsx', data_only=True )
sheet = wb['Sheet1']
ws = wb.active

y1= 100
x= 200
x1 = 700

    def main():
        for i in range ( 2, 42 ):
           amount1 = sheet.cell(row=i, column=1).value
           amount2 = sheet.cell(row=i, column=2).value
           amount3 = sheet.cell(row=i, column=3).value
           amount4 = sheet.cell(row=i, column=4).value
           amount5 = sheet.cell(row=i, column=5).value
           c = canvas.Canvas('output.pdf')
    
           y =1500
           c.setFont ( 'Helvetica', 12 )
           c.drawString ( x,y, 'Component1' )
           c.drawString ( x1, y, str ( amount1 ) )
           y -= y1

           c.drawString ( x,y, 'Component2' )
           c.drawString ( x1,y, str ( amount2 ) )
           y -= y1

           c.drawString ( x,y, 'Component3' )
           c.drawString ( x1, y, str ( amount3) )
           y -= y1

           c.drawString ( x,y, Component4' )
           c.drawString ( x1, y, str ( amount4 ) )
           y -= y1
        
           c.drawString ( x, y, 'Component5' )
           c.drawString ( x1, y, str ( amount5 ) )
           y -= y1

    if __name__ == "__main__":
       main ()

我的输出

在生成为 None 的 pdf 值中,但想转换为空白

当有一个函数几乎可以满足您的需求但又不完全是编写您自己的函数的常见做法时,它通常会调用原始函数,但在某些情况下行为会有所不同。这些行为可以用条件语句引入。

def str_(value):
    if value is None:
        return ''
    return str(value)

c.drawString ( x,y, 'Component2' )
c.drawString ( x1,y, str_( amount2 ) )