ヘッドレスHTMLレンダリングのCentOS 5.4上の画像へ
-
26-09-2019 - |
質問
私は、HTMLをレンダリングし、ヘッドレスのCentOS 5.4サーバー上のファイルとしてレンダリングされた画像をキャプチャするために、プロジェクトの要件を持っています。私の具体的な要件は次のとおりです。
1)入力は、レンダリング(またはファイルへのページへのURLになります:ローカルのHTMLファイルに// URL)、出力はページ
のレンダリング画像を含む画像ファイルになります
2)CSSはCSSレベル-1
にレンダラアップによってサポートされている必要があり
3)ページ内の静的イメージは、.GIFや.PNG
をファイル内の任意の透明色を含む、レンダリングされた画像では正しく表示されなければなりません
4)ヘッドレスのCentOS 5.4サーバー上で実行することができる必要があります。
5)ソリューションは、商業的使用のために自由ではない任意の製品またはコンポーネント
私は、画面キャプチャを取得し、画像に保存する以外のページで何もする必要はありません。難しい部分は、ヘッドレス環境でこれをやっているようです。私が見たことの解決策の一部が動作するために、ディスプレイを必要とする議論ます。
任意の提案ですか?
事前におかげで、 ジム
SOLUTION: 私は、その埋め込まれたブラウザ機能のための標準ウィジェットツールキットライブラリ(www.eclipse.org/swt)を使用して終了しました。これは私がプログラムでイメージファイル(通常はPNG)にウィンドウの内容をキャプチャし、それにブラウザコントロールを持つウィンドウを開くページをレンダリングすることができました。避けることができない。このアプローチの唯一の欠点は、ウィンドウが画面キャプチャを行うために一瞬見えるようにしなければならない「ちらつき」です。私はそれと一緒に暮らすことができます。残りはシステムリソースを取得SWTオブジェクト、ページのロードが正常に完了するためにチェックするリスナーと、ハングした接続(ページのロードが何らかの理由で完了することはありません)をクリーンアップするためにいくつかのコードを初期化するコードだけでした。
私はCentOSのLinux上でXVFB(X仮想フレームバッファ)で遊ぶためにチームメイトを得ました。それは(XVFBをしようとすると)以下のポスターからアドバイス私の問題のヘッドレスサーバの一部のための実行可能なソリューションがあります。
のように見えるので、最初のテストでは、仕事に表示されます解決
あなたはXVFBを使用して、仮想X-Windows環境を起動することができます。これで、ページをレンダリングするために定期的にブラウザを起動し、ウィンドウの内容をキャプチャするscreencaptureユーティリティを使用することができます。それはきれいではありませんが、やってstraghtforwardます。
WebKitのあるオープンソースおよび組み込み可能な、多分あなたはキャンバスにレンダリングしてディスクに保存する小さなネイティブアプリでこれを使用することができますか?