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

def images_to_pdf(uploaded_images):
    # Liste qui contiendra les objets Image
    image_list = []
    for uploaded_file in uploaded_images:
        image = Image.open(uploaded_file)
        # Convertir l'image en mode RGB si nécessaire (pour la conversion en PDF)
        if image.mode != "RGB":
            image = image.convert("RGB")
        image_list.append(image)
    
    # Créer un flux mémoire pour stocker le PDF
    pdf_buffer = io.BytesIO()
    # Sauvegarder la première image et ajouter les autres 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.")
    
    # Permet de télécharger plusieurs fichiers (types: png, jpg, jpeg)
    uploaded_files = st.file_uploader("Choisissez vos images", type=["png", "jpg", "jpeg"], accept_multiple_files=True)
    
    if uploaded_files:
        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()