シナリオ:
バックグラウンド プロセスを使用してユーザーが作成した新しい Web アプリケーションのスクリーンショットを撮ろうとしています。Xvfbでwkhtmltoimageを使用しています。
問題:
スクリーンショットのプロセスは完全に正常に機能していますが、私の場合、utf8 と HTML5 のビデオがサーバー (Amazon VPC) でのみ機能しているのではなく、ローカル マシンで機能していることに問題があります。
UTF8 の問題に対する私の最初の推測は、UTF8 ローカル言語サポート、つまり en_IN.UTF8 を追加することでしたが、これはうまくいきませんでした。
HTML5 ビデオの問題を見つけたとき、xvfb が使用するデフォルトのブラウザーまたはレンダリング エンジンを検索してみました。運が悪かったのですが、wkhtmltoimage がQtWebkitレンダリング エンジンを使用していることがわかりました。
私のローカル(Ubuntu 13.04)とサーバーubuntu 12.04の間のインストール済みパッケージの違いをチェックアウトしようとしました。QtWebkit に関連するすべてのパッケージがほぼ同じであることがわかりました。
考えられる解決策:
スクリーン ショットの撮影中に呼び出されるブラウザ/レンダリング エンジンに問題があるのではないかと推測しています。
コードは次のとおりです。
xvfb-run --server-args="-screen 0, 1024x680x24" wkhtmltoimage --use-xserver -f png --quality 94 --javascript-delay 2000 --disable-smart-width --zoom 0.8 --encoding "utf-8" --enable-plugins --width 650 --height 600 http://google.com new.png
私が参照したいくつかのオンライン ドキュメント:
wkhtmltoimage doc1
wkhtmltoimage doc2
ローカルとサーバーの両方で作成されたイメージを追加しています。まあ、ローカルには、私が探しているすべての詳細があります。
ローカル マシンのスクリーンショット:
Amazon VPC サーバーのスクリーンショット:
これについて私を案内してください。私は過去20時間からこれにこだわっています。
よろしく、
Hbksagar
PS: wkhtmltoimage のみを使用しているときに、次のようなエラーが発生したため、xvfb の使用を開始しました。
- QWidget: GUI が使用されていない場合、QWidget を作成できません
- QPixmap: GUI が使用されていない場合、QPixmap を作成できません
この記事を参照して