将图片文件夹转换为单个 PDF

Posted

技术标签:

【中文标题】将图片文件夹转换为单个 PDF【英文标题】:Folders of pictures into a single PDF 【发布时间】:2022-01-12 14:03:52 【问题描述】:

我有以下问题。

我有这样的文件夹结构:

vol1/
     chap1/
          01.jpg
          02.JPG
          03.JPG
     chap2/
          04.JPG
          05.jpg
          06.jpg
     chap3/
          07.JPG
          08.jpg
          09.JPG
vol2/
     chap4/
          01.JPG
          02.jpg
          03.jpg
     chap5/
          04.jpg
          05.JPG
          06.jpg
     chap6/
          07.jpg
          08.JPG
          09.jpg

在单个vol 文件夹中,章节的顺序是递增的,每个chap 文件夹中的 jpg 文件也是如此。

现在,我想,为每个vol文件夹获取一个pdf,保持图片的顺序。把它想象成一个分开的漫画或漫画卷,然后放回一个文件中。

我如何在 bash 或 python 中做到这一点? 我不知道我有多少卷,或者一卷有多少章,或者一章有多少个jpg文件。换句话说,我需要它来处理任何数量的卷/章/jpg。

另外一个考虑是考虑异构图片文件,可能在一个章节中同时包含 jpg 和 png,但这是一个加号。

【问题讨论】:

【参考方案1】:

我想这应该像预期的那样工作!遇到问题告诉我

import os
from PIL import Image

def merge_into_pdf(paths, name):
    list_image = []
    # Create list of images from list of path
    for i in paths:
        list_image.append(Image.open(i).convert("RGB"))
    # merge into one pdf
    if len(list_image) == 0:
        return
    # get first element of list and pop it from list
    img1 = list_image[0]
    list_image.pop(0)
    # append all images and save as pdf
    img1.save(f"name.pdf",save_all=True, append_images=imagelist)

def main():
    # List directory
    directory = os.listdir(".")
    for i in directory:
        # if directory start with 'vol' iterate through it
        if i.find("vol") != -1:
            path = []
            sub_dir = os.listdir(i)
            # for each subdirectory
            for j in sub_dir:
                files = os.listdir(f"i/j")
                for k in files:
                    # if file ends with jpg or png append to list
                    if k.endswith((".jpg", ".JPG", ".png", ".PNG")):
                        path.append(f"i/j/k")
            # merge list into one pdf
            merge_into_pdf(path, i)

if __name__ == "__main__":
    main()

【讨论】:

您可能需要!点安装枕头和! pip 安装图像,最后! pip install img2pdf 顺利运行上述代码

以上是关于将图片文件夹转换为单个 PDF的主要内容,如果未能解决你的问题,请参考以下文章

PDF怎么转成图片?

如何将PDF文件页面转换为图片

用PDF编辑器将图片转换成PDF文件的诀窍

javaword转pdf图片位置

怎样将pdf文件转换成图片,pdf转图片的小技巧

怎样将pdf文件转换成图片,pdf转图片的小技巧