Crear recibos de pago es una tarea bastante común, ya sea en un sitio web de comercio electrónico o en cualquier tienda local.
Aquí, veremos cómo crear nuestros propios recibos de transacciones simplemente usando python. Estaríamos usando reportlab para generar los archivos PDF. Por lo general, viene como un paquete integrado, pero a veces puede que no esté presente también. Si no está presente, simplemente escriba lo siguiente en su terminal
Instalación:
pip install reportlab
Acercarse:
- Módulo de importación.
- Necesitamos los datos en forma de una lista de listas. El índice 0 del índice externo son los encabezados.
- Creamos una plantilla de documento simple con el tamaño de papel especificado (aquí A4)
- Luego obtenga una hoja de estilo de muestra de las hojas de estilo integradas y agregue el estilo correspondiente.
- Después de haber creado un objeto de estilo, introduzca los datos y la hoja de estilo en el objeto pdf y constrúyalo.
A continuación se muestra la implementación:
Python3
# imports module from reportlab.platypus import SimpleDocTemplate, Table, Paragraph, TableStyle from reportlab.lib import colors from reportlab.lib.pagesizes import A4 from reportlab.lib.styles import getSampleStyleSheet # data which we are going to display as tables DATA = [ [ "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 A4 pdf = SimpleDocTemplate( "receipt.pdf" , pagesize = A4 ) # standard stylesheet defined within reportlab itself styles = getSampleStyleSheet() # fetching the style of Top level heading (Heading1) title_style = styles[ "Heading1" ] # 0: left, 1: center, 2: right title_style.alignment = 1 # creating the paragraph with # the heading text and passing the styles of it title = 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 columns style = 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 it table = Table( DATA , style = style ) # final step which builds the # actual pdf putting together all the elements pdf.build([ title , table ])
Producción:
Publicación traducida automáticamente
Artículo escrito por debdutgoswami y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA