2013年4月17日水曜日

自炊書籍pdfのページ番号とpdfの表示ページ番号を一致させる。

書籍の自炊をしてみて不満が残る点の1つは、pdfファイルをリーダーで表示したときのpdfとしてのページ番号と、書籍のページ番号が一致しないことです。
例えば索引で単語を調べてその単語の該当ページに移ろうとするとき、pdfのページ番号と書籍のページ番号が一致していないと不便です。adobeのacrobatではpdfのページ番号を加工出来るようですが、フリーソフトでこのようなことが出来るものに関する情報はなかなかみつかりませんでした。

KeN's GNU/Linux DiaryさんのPDFの前付用ページラベルを(Acrobatなしで)設定するというエントリで、pdfページ番号の加工が出来るRoman Nombre Setterのjavaコードが公開されています。作成者の方はPCの環境としてdebianやubuntuを想定しているようですが、macでもいけました。必要なのは

Java (OpenJDK)
iText Library

ですがどちらもmac portsに入っているので、それっぽいものを検索して導入しました。あとはhttps://github.com/kmuto/roman-nmblからroman-nmbre-master.zipをダウンロードし、ターミナルからそれを解凍して出来たディレクトリに移動し

javac -classpath /usr/share/java/itext.jar RomanNmbl.java

を実行します。その後RomanNmbl.classというファイルが作成されるのでそのファイルのあるディレクトリで例えばターミナルから

java -classpath /usr/share/java/itext.jar:. RomanNmbl A.pdf B.pdf 4

と入力すれば、最初の4ページはローマ数字でi, ii, iii, ivのようにpdfのページ番号が表示され、その後アラビア数字で1, 2, 3, …と番号づけられたB.pdfというpdfファイルが出来上がります。


ただ、これはpdfファイルの前付けをローマ数字に変えるためのものなので、例えば下巻が300ページから始まる場合などの、ページ番号をずらす操作には対応していません。でもありがたいっす。