|
from meutils.pipe import * |
|
from appzoo.streamlit_app import Page |
|
|
|
import streamlit as st |
|
import streamlit.components.v1 as components |
|
|
|
class MyPage(Page): |
|
""" |
|
https://zhuanlan.zhihu.com/p/518115802?utm_medium=social&utm_oi=1290068536690085888 |
|
""" |
|
|
|
def main(self): |
|
|
|
|
|
with st.form("PDF"): |
|
file = st.file_uploader("选择待上传的PDF文件", type=['pdf', 'docx', 'xlsx']) |
|
|
|
if st.form_submit_button('开始预览', help='先上传文件!!!'): |
|
if file is not None: |
|
base64_pdf = base64.b64encode(file.read()).decode('utf-8') |
|
|
|
self.display_pdf(base64_pdf, width='100%', height=1000) |
|
self.display_html() |
|
|
|
def display_pdf(self, base64_pdf, width='100%', height=1000): |
|
|
|
pdf_display = f"""<embed src="data:application/pdf;base64,{base64_pdf}" width="{width}" height="{height}" type="application/pdf">""" |
|
|
|
|
|
|
|
st.markdown(pdf_display, unsafe_allow_html=True) |
|
|
|
def display_html(self, text='会飞的文字'): |
|
_ = f""" |
|
<marquee direction="down" width="100%" height="100%" behavior="alternate" style="border:solid" bgcolor="#00FF00"> |
|
|
|
<marquee behavior="alternate"> |
|
|
|
{text} |
|
|
|
</marquee> |
|
|
|
</marquee> |
|
""" |
|
st.markdown(_, unsafe_allow_html=True) |
|
|
|
if __name__ == '__main__': |
|
app_title = "# PDF应用" |
|
app_info = "PDF预览" |
|
MyPage( |
|
app_title=app_title, |
|
app_info=app_info, |
|
).main() |
|
|