Crear recibos de pago usando Python

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:

recibo.pdf

Publicación traducida automáticamente

Artículo escrito por debdutgoswami y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *