pretty code

2019年5月16日 星期四

EPUB 固定版面轉 PDF 檢查步驟

EPUB 固定版面指的是每頁都是圖片,非純文字格式。

有些技術書籍用了 EPUB 固定版面,又會將 2 頁併 1 頁顯示,即使用 10 吋 Note Lite 轉橫式觀看,閱讀效果依然很糟,只好用裡面的圖片轉成 PDF 檔案,好方便閱讀。

個人經驗來說,有些書在 Kobo 就是 EPUB 固定版面,但是同樣的書在 Google Play 卻是 PDF 格式。如果擁有 10 吋的電子書閱讀器,不如選擇在 Google Play 購買,價錢也比較便宜。

另外,同樣的英文技術書籍,Google Play 也比 Amazon 便宜。

檢查步驟
1. 確認是否每頁都是圖片,是否有 2 頁併 1 頁圖檔?
2. 確認圖片格式,如果 PNG 有透明背景,需指定底色為白色,可用 ImageMagick 轉檔。

ImageMagick\\convert.exe src.png -background white -alpha remove -alpha off dst.png
3. 確認圖片是否有多種格式,有些書的圖片不只一種,img2pdf 程式要額外處理。
4. 確認圖片張數,比如圖片到 601.png,但中間可能有過場圖片重覆,故總數不足 601。
5. 使用 img2pdf module,撰寫簡單程式搞定,如果有些圖片大小不一,指定 output 大小。

import img2pdf

with open("name.pdf","wb") as f:
    output = ['1.png', '2.png' ...]

    a4inpt = (img2pdf.mm_to_pt(210),img2pdf.mm_to_pt(297))
    layout_fun = img2pdf.get_layout_fun(a4inpt)
    f.write(img2pdf.convert(output, layout_fun=layout_fun))

2019/10/21 更新

有些書籍的圖片檔檔名有英文字母,後來才意會到那是 16 進位數字,詳此篇

沒有留言: