Python スクリーンショットをまとめてPDFファイルにして保存する方法 pillow

スクリーンショットを撮ってそれをPDFにする作業が時々、発生して面倒だったのでPythonで書いて自動化しました。

ソースコード

まずはライブラリをインストールしてください。

pip install pillow

以下が実際のソースコードです。

非常にシンプルで短いコードです。

from PIL import Image
import os

# スクリーンショットが保存されているディレクトリ
image_folder = '/path/to/your/screenshots'

# 保存するPDFの名前と保存先
pdf_name = '/path/to/your/desired/location/output.pdf'

# ディレクトリ内のすべての.pngファイルを取得
images = [i for i in os.listdir(image_folder) if i.endswith(".png")]

# 画像をPIL Imageオブジェクトとして読み込む
image_objs = [Image.open(os.path.join(image_folder, i)).convert('RGB') for i in images]

# 最初の画像を保存し、その後の画像を追加する
image_objs[0].save(pdf_name, "PDF" ,resolution=100.0, save_all=True, append_images=image_objs[1:])

PDFにしたいスクショのみ対象のフォルダに格納してください。

以下に部分にご自分のクライアントのパスを設定してください。もしスクショの拡張子がpngでない場合はコード内の拡張子を変更してください。

# スクリーンショットが保存されているディレクトリ
image_folder = '/path/to/your/screenshots'

# 保存するPDFの名前と保存先
pdf_name = '/path/to/your/desired/location/output.pdf'

印刷すると小さくなってしまう場合

PDFを印刷したら画像が小さくなった場合は以下のスクリプトを使用することで解決できる場合があります。

これはすべての画像を特定の解像度(ここではA4サイズのピクセル解像度、2480 x 3508ピクセル)にリサイズするスクリプトです。

ただし、このスクリプトは画像を指定した解像度に強制的にリサイズします。元の画像のアスペクト比(幅と高さの比率)がA4と異なる場合、画像が歪んで表示される可能性があります。

from PIL import Image
import os

# スクリーンショットが保存されているディレクトリ
image_folder = '/path/to/your/screenshots'

# 保存するPDFの名前と保存先
pdf_name = '/path/to/your/desired/location/output.pdf'

# ディレクトリ内のすべての.pngファイルを取得
images = [i for i in os.listdir(image_folder) if i.endswith(".png")]

# 画像をPIL Imageオブジェクトとして読み込み、A4サイズ(2480x3508)にリサイズ
image_objs = [Image.open(os.path.join(image_folder, i)).convert('RGB').resize((2480, 3508), Image.ANTIALIAS) for i in images]

# 最初の画像を保存し、その後の画像を追加する
image_objs[0].save(pdf_name, "PDF" ,resolution=100.0, save_all=True, append_images=image_objs[1:])

Follow me!

関連記事

PAGE TOP