トップ «前の日記(2012年09月07日) 最新 次の日記(2012年09月09日)» 編集

KeN's GNU/Linux Diary


2012年09月08日

_ [computer] PDFの前付用ページラベルを(Acrobatなしで)設定する

GitHub https://github.com/kmuto/roman-nmbl にて公開。

常々困っていたところ、iTextのメソッドを見ていたらできそうな香りを感じ、さっそく作成。Javaのコーディングは正直もう辛いので、エラーハンドリングなどもかなりおざなり。

たとえば、前付がローマ数字ノンブル(いわゆるページ番号)、以降の本文などは1から始まるアラビア数字ノンブル、という構成の分割されているPDFをpdftkで合体すると、PDFのページ情報としてはローマ数字だったところは無視されてPDFの1ページ目がアラビア数字1から始まるようになってしまう。紙面内のじゃなくて、リーダのボックスに表示されるほうね。

これを直すにはAcrobatで調整するしかないというのが定説で、スイスアーミーナイフであるpdftkも、update_infoで一見いじれるように見えながら書き込むコードは実装されていないっぽいという罠。

で、update_infoの情報からlabelとLowercaseRomanをキーワードに探していくと、JavaからのPDF生成でよく使われるiTextライブラリにsetPageLabels()という何やら「ピキーン!」とニュータイプ音がしそうなメソッドを発見。

使い方を最初勘違いしていて変なラベルがついたりクラッシュしたりしてしまったのだけど、ともかく前付部はローマ数字、以降は1リセットしてアラビア数字、という希望の出力ができるようになった。

pdftkで合体してさらにこのツールを使ってというのもだるい感じはあるのでiTextで合体も実装してしまえばいいとは思うんだけど、Javaでオプションを解析したりエラーハンドリングしたりというのを考えるとそれはそれで面倒なので、ひとまずここまで。

iTextのメソッドを見ているとほかにもいろいろ面白げなものがあるので、そのうちまた何か作るかも。

_ [cooking] BBQ、とその前菜セット


同僚をお呼びしてBBQ。 昼間に急な雨があったり、遠くの落雷が見えたりとドキドキだったけど、無事に降られることもなく楽しく完了。

写真はBBQ前の前菜盛り合わせ。ナスのマリネ(中)と田楽(上)は同僚から。

こちらからはエンサラータルサ(左。じゃがいも・にんじん・グリーンピース・ツナ・緑オリーブのマヨネーズ和え)、 タルカリ(右。じゃがいもとオクラのターメリック炒め)、ロモ(赤身のサラミ。だいぶ味が落ちてたような……)。