今までだとWebサイトのスクリーンショットを作成するのにwordpressの非公式APIを利用していたけど、調べたら「wkhtmltoimage」を使えば自前でもいけそうな感じだったので、導入から動作までのログを残しておく。
wkhtmltoimageとは
htmlをpdfに変換するツールwkhtmltopdfの開発プロジェクトから生まれたhtmlを画像に変換するツール。C++とpythonで作っているみたい。
プロキシ環境下でもBasic認証環境下でもスクリーンショットを作成できるのはいいかも。
ダウンロード~設置まで
Linux環境でこのツールをインストールしてみた
今回のOSは64bitなので、64bit版の方をインストール
$ cd /usr/local/src/ $ wget http://wkhtmltopdf.googlecode.com/files/wkhtmltoimage-0.11.0_rc1-static-amd64.tar.bz2 $ mv wkhtmltoimage-0.11.0_rc1-static-amd64.tar.bz2 wkhtmltoimage-0.11.0_rc1-static-amd64.tar $ mv wkhtmltoimage-amd64 /usr/bin/wkhtmltoimage
使い方
・URLからスクリーンショットを作成する場合
wkhtmltoimage http://www.google.co.jp/ screenshot.png
・htmlファイルからスクリーンショットを作成する場合
wkhtmltoimage path/to/htmlfile.html screenshot.png
・スクリーンショット作成範囲を指定する場合
wkhtmltoimage --crop-h 300 --crop-w 400 http://www.google.co.jp/ screenshot.jpg
・画質を指定
wkhtmltoimage --quality 100 http://www.google.co.jp/ screenshot.jpg
※詳細なマニュアルはここ(http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltoimage_0.10.0_rc2-doc.html)
これで問題なく動くのだけど、まれに「QPixmap: Cannot create a QPixmap when no GUI is being used」のエラーがでてスクリーンショットが作成できないものがある。
ここらへんでも書いてあるが、
wkhtmltoimage でスクリーンショットを作成しようとすると QPixmap: Cannot create a QPixmap when no GUI is being used と出て空のファイルが作成される場合の解決方法 – WEBLE
どうやら新しいバージョンの問題らしい。
ということで、ひとつ前のバージョンにデグレードしてもう一度試してみたら問題なく動いた。
これを使ってスクリーンショットプラグインを作り直してみようかな。