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'}" >