从Jupyter Notebook的文件夹中的图像创建PDF

问题描述

我在Jupyter Notebook的一个文件夹中大约有16个JPG文件,我希望将其编译为1个PDF,但只能以特定顺序进行。就像在带有JPG的文件夹中一样,我有a1,a2,a3,a4,b1,b2,b3,b4等。我想将所有以'a'开头的4个文件放在PDF的第一页中,将以'b'开头的文件放在PDF的下一页,等等。

我尝试过这个:

from fpdf import FPDF
pdf = FPDF()
# imagelist is the list with all image filenames
for image in imagelist:
    pdf.add_page()
    pdf.image(image,x,y,w,h)
pdf.output("yourfile.pdf","F")

但是我不确定如何获取文件并将它们放在列表中以执行此操作,或者我如何以想要的方式排列它们。 感谢任何回答!

解决方法

如果您的图像按照您的名字命名,则可以执行以下操作。根据您希望它们在页面上的位置定义x,y,w,h

from fpdf import FPDF
pdf = FPDF()
dims = [
    (x,y,w,h),(x,h)
]

for image_type in set([i[0] for i in image_list]):
    imgs = list(filter(lambda x:image_type in x,image_list))
    pdf.add_page()
    for i,j in zip(imgs,dims):
        pdf.image(i,j[0],j[1],j[2],j[3])
pdf.output("yourfile.pdf","F")