Untitled
unknown
plain_text
7 months ago
2.0 kB
5
Indexable
from fpdf import FPDF
# Create a PDF class instance
pdf = FPDF()
pdf.set_auto_page_break(auto=True, margin=15)
pdf.add_page()
pdf.set_font("Arial", size=12)
# Title
pdf.set_font("Arial", style="B", size=16)
pdf.cell(200, 10, "Student Invoice", ln=True, align="C")
pdf.ln(10)
# University details (Placeholder)
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, "University Name", ln=True, align="L")
pdf.cell(200, 10, "University Address", ln=True, align="L")
pdf.cell(200, 10, "Contact: +60-XXXXXXXX", ln=True, align="L")
pdf.ln(10)
# Student details (Placeholder)
pdf.cell(200, 10, "Student Name: [Placeholder Name]", ln=True, align="L")
pdf.cell(200, 10, "Student ID: [Placeholder ID]", ln=True, align="L")
pdf.cell(200, 10, "Academic Year: 2024/25", ln=True, align="L")
pdf.cell(200, 10, "Semester: Year 3, Semester 2", ln=True, align="L")
pdf.ln(10)
# Table headers
pdf.set_font("Arial", style="B", size=12)
pdf.cell(120, 10, "Description", border=1, align="C")
pdf.cell(50, 10, "Amount (RM)", border=1, align="C")
pdf.ln()
# Table content
pdf.set_font("Arial", size=12)
fees = [
("Corporate Governance", 1036.00),
("Managing Risk", 1036.00),
("Financial Decision Making", 1036.00),
("Elective Course", 777.00),
("Elective Course", 777.00),
("Award Assessment", 90.00),
("Facilities", 200.00)
]
# Insert rows into table
for item, amount in fees:
pdf.cell(120, 10, item, border=1)
pdf.cell(50, 10, f"{amount:.2f}", border=1, align="R")
pdf.ln()
# Total amount
total_amount = sum(amount for _, amount in fees)
pdf.set_font("Arial", style="B", size=12)
pdf.cell(120, 10, "Total Amount Payable", border=1)
pdf.cell(50, 10, f"{total_amount:.2f}", border=1, align="R")
pdf.ln(10)
# Payment due date
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, "Please pay this amount by 17-03-2025", ln=True, align="L")
# Save the PDF
pdf_file_path = "/mnt/data/Student_Invoice.pdf"
pdf.output(pdf_file_path)
# Return file path
pdf_file_path
Editor is loading...
Leave a Comment