No title
February 18, 2025
0
from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas from reportlab.platypus import Image
def generate_sambal_card(output_file, user_details, photo_path): c = canvas.Canvas(output_file, pagesize=letter) width, height = letter
# Draw card border
c.rect(50, height - 300, 500, 200, stroke=1, fill=0)
# Draw photo
if photo_path:
c.drawImage(photo_path, 60, height - 180, width=80, height=100)
# User details
c.setFont("Helvetica-Bold", 12)
c.drawString(160, height - 90, "ई-संबल कार्ड")
c.setFont("Helvetica", 10)
c.drawString(160, height - 110, f"संबल आईडी: {user_details['sambal_id']}")
c.drawString(160, height - 130, f"नाम: {user_details['name']}")
c.drawString(160, height - 150, f"पिता या पति का नाम: {user_details['father_husband']}")
c.drawString(160, height - 170, f"जन्म तिथि: {user_details['dob']}")
c.drawString(160, height - 190, f"लिंग: {user_details['gender']}")
c.drawString(160, height - 210, f"वर्ग: {user_details['category']}")
# Labour department text
c.setFont("Helvetica-Bold", 10)
c.drawString(50, height - 220, "श्रम विà¤ाग | Labour Department")
c.save()
print(f"Card saved as {output_file}")
Example Usage
user_details = { "sambal_id": "123456789", "name": "Ramabai Saket", "father_husband": "Munna Lal Saket", "dob": "01/01/1973", "gender": "Female", "category": "SC" }
generate_sambal_card("sambal_card.pdf", user_details, "user_photo.jpg")