読者です 読者をやめる 読者になる 読者になる

web画面をキャプチャーする方法

仕事でweb画面のキャプチャーをとらないといけなくなってイロイロ調べてみました。

web画面をキャプチャーする方法はいくつかあって、例えば外部サービスのSimpleAPIとかHeartRails Captureとか利用する手もあります。

単純なものだったらこれですみそうなんだけど、今回は作業環境が社内なので外部からのアクセスが届かない、動的に生成したいのでリアルタイムに欠ける、などなどがあってこれらは使えそうにないので別の方法を。

ということで外部サービスなどに頼らずに内部で生成しましょう、と思って調べてみるとwkhtmltoimageという便利なものがあるので、これを導入。

まずこのサイトからダウンロードして解凍。

$ sudo -s
$ cd /usr/local/src 
$ wget http://wkhtmltopdf.googlecode.com/files/wkhtmltoimage-0.10.0_rc2-static-i386.tar.bz2
$ tar -xvf wkhtmltoimage-0.10.0_rc2-static-i386.tar.bz2

解凍するとバイナリファイルが出来るのでそれをbinに移動。特にインストールの必要なし。

$ mv wkhtmltoimage-i386 /usr/bin/wkhtmltoimage

これで終了。ためしに

$ wkhtmltoimage http://www.google.co.jp/ test.jpeg
$ wkhtmltoimage test.html test.jpeg

これで作成される。URLでもHTMLファイルでもどっちでもOK。jpeg以外でも保存できるし、イロイロなオプションがあるのでヘルプは必見。
(jsを読み込む時間待ってくれたり、jsのデバッグしてくれたり便利なオプションがある)

といってもこれでは完全ではなく、日本語に対応させるためにはフォントを追加しなければです。

今回はこのサイトフリーフォントを使いました。

$ wget http://ossipedia.ipa.go.jp/ipafont/IPAexfont00103.php
$ unzip IPAexfont00103.zip
$ cp IPAexfont00103/*ttf /usr/share/fonts/

これで日本語もOK。

今回の仕事ではwkhtmltoimageをHTTPリクエストに組み込みたいのでTheSchwartzを使って実装しました。

広告を非表示にする