1

シナリオ:

バックグラウンド プロセスを使用してユーザーが作成した新しい 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 サーバーのスクリーンショット:
Amazon VPC サーバーのスクリーンショット

これについて私を案内してください。私は過去20時間からこれにこだわっています。

よろしく、
Hbksagar

PS: wkhtmltoimage のみを使用しているときに、次のようなエラーが発生したため、xvfb の使用を開始しました。

  • QWidget: GUI が使用されていない場合、QWidget を作成できません
  • QPixmap: GUI が使用されていない場合、QPixmap を作成できません

この記事を参照して

4

2 に答える 2

1

フォント関連のパッケージが両方のマシンで同じであること、およびfontconfig同様に構成されていることを確認してください。最新の 0.12.1 バイナリを使用することもお勧めします。

于 2014-06-27T09:22:44.600 に答える