Source code for pyquickhelper.imghelper.img_export

"""
Tools to convert images.


:githublink:`%|py|5`
"""
import glob


[docs]def images2pdf(images, output, fLOG=None): """ Merges multiples images into one single pdf. Relies on :epkg:`img2pdf`. If an image name contains ``'*'``, the function assumes it is a pattern and uses :epkg:`*py:glob`. :param images: images to merge, it can be a comma separated values :param output: output filename or stream :param fLOG: logging function .. cmdref:: :title: Merge images into PDF :cmd: -m pyquickhelper images2pdf --help Merges one or several images into a single PDF document. :githublink:`%|py|25` """ from img2pdf import convert if isinstance(images, str): if ',' in images: images = images.split(',') else: images = [images] # pragma: no cover elif not isinstance(images, list): raise TypeError("Images must be a list.") # pragma: no cover all_images = [] for img in images: if "*" in img: names = glob.glob(img) all_images.extend(names) else: all_images.append(img) if fLOG is not None: # pragma: no cover for i, img in enumerate(all_images): fLOG("[images2pdf] {}/{} '{}'".format(i + 1, len(all_images), img)) if isinstance(output, str): st = open(output, 'wb') close = True else: # pragma: no cover close = False st = output convert(all_images, outputstream=st, with_pdfrw=False) if close: st.close() return all_images