Phantomjs + node webshotで日本語を文字化けさせないでスクリーンキャプチャする

サーバ側でWebサイトのスクリーンショットを撮りたいというときに、ヘッドレスブラウザのPhantomjsを使う方法はすぐに見つかる。これをNode.jsから使えるようにした「node-webshot」を使えばWebサイトのキャプチャを撮れるようにするのは簡単。ただ、Ubuntu 12.04では日本語サイトの文字が文字化け(□←所謂、豆腐文字になる)してしまう。これじゃ使えないので色々試したら以下で解決した。ちなみにOSX 10.8では文字化けせずにキャプチャできたので、以下設定は不要のはず。

まず普通にNode.jsでスクリーンショットを撮れる環境を作る。詳細は触れない。
「node-webshot」という便利なライブラリをDL、インストール。
https://github.com/brenden/node-webshot
ただ、このままだと文字化けするので以下の方法で回避。

まずIPAフォントをDLする
/usr/share/fonts/truetype/ipa などに展開

/etc/fonts/fonts.conf でIPAフォントのみを読み込むようにする

<dir>/usr/share/fonts/truetype/ipa</dir>

IPAフォント以外だとうまくいかないことがあった(Takao Gochicとか)
※ここで余計なフォントを読み込んでいると文字化けする

終わったら以下の方法でキャッシュクリアして完了。

fc-cache -f -v

参考: http://d.hatena.ne.jp/imaiworks/20120816/1345107231
※font.scaleとかfonts.dirとか作る作業は最新Phantomjsの場合は不要のようだ。