Html_Layout / app.py
coolsourav100's picture
Update app.py
93debc4 verified
import streamlit as st
from bs4 import BeautifulSoup
import pdfkit
import tempfile
# Set up Streamlit interface
st.title("HTML to PDF Converter")
# Input HTML content
html_input = st.text_area("Paste your HTML content here:", height=300)
if st.button("Convert to PDF"):
# Parse HTML content
soup = BeautifulSoup(html_input, "html.parser")
validated_html = str(soup) # Convert back to string if needed
# Specify the path to the wkhtmltopdf executable
config = pdfkit.configuration(wkhtmltopdf='/path/to/wkhtmltopdf') # Update this path based on your installation
# Convert HTML to PDF
with tempfile.NamedTemporaryFile(delete=False, suffix=".pdf") as tmp_pdf:
pdfkit.from_string(validated_html, tmp_pdf.name, configuration=config)
st.success("PDF generated successfully!")
# Provide a download button
with open(tmp_pdf.name, "rb") as pdf_file:
st.download_button(
label="Download PDF",
data=pdf_file,
file_name="converted_document.pdf",
mime="application/pdf"
)