ポクポク

ポクッとしてツナッ

pdfに無理やり目次をつけるgem、muplin作った

追記: こっちを使いましょうJPdfBookmarksを使ってPDFに目次をつけまくろう!!! - 屋根さえあれば

https://github.com/pokutuna/muplin

muplin(むぷりん)とは、"MUりやり Pdf に outLIN をつけるやつ"の略で、
pdfでよくあるなんか目次みたいなのをクリックしたらそのページに飛ぶ系のアレをつけることができる。

こういうの
f:id:pokutuna:20111019233713p:image:w360

細かいことはpokutuna/muplin · GitHubをみてくれたらよいです。

install

$ gem install muplin

usage

$ muplin sample.pdf outline.yaml

outlineファイルの書式

yamlとjsonに対応、{ 'label' => 'section 1', 'page' => 1} みたいなのの配列。

ネストしたらsubsectionになる。

--- 
- label : a
  page  : 1
- label : b
  page  : 2
- label : c
  page  : 3
- - label : d
    page  : 4
  - label : e
    page  : 5
- label : f
  page  : 6
- label : g
  page  : 7
- - label : h
    page  : 8
- - - label : i
      page  : 9

どこが無理やりなのか

  • 画像があると壊れたpdfが出るっぽい

gemにしたあと僕のしたかったことが実際全然できない欠陥に気づいた

  • 元からついてる目次が内部的には消えてなさそう

同じファイルに上書きでつければつけるほど微妙にサイズがでかくなっていってるのが分かる

prue-rubyでPDFをいじるprawnっていうナイスな感じのやつを使ってるんだけど、なんかイチからPDFを作るためのものっぽい。
templateといってpdfを読み込んで追記する機能があるんだけど画像まみれのpdfを編集するとうまく行かない雰囲気がある。
あと元からあるoutlineを操作するインタフェースがない。無理やりnilをつっこんで消してるのが悪いのかもしれない。
PDFのフォーマットとか勉強する気がなくなったし、今でも画像が無いPDFに目次つけたりするのには使えるのでまあいいかなあと思って公開しました。

知りたい

  • prawnでちゃんとした目次の消し方
  • PDFを使うのにイカしたgem、hpdfはなんか動かなかった