FYDP1 / app.py
Hidayatmahar's picture
Create app.py
b47c5bd verified
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")