2017-04-01 1 views
0

Comment sortir toutes les images d'un répertoire vers la même sortie pdf en utilisant fpdf. Je peux obtenir le dernier fichier dans le dossier pour sortir en format pdf ou en sortie plusieurs fichiers PDF pour chaque image, mais pas toutes les images dans le même pdf comme un catalogue. Je suis sûr que c'est la boucle pour mais ne peut pas résoudre correctement.fpdf sortie unique avec plusieurs images

from fpdf import FPDF 
from PIL import Image 
import glob 
import os 


# set here 
image_directory = '/home/User/Desktop/images/' 
extensions = ('*.jpg','*.jpeg','*.png','*.gif') 


# set 0 if you want to fit pdf to image 
# unit : pt 
margin = 10 

imagelist=[] 
for ext in extensions: 
    imagelist.extend(glob.glob(os.path.join(image_directory,ext))) 

pdf = FPDF(unit="pt", format=[width + 2*margin, height + 2*margin]) 
pdf.add_page() 
cover = Image.open(imagePath) 
width, height = cover.size 

for imagePath in imagelist: 
    pdf.image(imagePath, margin, margin) 
    destination = os.path.splitext(imagePath)[0] 
pdf.output(destination + ".pdf", "F") 

Répondre

1

toujours pas pourquoi fpdf n'a pas été groupait l'itération des fichiers d'image en sortie PDF unique, mais img2pdf a accepté une liste de noms de fichiers fonctionnait très bien.

import img2pdf 

imagefiles = ["test1.jpg", "test2.png"] 

with open("images.pdf","wb") as f: 
    f.write(img2pdf.convert(imagefiles)) 
+0

Fonctionne bien! Merci pour le partage! – Xonshiz