File size: 914 Bytes
233973a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 = '<style>body { font-size: 'f'{size}''px; }</style>' + html
    pdf = io.BytesIO()
    pisa.CreatePDF(io.StringIO(html), pdf)
    pdf.seek(0)
    st.sidebar.download_button("Download Markdown File", pdf, f'{name}.pdf')