wkhtmltoxを使ってWebページのキャプチャをやる

スポンサーリンク

こんにちは。ファガイです。

本日は、wkhtmltoxを使ってWebページのキャプチャを取ります。

環境は以下です。

  • CentOS6.4
  • PHP5.4
  • Apache

まずはじめに必要なライブラリ等があるので入れます。

# yum install libXrender fontconfig libXext

とりあえずxvfpも入れましょう。もしかしたら入れ方間違えてるかもです。

# yum install xvfp

それでは必要となるlibを用意します。
バージョンが0.11があったのですが、QPixmap: Cannot create a QPixmap when no GUI is being usedと出るため諦めて0.10のrc2版を使います。

# wget https://wkhtmltopdf.googlecode.com/files/libwkhtmltox-0.10.0_rc2-i386.tar.bz2
# bzip2 -d libwkhtmltox-0.10.0_rc2-i386.tar.bz2
# tar xvf libwkhtmltox-0.10.0_rc2-i386.tar
# mv lib/* /usr/local/lib
# mv include/* /usr/local/include/

php-wkhtmltoxの導入もしましょう。これはphpでexecをしなくて済みます。

# git clone https://github.com/mreiferson/php-wkhtmltox.git
# cd php-wkhtmltox/
# phpize
# ./configure
# make
# make install

# vi /etc/php.d/phpwkhtmltox.ini

extension=phpwkhtmltox.so

:wq

サンプルとしては以下のようなもの。

wkhtmltox_convert('image', array('out' => '/tmp/fagainet.jpg', 'in' => 'http://fagai.net/'));

因みに、オプションがよく分からなくて、crop系が効かなかったり、スケールの変更等も効かず、現状100%の状態でしか取れなさそうです。

補足として、第1引数のarrayにscreenWidthが設定できますが、これは空白の部分しかクリッピングしてくれません。
ちゃんとスクリーンサイズを変更するためにはsmartWidthの値をfalseに設定する必要があります。

主はスケールの変更と高さのクリッピングが出来なくて困ってます・・・。誰か教えてくれると嬉しいなって。

コメント

タイトルとURLをコピーしました