LoginSignup
8
5

More than 3 years have passed since last update.

Kindleの自動スクショ保存プログラム 〜PDF化編〜

Posted at

初めに

Kindleの自動スクショ保存プログラムの記事でKindle本の全ページのスクリーンショットを保存することができましたが、画像ファイルだと何かと不便で扱いにくいと感じましたので、画像ファイルをまとめてpdf化するプログラムを作成しました。

使用方法

git clone https://github.com/yassyyuki/pdf_converter.git

または、pdf_converter.pyファイルを作成して、以下のコードをコピペしてください。

from PIL import Image
import os
import datetime
import img2pdf


if __name__ == '__main__':
    pdfFileName = "hoge.pdf"  # 作成するpdfファイル名
    path = "hoge"  # 画像ファイルが入っているディレクトリ
    ext_p = ".png"
    ext_j = ".jpg"
    save_directory = "output_pdf" + "_" + str(datetime.datetime.now().strftime("%Y%m%d%H%M%S"))
    os.mkdir(save_directory)

    with open(save_directory + "/" + pdfFileName, "wb") as f:
        imageList = []
        for item in os.listdir(path):
            if item.endswith(ext_p):
                image = Image.open(path + "/" + item)
                image = image.convert('RGB')
                image.save(save_directory + "/" + item[:-3] + 'jpg')
                imageList = imageList + [save_directory + "/" + item[:-3] + 'jpg']
            elif item.endswith(ext_j):
                image = Image.open(path + "/" + item)
                image = image.convert('RGB')
                imageList = imageList + [path + "/" + item]
            imageList.sort()

        f.write(img2pdf.convert(imageList))

    # 余分に作成したjpgファイルの削除
    # 残しておきたい場合はコメントアウトする
    for i in imageList:
        os.remove(i)

そして、

if __name__ == '__main__':
    pdfFileName = "hoge.pdf"  # 作成するpdfファイル名
    path = "hoge"  # 画像ファイルが入っているディレクトリ

hogeとなっている部分を適切に編集してください。
編集し終えましたら、実行しましょう。

python pdf_converter.py

すると、カレントディレクトリに、output_pdf_XXXXXXといったディレクトリが作成され、その中にさっき自分で設定したはずの名前のpdfファイルが保存されているはずです。

終わりに

今回のpdf化はあくまでもKindleの自動スクショ保存プログラムで作成した画像ファイルを変換することしか確認しておりません。普通の画像ファイルの集合をpdf化できるかどうかは保証致しませんのでよろしくお願い致します。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5