mozilla2psを使い、うまくWebページをPNG化させるには

bellbind2007-05-25


mozilla2psは、Geckoを使って(Linux上で)PostScriptファイルを生成するXulRunner appである。

使い方

XulRunnerの仕様から、実行には必ずX環境が必要なので、Webサーバ利用の場合でも、xvfbや日本語等のフォント環境はそろえておく必要がある。また、psファイルを望むフォーマットに変換するためのコマンド、gsやimagemagick(またはgraphicsmagick)も入れておいたほうがいい。

インストール:

$ wget http://michele.pupazzo.org/mozilla2ps/download/mozilla2ps-0.6.xulapp
$ xulrunner --install-app mozilla2ps-0.6.xulapp /home/bellbind/xulapps/

利用:

$  xvfb-run xulrunner /home/bellbind/xulapps/mozilla2ps/application.ini http://www.yahoo.co.jp /home/bellbind/test.ps

いくつかのGtk-Errorを出しながらもpsファイルはでき、プロセスは終了する。

利用: 背景色や背景イメージつきで出力させる

$  xvfb-run xulrunner /home/bellbind/xulapps/mozilla2ps/application.ini \
    http://www.yahoo.co.jp /home/bellbind/test.ps \
    -margins 0 -papername Letter -bgcolors true -bgimages true

変換: PDFへ

$ ps2pdf test.ps

変換: 複数ページのPNG

$ convert test.ps test.%02d.png

変換: 単一ページのPNG

$ convert -append test.ps test.png


感想:

  • firefoxの印刷プレビューとほぼ同じ画面を保存する(このページのダイアリーテーマだとけっこう崩れる)
    • PNG化しても下側に大きな隙間ができる

うまくPNG化するには

より縦長の紙でlandscape出力し、90度回転させて連結しPNG化する

$ xvfb-run xulrunner xulapps/mozilla2ps/application.ini http://bellbind.net/ \
    /home/bellbind/test.ps -margins 0 -papername Legal \
    -bgcolors true -bgimages true -landscape true
$ convert -rotate 90 -append test.ps test.png

標準の紙だと、Legalが一番縦細かな。