2011-02-07 11 views
4

現在、Cobraを使用しています。Java HTMLレンダラー& Javaアプリケーションのユーザー選択に基づいて動的に生成されるHTMLページをレンダリングするパーサー。Cobraを使用したJava HTMLレンダリング

私のアプリでは、ユーザーは何百もの項目を選択して選択できます。アイテムは特別な固有の色のシンボルの形で表示され、ユーザーは複数のアイテムを選択できます。

いくつかの項目が選択されると、その記述は動的に生成され、css2タグとhtml4タグを含むようにフォーマットされ、表示用にCobra HTMLPanelにロードされます。

私は、HTMLPanelに記載された項目の説明文を使ってシンボルの画像を表示したいと考えています。

これを行う1つの方法は、ImageIO.writeを使用してBufferedImageをファイルに保存し、次にHTMLPanelに読み込まれる動的に生成されたHTMLドキュメントにimg htmlタグを含めることです。残念ながら、これは、数百のシンボルがユーザによって選択され、何百ものImageIO.writeコールが発生し、私のアプリケーションのパフォーマンスが大幅に低下する可能性があるため、受け入れられません。 HTMLPanelは、データURIスキームを無視するように見える残念ながら

<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." /> 

を次のように

代替の方法は、HTMLドキュメントにエンコーディングをBase64エンコーディングにBufferedImageを変換し、直接置くことであろう。

ソリューションを知っている人はいますか?

+0

あなたのアプリケーションに画像を表示すると、それらはどこかのファイルに置かなければなりませんか?なぜあなたはそこを指差していませんか? – Jules

+0

シンボルは多数あり、色が異なる可能性があるため、アプリケーションによって手続き的に描画され、ファイル形式ではなくメモリ内にのみ存在します。 – Tractatus

答えて

1

Jettyのような埋め込みサーブレットコンテナを使用します。 URLに "http:// localhost:somePort/imageId"を指定し、それらのURLをメモリから提供します。

+0

残念ながら、このアプローチは複雑に感じます。私はこれを動作させるためのきれいで簡単な方法を探しています。 – Tractatus

関連する問題