File size: 1,816 Bytes
c826e3d
 
 
 
 
c1d9d4e
c826e3d
 
 
c1d9d4e
c826e3d
 
 
 
c1d9d4e
c826e3d
c1d9d4e
c826e3d
 
 
 
 
 
 
 
c1d9d4e
 
 
 
 
c826e3d
 
 
c1d9d4e
 
 
 
 
 
 
c826e3d
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
from PIL import Image
import io

def images_to_pdf(uploaded_images):
    # Liste pour stocker les objets Image
    image_list = []
    for uploaded_file in uploaded_images:
        image = Image.open(uploaded_file)
        # Conversion en RGB pour la compatibilité PDF
        if image.mode != "RGB":
            image = image.convert("RGB")
        image_list.append(image)
    
    # Création d'un flux mémoire pour le PDF
    pdf_buffer = io.BytesIO()
    # La première image sert de base et les autres sont ajoutées en tant que pages
    image_list[0].save(
        pdf_buffer, format="PDF", resolution=100.0, save_all=True, append_images=image_list[1:]
    )
    pdf_buffer.seek(0)
    return pdf_buffer

def main():
    st.title("Conversion d'Images en PDF")
    st.write("Uploader plusieurs images pour les convertir en un seul fichier PDF.\n"
             "Assurez-vous de nommer vos fichiers (ex. : 1_image.jpg, 2_image.jpg, etc.) "
             "pour que l'ordre soit respecté.")

    # Uploader multiple d'images
    uploaded_files = st.file_uploader("Choisissez vos images", type=["png", "jpg", "jpeg"], accept_multiple_files=True)
    
    if uploaded_files:
        # Tri des fichiers par nom (à adapter si nécessaire)
        uploaded_files = sorted(uploaded_files, key=lambda x: x.name)
        
        st.write("Ordre des images sélectionnées :")
        for f in uploaded_files:
            st.write(f.name)
        
        if st.button("Convertir en PDF"):
            pdf_file = images_to_pdf(uploaded_files)
            st.download_button(
                label="Télécharger le PDF",
                data=pdf_file,
                file_name="images_converties.pdf",
                mime="application/pdf"
            )

if __name__ == "__main__":
    main()