Play 1.2.5のPDFモジュールについてメモ

最近Playがあついので、2.0じゃなくて1.2.5をやってる。
2.0じゃないのはなんとなくモジュール探すのが面倒くさくてPlayのモジュール一覧で探せるのがうれしいから。

でPDFモジュールがあるので試してみた。

$ play install pdf

で導入して、dependencies.ymlに記述する内容が表示されるので追記する

play -> pdf 0.9

で依存性を解決する

$ play dependencies

使い方はPDFのテンプレートを用意して出力することもできるらしいのだけど、HTMLをPDF化したいので、今回は試していない。

HTMLをPDFにするにはrenderPDFを使用するのと、印刷用のCSSを設定する。
日本語フォントを設定する時は@font-face使って以下のように設定する。

<style media="print" type="stylesheet">
  @font-face{
     font-family: "Migu-1c";
     src: url("file:///path/to/fonts/migu-1c-regular.ttf");
     -fs-pdf-font-embed: embed;
     -fs-pdf-font-encoding: Identity-H;
  }
  body{
     font-family: "Migu-1c";
  }
</style>

file:で設定しているけど、これはPDFを生成するライブラリ(flying sauser)がURL経由でよみこもうとしているからでネットワーク越しより、ディスクから直によませるほうがよいだろうとおもってこうした。

publicフォルダに置けば@{'public/fonts/some-fonts.ttf'}でも大丈夫。ただ速度的な話はベンチマークとってないのでわからない。
flying sauserのライブラリではaddFontでフォントの追加できるので、実際につかうときにはモジュール側に修正くわえるほうがよいとおもう。




画像もちゃんと表示してくれる。
これは普通にimgタグ書けばいい。

<img src="@{'public/image/some_img.png'}" >