pdfを編集する。

状況

自炊業者に出した本が、pdfになって戻ってきた時に、ページの順番が変わっていることがある。
本のお約束として、表紙を開いてタイトルが載っているページが1ページになる。それより前にある折込だの表紙だのはページ数に数えられない。
このタイトルページがpdfの1ページ目になり、それ以前のページは末尾に回っている。
図で書くと、こう。

本来の順番
表紙 折込 1 2 3 4 n 奥付 裏表紙
戻ってきた順番
1 2 3 4 n 奥付 裏表紙 表紙 折込

これはちょっとどうかと思うので、これまではGUIツールを使って順番を変えていたのだが、これがとてもだるい。自動化できないのである。
なので、コマンドラインでできないかを考えた。

Perlを使う。

Perlで一般的にpdfを操作するのには、PDF::API2モジュールを使うのが一番楽だ。
しかし、PDF::API2には、何故かわからないがページを削除するメソッドがない。ついでに言うと、ページの順番をいじるメソッドもない。
コピーして同じページを増やすことはできるのに。
なので、PDF::API2を使って末尾のページを先頭に持ってきて一度保存し、今度はCAM::PDFモジュールで読み込み、ページの削除を行う(そして保存)と言う手順を取った。