2008年12月9日火曜日

Linux環境でスクリーンショット






こちらを参考にして、khtml2png をCentos5.2にインストールしてみました。


http://d.hatena.ne.jp/holidayworking/20081124/1227501839


必要なソフトをインストール



yum install gcc gcc-c++ automake autoconf nano zlib zlib-devel
yum groupinstall "X Window System" "KDE (K Desktop Environment)"
yum install kdelibs kdelibs-devel
yum install Xvfb xorg "xorg-x11-font*"
yum install cmake





参考サイトには、書いてませんでしたが、


以下のソフトも必要ならいてれおいたほうがいいかも。



yum groupinstall "KDE Software Development"
yum install kdelibs4-dev





khtml2png は、yum でインストールできないので、ファイルをダウンロード



wget http://downloads.sourceforge.net/khtml2png/khtml2png-2.7.6.tar.gz?modtime=1224606904&big_mirror=0
tar zxvf khtml2png-2.7.6.tar.gz
cd khtml2png-2.7.6
./configure
make
make install



ここで ./configure の時に、 QT_INCLUDE_DIR を設定しろと、エラーが出た人は、


configure を以下のように書き換えてください。



vi configure

cmake -G KDevelop3 -D QT_INCLUDE_DIR:PATH=/usr/lib/qt-3.3/include .
cmake -D QT_INCLUDE_DIR:PATH=/usr/lib/qt-3.3/include .



これでたぶん、makeまでいけると思います。





インストールが一通り終わったら、Xvfbを起動する。



Xvfb :2 -screen 0 1024x768x24&
export DISPLAY=localhost:2.0


ここで、以下のようなエラーが出るかもしれないが無視する



Could not init font path element unix/:7100, removing from list!





ようやくスクリーンショットをとる準備ができたので


とりあえず、yahoo のトップページを見てみる



khtml2png2 --get-body http://www.yahoo.co.jp yahoo.png


なんかつらつらとエラーが出るが気にしない



DCOPClient::attachInternal. Attach failed Could not open network socket
kbuildsycoca running...
ScimInputContextPlugin()
~ScimInputContextPlugin()


f:id:bushimichi:20081208212326p:image:w400


対応外のブラウザだと、こんな風にyahooが見えるんですね。





その他、以下のようなメッセージも出たがとりあえず気にしない。



FreeFontPath: FPE "built-ins" refcount is 2, should be 1; fixing.
Could not init font path element unix/:7100, removing from list!





参考のサイトにも書いてありますが、


Cookieとか、Javascriptの設定で、うまくスクリーンショトが表示されない場合は


以下のファイルを修正する。



cd ~/.kde/share/config

vi kcookiejarrc

[$Version]
update_info=kcookiescfg.upd:kde2.2/b1,kcookiescfg.upd:kde3.1/cvs

[Cookie Dialog]
PreferredPolicy=2
ShowCookieDetails=false

[Cookie Policy]
CookieDomainAdvice=
CookieGlobalAdvice=Accept




vi khtml2pngrc

[HTML Settings]
AutomaticDetectionLanguage=0

[Java/JavaScript Settings]
PopupBlockerPassivePopup=false


意外と、HTMLのレンダリングがきれいで、崩れている部分も少ない気がします。


フォントとか、ちゃんといれたら文字ももっときれいに表示されるでしょう。


FireFoxとかでも、同様のスクリーンショットがとれるらしいですが


こっちのほうが、お手軽な気がします。





オプション一覧



khtml2png2 --help

Usage: khtml2png2 [Qt-options] [KDE-options] [options] url outfile

Render HTML to a PNG from the command line
Example:
khtml2png2 --width 800 --height 600 http://www.kde.org/ kde-org.png
or
khtml2png --auto ID_border http://www.kde.org/ kde-org.png

Generic options:
--help Show help about options
--help-qt Show Qt specific options
--help-kde Show KDE specific options
--help-all Show all options
--author Show author information
-v, --version Show version information
--license Show license information
-- End of options

