複数PDFを一度に電子ブックリーダー向けPDFに変換するスクリプト
というのをRubyで書いてみた。でも、Windows向けに書いています。なんのこっちゃ。
どういうものかと言うと、自炊PDF->それぞれのページをjpeg化->ChainLPで余白削除+電子ブック向けサイズに変換したPDF作成を自動で、しかも複数のPDFを一括で処理できるスクリプト。
もとはAdobe Acrobatから画像生成->ChainLPでPDF生成を手作業でしていたため、とてもめんどくさかった。一気にやってる間に風呂に入りたい!そう思った。
一応スクリプトを公開する。自己責任で使用してください。コメント全然入れてないけど…。スクリプトだし、いいよね。
使用する前の事前準備。
- Rubyをインストール。
- Rubyの必要なパッケージを入れる。
gem install rghost
で入るはず。
- gsのインストール
Ghostscript 9.02 and GSview 4.9 Jのページからgs902w32full-gpl.zipを入れました。
- ChainLPのダウンロードと展開
No.722: ChainLPから最新版のChainLPをダウンロードして、解凍した内容をC:\ChainLP以下に起きます。フォルダは作ってください。スクリプトをいじれば変更は可能です。
- ChainLPのデフォルト設定を行う。
一度ChainLPを起動して、変換したい電子ブックリーダーのサイズや設定をしておく。
これでたぶん準備は出来たはずで、あとは適当なフォルダを作って、その中に変換したいPDFと下に置いてあるスクリプトを置いて、スクリプトを実行すれば出来るはず。
できたPDFは拡張子.pdfの前にebという文字がついています。
本スクリプトは自由に変更してもらってかまいません。もっと良いのができたら教えていただきたいです。
以下、適当なコメント。
電子ブックリーダーって書いてますが、Kindle3でしか試してません。
最初は自動でPDF->jpegのみのスクリプトを書くつもりでしたが、ChainLPのリードミー的なChainLP.txtをみると、コマンドプロンプトからの実行も出来ると書いてあったので、おまけで追加しました。これは大助かりでした。
ChainLPの引数はなんかサイズの指定を行うと、実行されなかったので、スクリプトからは外しています。これは僕があんまり説明読んでないのが悪いと思う。いちおうスクリプトの方でガンマ1.8と右綴じにしています。変換前のPDF名は"[著者名]タイトル.pdf"にしておくと少し幸せになれるかもしれません。
一応実行したいフォルダのパスとか、gsのパラメータやChainLPの引数をスクリプトの上の方で定義したので、修正したい人はそこをいじってもらえるといけるはずです。
とりあえず試した環境はWindows7 Pro、Ruby1.8.7、gs9.02、ChainLP0.40-2を使用しました。