

複数のjpegファイルが入ったフォルダを指定して，一つのpdfファイルに変換したいと思い，以下のようなコードをPythonで書いてみたのですが，フォルダの中の一つのjpegファイルだけしかpdfに変換されませんでした.  
どこが間違っているかご指摘頂けるとありがたいです.

[code]

    import img2pdf,os
    from PIL import Image
    base_Image = r"jpegが入っているファイルのパス" 
    Create_pdf = r"できたpdfを入れたい場所のパス"
    os.chdir(base_Image)
    path = "./"
    files = os.listdir(path)
    pdf_name = Create_pdf + "\\" + "converted" + ".pdf"
    for i in files:
        if i.endswith(".jpeg"):
            Image_Name = i
            img = Image.open(Image_Name)
            cov_pdf = img2pdf.convert(Image_Name)
            file = open(pdf_name , "wb")
            file.write(cov_pdf)
            img.close()
    file.close()
    
[/code]


CC BY-SA 4.0
2020-10-22T07:02:19.267
71415
2020-10-22T08:18:05.763
2020-10-22T08:18:05.763
3060
42432
question
python pdf
複数のjpegファイルを一つのpdfファイルに変換したい


`file = open(pdf_name , "wb")` の処理で一枚ずつ画像を読み込む度にpdfを **新規作成**
し直しているのが原因で、最後に読み込んだ画像のみを含むpdfファイルができているようです。

下記のサンプルコードで複数画像を1つのpdfにまとめたファイル作成できます。(python 3.6.1で確認)

**サンプルコード**

[code]

    import img2pdf
    import os
    import re
    from PIL import Image
    from pathlib import Path
    
    base_Image = r"jpegが入っているファイルのパス" 
    Create_pdf = r"できたpdfを入れたい場所のパス" 
    
    path = Path(base_Image)
    images = sorted([str(p) for p in path.glob('**/*') if re.search('/*\.(jpg|jpeg)', str(p), re.IGNORECASE)])
    pdf_name = os.path.join(Create_pdf, "converted.pdf")
    
    with open(pdf_name , "wb") as f:
        f.write(img2pdf.convert(images))
    
[/code]


CC BY-SA 4.0
2020-10-22T07:40:55.613
71416
2020-10-22T07:40:55.613
9820
71415
answer