import streamlit as st import markdown from xhtml2pdf import pisa import io stitle = st.sidebar.title("Markdown to PDF") size_exp = st.sidebar.expander("Text Size", expanded=False) name_exp = st.sidebar.expander("File Name", expanded=True) with size_exp: size = st.text_input("Text Size", value="15", label_visibility="hidden", key="size") with name_exp: name = st.text_input("File Name", value="markdown", label_visibility="hidden", key="file_name") markdown_text = st.text_area('Enter your Markdown Text Here', height=700, label_visibility="hidden", key="markdown_text") generate_btn = st.button('Generate PDF') if generate_btn: html = markdown.markdown(markdown_text) html = '' + html pdf = io.BytesIO() pisa.CreatePDF(io.StringIO(html), pdf) pdf.seek(0) st.sidebar.download_button("Download Markdown File", pdf, f'{name}.pdf')