wkhtmltoimageをChefで入れてスクリーンショットを撮ってみる

ストーリーボードでスライドページのスクリーンショットを取りたい。
という話があって、wkhtmltoimageを使ってみたらどうだろうと朝起きたら
issueにコメントが付いていた*1のでインストールしてみました。OSはUbuntu 12.10です。

wkhtmltoimageは、webkitのエンジンを使ってページをレンダリングしてそれをJPGやPNG画像として保存することができます。

で、例によってChefを使ってレシピを下の様に書いてみました。

# default.rb
%w{libxrender1 libfontconfig1 otf-ipafont-gothic libxext6}.each do |pkg|
package pkg do
action :install
end
end
bash "wkhtmltoimage install." do
user "root"
cwd "/tmp"
code <<-EOH
    wget 'https://wkhtmltopdf.googlecode.com/files/wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2';
    tar xjfv wkhtmltoimage-0.10.0_rc2-static-amd64.tar.bz2
    mv wkhtmltoimage-amd64 /usr/local/bin
  EOH
end

やっていることとしては、wkhtmltoimage自体、バイナリがGoogle codeに圧縮されているものがあるので、それを引っ張ってきて配置するだけで、
それに依存するライブラリやスクリーンショットを撮る際に必要な日本語フォントをインストールしています。

インストールされた環境から、以下の様なコマンドを打つことでスクリーンショットを保管することができます。

$ wkhtmltoimage-amd64 --javascript-delay 5000 \
--width 800 --height 600 \
--format png --quality 70 http://www.remp.jp test.png

上の例では、

  • JavaScript実行完了から5秒待ってからスクリーンショットを撮る
  • 画像サイズは800x600
  • 画像クオリティは最高を100とした場合に70を指定
  • 画像フォーマットはPNG

をオプションで指定しています。

実際にスクリーンショットを撮ってみた画像は以下の様な形。

*1:朝起きるとやること決まってて便利

(Visited 3 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です