Pdf / app.py
Docfile's picture
Create app.py
c826e3d verified
raw
history blame
1.46 kB
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()