A home rolled solution using Python 3.8 & ReportLab (with thanks to Michael Driscoll for his book ReportLab: PDF Processing with Python which I referred to to do this):
Once you have python installed, if it isn't already, pip install pillow reportlab
to get the required libraries then, in a python shell or a script:
import glob
from reportlab.lib.pagesizes import A4
from reportlab.lib import utils
from reportlab.platypus import Image, SimpleDocTemplate, Spacer
filelist = glob.glob("*.jpg") # Get a list of files in the current directory
filelist.sort()
doc = SimpleDocTemplate("output_rl.pdf", pagesize=A4)
story = []
for fn in filelist:
img = utils.ImageReader(fn)
img_width, img_height = img.getSize()
aspect = img_height / float(img_width)
img = Image(fn, width=550, height=(550*aspect))
story.append(img)
space = Spacer(width=0, height=5)
story.append(space)
doc.build(story)
Note that this has only been tested with jpeg files but according the ReportLab User-guide since pillow is installed other formats can be handled.
The scaling may need to be more sophisticated for your use.