¿Cómo puedo convertir todos los archivos JPG de una carpeta a PDF y combinarlos?

Tengo algunos archivos JPG de 1924 × 2972 ​​en una carpeta (/ img /). Quiero 1) Convertirlos a PDF y 2) Combinarlos en un solo PDF. Pero no tengo éxito. Soy nuevo en Python. Por favor, hágame saber cómo puedo proceder.

from PIL import Image import glob from fpdf import FPDF # imagelist = [] for filename in glob.glob('img/*.jpg'): #assuming jpg im=Image.open(filename) imagelist.append(im) pdf = FPDF() # imagelist is the list with all image filenames for image in imagelist: pdf.add_page() pdf.image(image, 10,210,297) pdf.output("yourfile.pdf", "F") 

Error:

  File "", line 1, in  pdf.image(image, 10,210,297) File "/Users/xyz/anaconda/lib/python3.6/site-packages/fpdf/fpdf.py", line 150, in wrapper return fn(self, *args, **kwargs) File "/Users/xyz/anaconda/lib/python3.6/site-packages/fpdf/fpdf.py", line 960, in image if not name in self.images: TypeError: unhashable type: 'JpegImageFile' 

En su segundo ciclo, debe hacer referencia a la ruta de cada jpg:

 pdf.image(image, 10,210,297) 

Edición: adicionalmente, creo que solo necesitas la ruta de acceso a cada imagen (en lugar de abrir cada imagen con Image.open . Prueba lo siguiente:

 import glob from fpdf import FPDF # imagelist = glob.glob('img/*.jpg') pdf = FPDF() # imagelist is the list with all image filenames for image in imagelist: pdf.add_page() pdf.image(image, 10,210,297) pdf.output("yourfile.pdf", "F")