# imports modulefromreportlab.platypusimportSimpleDocTemplate,Table,Paragraph,TableStylefromreportlab.libimportcolorsfromreportlab.lib.pagesizesimportA4fromreportlab.lib.stylesimportgetSampleStyleSheet# data which we are going to display as tablesDATA=[["Date","Name","Subscription","Price (Rs.)"],["16/11/2020","Full Stack Development with React & Node JS - Live","Lifetime","10,999.00/-",],["16/11/2020","Geeks Classes: Live Session","6 months","9,999.00/-"],["Sub Total","","","20,9998.00/-"],["Discount","","","-3,000.00/-"],["Total","","","17,998.00/-"],]# creating a Base Document Template of page size A4pdf=SimpleDocTemplate("receipt.pdf",pagesize=A4)# standard stylesheet defined within reportlab itselfstyles=getSampleStyleSheet()# fetching the style of Top level heading (Heading1)title_style=styles["Heading1"]# 0: left, 1: center, 2: righttitle_style.alignment=1# creating the paragraph with# the heading text and passing the styles of ittitle=Paragraph("GeeksforGeeks",title_style)# creates a Table Style object and in it,# defines the styles row wise# the tuples which look like coordinates# are nothing but rows and columnsstyle=TableStyle([("BOX",(0,0),(-1,-1),1,colors.black),("GRID",(0,0),(4,4),1,colors.black),("BACKGROUND",(0,0),(3,0),colors.gray),("TEXTCOLOR",(0,0),(-1,0),colors.whitesmoke),("ALIGN",(0,0),(-1,-1),"CENTER"),("BACKGROUND",(0,1),(-1,-1),colors.beige),])# creates a table object and passes the style to ittable=Table(DATA,style=style)# final step which builds the# actual pdf putting together all the elementspdf.build([title,table])