File size: 2,783 Bytes
5228307
8e65160
5228307
 
 
8e65160
 
 
 
 
 
 
 
 
 
 
 
5228307
 
 
 
 
 
 
 
 
 
 
 
 
 
8e65160
5228307
 
 
 
 
 
 
 
 
 
8e65160
5228307
 
 
 
c447854
5228307
 
 
 
 
 
 
 
 
 
 
 
8e65160
5228307
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import streamlit as st
from main import convert_pdf_to_webp, convert_webp_to_pdf, convert_images_to_webp, Percentage, filig
import os

def main():
    st.markdown(
        """
        <style>
        .stApp {
            direction: rtl;
            text-align: right;
        }
        </style>
        """,
        unsafe_allow_html=True
    )

    st.title("تبدیل فایل‌ها")
    st.write("فایل های PDF تا 80 درصد حجم کمتر!")

    option = st.sidebar.selectbox("انتخاب عملیات", ("تبدیل تصاویر به PDF کم حجم", "کاهش حجم PDF"))

    if option == "تبدیل تصاویر به PDF کم حجم":
        st.subheader("تبدیل تصاویر به PDF کم حجم")
        uploaded_files = st.file_uploader("تصاویر خود را آپلود کنید", type=["png", "jpg", "jpeg", "bmp", "gif"], accept_multiple_files=True)

        if uploaded_files:
            image_paths = []
            kol = 0
            for uploaded_file in uploaded_files:
                image_path = os.path.join("temp", uploaded_file.name)
                kol += uploaded_file.size
                with open(image_path, "wb") as f:
                    f.write(uploaded_file.getbuffer())
                image_paths.append(image_path)

            if st.button("تبدیل به PDF کم حجم"):
                convert_images_to_webp(image_paths)
                output_pdf = "output.pdf"
                convert_webp_to_pdf(output_pdf)
                with open(output_pdf, "rb") as f:
                    st.download_button("دانلود PDF", f, file_name=output_pdf)
                dar = Percentage(kol, os.path.getsize(output_pdf))
                st.success(f"حجم PDF نسبت به حجم تصاویر {dar} کاهش یافته است!")

    elif option == "کاهش حجم PDF":
        st.subheader("کاهش حجم PDF")
        uploaded_file = st.file_uploader("فایل PDF خود را آپلود کنید", type=["pdf"], accept_multiple_files=False)

        if uploaded_file:
            pdf_path = os.path.join("temp", uploaded_file.name)
            with open(pdf_path, "wb") as f:
                f.write(uploaded_file.getbuffer())

            if st.button("کاهش حجم PDF"):
                convert_pdf_to_webp(pdf_path)
                output_pdf = "output_converted.pdf"
                convert_webp_to_pdf(output_pdf)
                with open(output_pdf, "rb") as f:
                    st.download_button("دانلود PDF", f, file_name=output_pdf)
                dar = Percentage(uploaded_file.size, os.path.getsize(output_pdf))
                st.success(f"حجم pdf {dar} کاهش یافت!")

if __name__ == "__main__":
    if not os.path.exists('temp'):
        os.makedirs('temp')
    main()