LoginSignup
2
5

電子書籍をPDF化

Last updated at Posted at 2023-06-06

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

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

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

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

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%軽量化できるだろう。

2
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
2
5