🙆

電子書籍をPDF化

2023/06/06に公開

いろんな電子書籍サイトがあるが、専用ビューワーではないと開けないものも多い。
しかしながら専用ビューワーでは、書き込みができなかったり電子書籍を最大限に
活用することができないものが多い。
そこで今回は3つの処理のみで、PDF化する方法を紹介する。

1.スクリーンショットでpng化

スクリーンショットは誰もが想像つくものだろう。
しかしながら、通常のスクリーンショットではページ数も多く労力が必要になる。
ここで便利なアプリ「Reader Capture」を紹介する。
これを活用することで簡単に前ページスクリーンショットをすることができる。

https://reader-capture.skr.jp/

ただ、ここで注意をしないといけないのは、任意間隔(秒)によりスクリーンショットするため重複した画像を保存することになる。

2.重複画像の削除

重複画像の削除方法は有料アプリを使うなどあるが、
Pythonを活用することで無料で重複画像を削除することができる。

# coding: utf-8
import os
import hashlib
from glob import glob

flist = []
fmd5 = []
dl = []

dirname = './[pngが保存されているディレクトリ]/'

for e in ['png', 'jpg']: flist.extend(glob('%s/*.%s'%(dirname,e)))

print(flist)

for fn in flist:
  with open(fn, 'rb') as fin:
    data = fin.read()
    m = hashlib.md5(data)
    fmd5.append(m.hexdigest())

for i in range(len(flist)):
  if flist[i] in dl: continue
  for j in range(i+1, len(flist)):
    if flist[j] in dl: continue
    if fmd5[i] == fmd5[j] and not flist[j] in dl:
      dl.append(flist[j])

print(dl)

for a in dl: os.remove(a)

3.PNGをPDF化

2をすることで重複がないPNGで構成された書籍ができる。
それらをPDF化する必要がある。
これは新しいアプリを入れる必要はなく、
スクリーンショットで利用した「Reader Capture」で変換可能であり、
これで書籍のPDF化ができる

image.png

おまけ.PDF軽量化

スクリーンショットで作成したアプリは容量が大きいため
ドライブの容量を大きくとってしまう。
そこで軽量化をすることでより多くの書籍をPDFすることができるのだ。

軽量化の方法は、adobeに任せよう。
オンラインで利用でき、ページ数にもよるが、簡単に50~70%軽量化できるだろう。

https://www.adobe.com/jp/acrobat/online/compress-pdf.html?promoid=C12Y2YQN&mv=other

Discussion