連番のWebP画像をPDFファイルに変換するPythonスクリプト

ソフトウェア

連番のwebp画像を番号順に、PDF形式の単一のファイルに変換するPythonスクリプトです。

訳あって必要に駆られGeminiに協力してもらいながら作成しました。

前提条件

  • 画像はひとつのフォルダ直下にあり、
  • ユーザーはPythonにそのフォルダの絶対パスを引数で与える。
  • PDFファイルの名前は画像の入ったフォルダ名を用いる。

完成したコードと使い方

コード

import os
from PIL import Image
import img2pdf
import sys
def create_pdf_from_images(folder_path):
    folder_name=os.path.basename(os.path.dirname(folder_path))
    pdf_file_name =folder_name + ".pdf"
    image_extension = ".webp"
    # Get a list of PNG files in the specified folder
    image_files = [j for j in os.listdir(folder_path) if j.endswith(image_extension)]
    # Convert the images to PDF
    with open(pdf_file_name, "wb") as f:
        f.write(img2pdf.convert([Image.open(os.path.join(folder_path, j)).filename for j in image_files]))
    print(f"PDF file '{pdf_file_name}' created successfully!")
if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python script_name.py <folder_path>")
        sys.exit(1)
    folder_path = sys.argv[1]+"/"#windowsのドラッグアンドドロップだと末尾のスラッシュがないので付ける
    create_pdf_from_images(folder_path)

使い方

こんな感じにファイルを用意して、

python test.py C:\Users\loveanime\Desktop\test

とか入力すると、test.pdf というファイルが生成されます。

ちなみに本来与えるべきパスはC:\Users\loveanime\Desktop\test\ ですが、WindowsのフォルダをPowerShellなどにドラッグアンドドロップすると末尾に\ はついていないので、ドラッグアンドドロップ前提にスクリプト側で付け足してます。

タイトルとURLをコピーしました