PDFの見開きページ分割・ページ削除 Foxit ReaderとPdfJumbler、OutOfMemoryError

 PDFの1ページに見開き2ページ分が入っているファイルがあり、見開きページを分割してちゃんと1ページにしようとして、試行錯誤しました。
 参考になったのは、

1ページのPDFファイルを2ページに分割する方法: 小粋空間

 というぺージ。Adobe Acrobatを持っていて、見開きページが綺麗に中央に揃っているなら、これで事足りるでしょう。
 ただ、わたしの持っていたファイルは海外のものだったのですが、単に本を全ページ手動コピーしたようなもので、ページにより少し斜めになっていたり、非常に大雑把なものでした。もちろん、すべて画像として入っているだけで、テキストとしては認識されていません。しかもページによっては、見開きではなく普通に1ページが1ページになっていたりして、気まぐれです。
 とりあえずAdobe Acrobatがないので、Foxit Readerを使ってみます。
 元のPDFを開き、印刷ダイアログを開きます。

Foxit Readerでページ分割

 プロパティの設定も確認。

Foxit Readerでページ分割

 ここでプリンタの「名称」にFoxit J-Reader Printerを選択。「ページの拡大/縮小」で「大きなページを分割」を選び、ページ倍率をうまくページ分割できるように設定します。
 ここで最初は見開きが2ページになるよう設定し、新たなPDFを出力したのですが、元のファイルがページにより斜めになったりしているため、変なところで切れてしまいうまくいきませんでした。
 仕方なく倍率を再設定し、1ページが4ページとか6ページになるようになっても、とにかく文章が途中で切れない場所を探しました。わたしの扱ったような見開き位置が一定でないファイルの場合、大抵は綺麗に2分割できないと思います。
 こうして、とりあえず変なところで分割されていないPDFが出来上がりましたが、元の1ページが6ページになったりしているので、ただの白紙ページなどが大量に入っています。

 ここからPDFの不要ページを削除しようとしたのですが、Foxit J-Reader Printerではできず、PDForsellというフリーウェアを試しました。
 PDForsellは直感的に操作できてなかなか良い感じだったのですが、プレビュー表示が遅いうえ、途中でランタイムエラーが出て落ちてしまいました。

PDForsellエラー.jpg

 環境にもよるでしょうし、わたしの扱ったPDFのサイズがかなり大きかったことも一因かもしれません。
 仕方ないので同じようにPDFのページ削除ができるフリーウェアを探し、PdfJumblerを試しました。

PdfJumbler

 シンプルなツールで、縦スクロールにサムネイルが並ぶだけの画面ですが(PDForsellはプレビューも表示される)、必要十分で、Deleteキーでサクサクページ削除できるのでとても便利です。
 それは良かったのですが、不要ページを削除してPDFを保存しようとすると、エラーとなってしまいました。

java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space

AssertionError
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space

 分割後で500ページ以上になるPDFの3分の2くらいの不要ページを手動でチクチク削除した後だったので、かなりやる気が削がれましたが、ここまで来たら出力しないと気が済みません。
 調べてみたところ、Java OutOfMemoryError対策 – Java入門に-XmxオプションをつけてJavaを叩く方法が紹介されていました。
 この方法を使うと、例えばpdfjumbler(ファイル名pdfjumbler-0.16.jar)がデスクトップにあるなら、

①「ファイル名を指定して実行」から「cmd」と入力
②コマンドプロンプトが立ち上がるので、
java -Xmx1024m -jar C:\Users\UserName\Desktop\pdfjumbler-0.16.jar
 と入力

 すればOKです(UserNameは適宜変更)。
 あるいは、pdfjumbler-0.16.jarのショートカットを作って、パスを上記のコマンドに変えても実行できるでしょう。
 この方法を試したところ、見事というか、本来当然ですが、落ちずに出力することができました。

 以上、ちょっと遠回りしましたが、Foxit ReaderとPdfJumblerでPDFをページ分割・出力する方法でした。