Breaking

Wednesday, February 28, 2024

9:52 AM

pdfff

from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas def generate_invoice_pdf(file_path, invoice_data): pdf_canvas = canvas.Canvas(file_path, pagesize=letter) # Set font and size pdf_canvas.setFont("Helvetica", 12) # Invoice header pdf_canvas.drawString(50, 750, "IT Service Invoice") pdf_canvas.drawString(50, 730, "Date: {}".format(invoice_data.get("date", ""))) pdf_canvas.drawString(50, 710, "Invoice Number: {}".format(invoice_data.get("invoice_number", ""))) # Invoice details pdf_canvas.drawString(50, 680, "Client: {}".format(invoice_data.get("client", ""))) pdf_canvas.drawString(50, 660, "Service Description: {}".format(invoice_data.get("service_description", ""))) # Invoice items items = invoice_data.get("items", []) pdf_canvas.drawString(50, 640, "Items:") y_position = 620 for item in items: pdf_canvas.drawString(70, y_position, "- {}".format(item)) y_position -= 20 # Total pdf_canvas.drawString(50, y_position, "Total: ${}".format(invoice_data.get("total", ""))) pdf_canvas.save() # Example usage invoice_data = { "date": "2024-02-28", "invoice_number": "INV-123", "client": "Client Company", "service_description": "IT Consultancy", "items": ["Service 1", "Service 2", "Service 3"], "total": 1000 } generate_invoice_pdf("IT_Service_Invoice.pdf", invoice_data)