Spaces:
Build error
Build error
| import streamlit as st | |
| from reportlab.lib.pagesizes import letter | |
| from reportlab.pdfgen import canvas | |
| import io | |
| # Function to create PDF with user inputs | |
| def create_pdf(topic, session, name, roll_number, year): | |
| buffer = io.BytesIO() | |
| c = canvas.Canvas(buffer, pagesize=letter) | |
| # Customizable content | |
| c.drawString(100, 750, f"Topic: {topic}") | |
| c.drawString(100, 730, f"Session: {session}") | |
| c.drawString(100, 710, f"Name: {name}") | |
| c.drawString(100, 690, f"Roll Number: {roll_number}") | |
| c.drawString(100, 670, f"Year: {year}") | |
| # Finalize PDF | |
| c.save() | |
| buffer.seek(0) | |
| return buffer | |
| # Streamlit interface | |
| st.title("PDF Generator with Custom Variables") | |
| # User inputs for PDF customization | |
| topic = st.text_input("Enter Topic") | |
| session = st.text_input("Enter Session") | |
| name = st.text_input("Enter Name") | |
| roll_number = st.text_input("Enter Roll Number") | |
| year = st.text_input("Enter Year") | |
| # Button to generate PDF | |
| if st.button("Generate PDF"): | |
| if all([topic, session, name, roll_number, year]): | |
| pdf = create_pdf(topic, session, name, roll_number, year) | |
| st.download_button( | |
| label="Download PDF", | |
| data=pdf, | |
| file_name="custom_document.pdf", | |
| mime="application/pdf" | |
| ) | |
| else: | |
| st.error("Please fill all fields before generating the PDF") |