Combine all the images in a folder to a PDF file

When you have a series of images which needs to be combined as a single PDF file for ease of reading, use the following python script. The script used pillow library.

If you don’t have pillow installed already, type the following in your terminal to install it.

python -m pip install Pillow

for more information follow this link

The script


from PIL import Image
import os

folder = os.getcwd()
files= os.listdir(folder)

images=[]

for file in files:
    if file.endswith(".png"): #replace ".png" with ".jpg" if you have jpg file format
        image=Image.open(os.path.join(folder,image))
        images.append(image)

pdf_path = "PDF_Filename.pdf" #include the ".pdf" extension

images[0].save(pdf_path, "PDF", resolution=100.0, save_all=True, append_images=images[1:])

# Note the save_all=True, and append_images = [1:]. These two arguments will make sure 
# all the images are included and saved together

Note that, the script isn’t controlling the page size of the PDF. It just flattens the images and combines them as a pdf file. So the page size in the pdf file will be the size of the images. To control the page size of the PDF file (Standard sizes like A4, A3), we need to use a different library. I will link the post here when I write it.