PDFtkでPDFを分割しためも

PDFから特定のページを抜き出したりとかは、Mac だったらプレビューでやるんだけど Windows だと手軽にできそうな GUI アプリがなさそうなので PDFtk でやってみた。

PDFtk はこちらからダウンロード。

www.pdflabs.com

GUIツールもインストールされるようだが、こちらは無料ではほとんど何もできなそうなので、当然コマンドラインを使う。インストールした時点でPATHが通っているので、PowerShellなどで pdftk -h とすると使い方がでてくる。その中で、

Remove page 13 from in1.pdf to create out1.pdf
         pdftk in.pdf cat 1-12 14-end output out1.pdf
         or:
         pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf

という箇所があり、だいたいこのようにすれば分割できる。今やりたいのは Kindle にメールで送るには大きすぎるPDFファイルを分割して送るということなので、例えば100ページごとにしたかったら、

pdftk test.pdf cat 1-100 output out.pdf

とすればできた。PDFが100ページない場合はエラーになるので、1-end とする。

あと縦書きの PDF を Kindle で開くときにめくる方向が逆になるという問題に対して、逆順の PDF をつくるというハックがあるが、これは以下のようにしてできる。

pdftk test.pdf cat end-1 output reverse.pdf

コマンドが直感的なのが良い。自分がもし作る側だったら、無駄に combine, split, remove, reverse とかのコマンドを実装してしまいそうだけど、それらは上に書いたように全て cat でできる。なるべく少ないコマンドで色々なことをできるようにしている感じで、見習いたい。

PDFtk について調べてたら、CPDFというのもあるらしい。

CPDF:メッチャ多機能なPDFのコマンドライン・ツール | PDF

これも非商用なら無料で使える。そのうち試したい。

追記 (2018/03/18)

PDFをトリミングしたくなって、PDFtk ではできなそうだったので、早速 CPDF を使ってみた。

community.coherentpdf.com

バイナリを落としてくれば使える。手持ちの自炊文庫本PDFでは、

.\cpdf.exe -crop "5mm 10mm 90mm 130mm" in.pdf -o out.pdf

とすると良い感じに余白がなくなった。