AI_Doc / backend /utils /pdf_generator.py
Nausad's picture
Upload 22 files
d160281 verified
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas
from reportlab.lib import colors
def generate_pdf(report_data, pdf_path, logo_path=None):
c = canvas.Canvas(pdf_path, pagesize=A4)
width, height = A4
# Title
c.setFont("Helvetica-Bold", 20)
c.setFillColor(colors.darkblue)
c.drawString(180, height - 60, "AI Doctor Recommendation Report")
# Logo
if logo_path:
try:
c.drawImage(logo_path, 40, height - 90, width=60, height=60)
except:
pass
c.setFillColor(colors.black)
c.setFont("Helvetica", 12)
y = height - 130
fields = [
("Date", report_data.get("date", "")),
("Patient Name", report_data.get("patient_name", "")),
("Symptoms", report_data.get("symptoms", "")),
("Predicted Disease", report_data.get("predicted_disease", "")),
("Recommended Doctor", report_data.get("doctor_name", "")),
("Specialization", report_data.get("specialization", "")),
("Confidence", f"{report_data.get('confidence', '')}%"),
]
for label, value in fields:
c.setFont("Helvetica-Bold", 12)
c.drawString(50, y, f"{label}:")
c.setFont("Helvetica", 12)
c.drawString(180, y, str(value))
y -= 30
c.setFont("Helvetica-Oblique", 11)
c.setFillColor(colors.gray)
c.drawString(50, 60, "Generated by AI Doctor Recommendation System")
c.save()