Program LOG

勉強した内容をまとめ中。。。間違ってたら教えて。。。

プログラムでスクリーンキャプチャの取得 - Linux編

スクリーンキャプチャーを作成するツールをインストールしてテストを実施しましたので、メモとして残しておきたいと思います。
このツールは非常によく出来ていてかなり感激wしかもコマンドベースで動作してくれる為、PHPなんかでも簡単に動作してくれます!

wkhtmltopdfという名のツール

簡単に言うと、HTMLファイルをPDFファイルとして生成してくれるツールです。
名前のwkはWebkitの事らしいですw
しかもこれ、windowsMacにも対応しているようです。
今回はテスト的にVagrantCentOSにセットアップしてみました。

wkhtmltopdfのインストール

まずはダウンロードします。最新版は「wkhtmltopdf」で確認してくださいね!
今回は、Linuxの64bit版を選択しました。

[root@localhost vagrant]# cd /usr/local/src
[root@localhost src]# wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.0/wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz

次に解凍なんですが、xzが解凍できない!ってエラーが・・・w
なので、yumでインストールの後に解凍を行いました。

[root@localhost src]# tar -Jxvf wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz
tar (child): xz: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
[root@localhost src]# yum install xz
[root@localhost src]# tar -Jxvf wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz

wkhtmltoimageのPATHを通しておきます。

[root@localhost src]# cp wkhtmltox/bin/wkhtmltoimage /usr/bin/

次に「wkhtmltoimage」を実行するためのライブラリ達をインストールしておく必要があるので、インストールを実行

[root@localhost src]# yum install -y libXrender libXext openssl openssl-devel fontconfig

以上でインストールは完了となります!

wkhtmltopdfの実行テスト

早速ですが、キャプチャを行いたいと思います。

[root@localhost src]# wkhtmltoimage http://google.com google.jpg
Loading page (1/2)
Rendering (2/2)
Done
[root@localhost src]# ll
total 31216
ーrw-r--r-- 1 root root    58152 May  9 05:44 google.jpg
drwxr-xr-x 5 root root     4096 Feb  7 00:53 wkhtmltox
ーrw-r--r-- 1 root root 31897856 Feb  9 15:48 wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz

たったこれだけです!マジ感動w
ただし、このファイルを開いたら・・・・日本語が全て「■ ■ ■ ■」ってな感じに文字化けを・・・w
そして色々調査したところ、日本語フォントを入れておく必要があるらしいので、セットアップしてみました!

日本語フォントをインストール

さて日本語フォントを入れて文字化けを防いでいきたいと思います!
IPAフォントをインストールしたいと思います。
まずはファイルをダウンロードします。

[root@localhost src]# wget http://download.forest.impress.co.jp/pub/library/i/ipafont/10483/IPAfont00303.zip

zipを解凍する為に、「unzip」をインストールして、解凍します。

[root@localhost src]# yum install unzip
[root@localhost src]# unzip IPAfont00303.zip

IPAフォント」を「~/.fonts/」ディレクトリに移動させましょう!
無い場合は作成してください。

[root@localhost src]# mkdir ~/.fonts
[root@localhost src]# mv IPAfont00303/* ~/.fonts/

これで準備は完了しました!再度実行・・・w

[root@localhost src]# wkhtmltoimage http://google.com google.jpg
Loading page (1/2)
Rendering (2/2)
Done

ファイルを確認したところ、文字化けが解消されていました!
完璧!w

各種オプションについて

このツールには様々なオプションがついていますので、一部紹介しておきたいと思います。

切り抜き

#切り抜きの高さ設定
wkhtmltoimage --crop-h 400
#切抜きの横幅設定
wkhtmltoimage --crop-w 400
#切り抜き横軸位置
wkhtmltoimage --crop-x 0
#切り抜き縦軸位置
wkhtmltoimage --crop-y 0

画像サイズ

#横幅
wkhtmltoimage --width
#高さ
wkhtmltoimage --height

その他確認について

#ヘルプの表示
wkhtmltoimage -H

オプションを使えば、Javascriptを切ったり、HTTP認証が掛かったページを取得したり様々なことを行えます。
また、PHPのライブラリがあるみたいですので、それを利用していくのもいいかと思います!

使用環境