Options:
-w, --width <width> Width of canvas on which to render html [800]
-h, --height <height> Height of canvas on which to render html [600]
--sw, --scaled-width <width> Width of image to produce []
--sh, --scaled-height <height> Height of image to produce []
-t, --time <time> Maximum time in seconds to spend loading page [30]
--auto <id> Use this option if you to autodetect the bottom/right border []
--get-body Autodected the body of the page (if width is not detected, use --width)
-b, --disable-window If set, don't show the window when doing rendering (can lead to missing items)
--disable-js Enable/Disable javascript (enabled by default)
--disable-java Enable/Disable java (enabled by default)
--disable-plugins Enable/Disable KHTML plugins (like Flash player, enabled by default)
--disable-redirect Enable/Disable auto-redirect by header <meta > (enabled by default)
--disable-popupkiller Enable/Disable popup auto-kill (enabled by default)

Arguments:
url URL of page to render
outfile Output file



スクロール画面も最後までスクリーン取ってくれるオプション、 --get-body が結構重宝するかも


Window環境でも、スクロールまで対応してスクリーンショット取ってくれるソフトは少ないからね。


指定の画像サイズで保存したい場合は、 -w -h --sw --sh あたりを駆使すればできそうな感じかな。








開発中のWebサイトの進捗を自動で画像に変換して、PDFとかに出力するとか


してみようかと考えています。


特に、画面イメージをみんなで共有する時に、


印刷したり、PowerPointに貼るのに、役に立ちそう。


あとサイトマップを作るときに、画面イメージをサムネイルとして


出力するのもいいかも。





2008年12月3日水曜日

coLinuxにCentos5.2をインストール






先月の話ですが、coLinuxのインストールにまつわる話です。





いままで、自分のWindows環境にわざわざLinux環境を用意するのもなんだなぁと思って


共有のLinuxマシンをLANでつないで開発をしておりました。


しかし、最近ノートパソコンを買いまして(ThinkPad SL500)


外で使ったり、場所を移動したりできるようになると、今までのように


特定のLANにつないで作業をするのが、とってもめんどくさくなりました。


しょうがないので、ノートパソコンに開発環境を作ってしまおうと


考え始めたのが、きっかけです。





とりあえず、いろいろエミュレータとか、仮想環境、VMwareとか考えたのですが


手軽そうな coLinuxがなんとなくよさそうな気がして


coLinuxにCentos5.2 をインストールすることにしました。


(しかし、これがなかなか曲者で後で考えると VMwareとかのほうがよかったかも。)





coLinuxのインストールは、比較的、ネットで情報を集めやすかったので


いろいろ調べて、最新版のcoLinux0.7.3 に開発で使っているCentos5.2を入れることに。


coLinuxのインストールとは別に、installer なるものが有志の方によって作られており


手順に従ってやれば何とかなりそうだ!と、情報を集めつつ進めていきました。





ところが


最新のcoLinux0.7.3 になんとか、Centos5.2をいれようと、1日努力しましたが


どうにもこうにもインストールできませんでした。





ネットの情報も、最新版のインストールではなく、ちょっと前のものなので


ちょうど問題になっているエラーとかの情報が見当たらず、自前でごりごり


いろいろ試してみるがどれも駄目。





インストールの途中で、エラーがでてそれ以上進んでくれない状態で


もう、何が悪いのかまったくわからずあきらめました。





そこで、ちょっと前のバージョンのcoLinux0.7.1で、


Centos5.2がインストールできないか試すことにしました。


(最新版好きの私としてはかなり不本意でしたが。。。)





インストーラーも、それにあわせてcoLinux-installer-20080115を使うことに。


coLinux-installer-20080115 は、Centos5.1 用のインストーラーですが、


Centos5.2.iso ファイル名を Centos5.1.iso に変えて使うことに。








結果は、問題なくインストールができました。


coLinux0.7.3で、エラーが出て進めなかったところも無事クリアーできて、インストール完了。


長時間の苦労が報われました。





しかし、


できたぁ~!という気持ちよりも、無理にcoLinux0.7.3にこだわらず、とっとと0.7.1にしておけば


無駄な時間をかけずにすんだのに。。。と、ちょっとへこみました。








今回書きたかったのは、





coLinux0.7.3 + Centos5.2 は、インストールできずにはまるので回避してください。(笑)





という結論です。








用意したもの


coLinux0.7.1


http://www.colinux.org/


coLinux-installer-20080115


http://www.geocities.jp/xmlinux2004/coLinux/colinux.html


CentOS-5.2-i386-bin-1of6.iso ~ 6of6.iso


http://wiki.centos.org/FrontPage