2009-05-08 19 views
9

DIVのコンテンツから画像を生成するためのJavaScriptライブラリが用意されているのでしょうか?JavaScriptでDIVの画像を作成する(GIF/PNG)

基本的に、これはブラウザからバックグラウンドを印刷する必要がある一部のサーバー側印刷コードに必要です。

DIVの内容をPNG形式にエンコードし、エンコードされたデータを印刷操作でポストすることを私が最終的にしたいと思います。

これが可能ならば、どんな考えですか?

[編集]バックグラウンドのデータが画像サーバーからブラウザDIV(Googleマップを考えて)に直接送られるマッピングアプリケーションです。そのdivはメインデータの背景です。印刷が押されると、サーバは知っているデータからPDFを生成しますが、ブラウザのバックグラウンドデータは何も知りません。私が本当に好きなのは、何らかの方法でブラウザの背景イメージをサーバーに提供できることです。

乾杯、 Roの

+0

私が持っているのは、バックグラウンドデータが画像サーバーからブラウザDIV(Think Googleマップ)に直接送られるマッピングアプリケーションです。 そのdivはメインデータのバックグラウンドです。 [印刷]を押すと、サーバーは既知のデータからPDFを生成しますが、ブラウザの背景データは何も認識しません。 私が本当に好きなのは、何らかの方法でブラウザの背景イメージをサーバーに提供できることです。 –

答えて

0

I

1)ユーザーが印刷を押すと、DIV
を質問してください。2)そのDIVの画像が次のように生成されています。 OpenLayersをAPI
3)各画像
4のURLをつかむ)各画像
5の画面上の位置をつかむ)実世界の場所(私はこれのためのAPIを持っている)
6)に、画面の位置を翻訳プリントの一部として、実際のエクステントと共にすべてのイメージURLを送信してください。
7)サーバーが画像を再要求し、適切な場所に描画できるようにします。

+5

あなたの答えをもっと詳しく説明してください。 –

+0

これはあなたの問題を解決したかもしれませんが、この質問に対する正確な答えではありません。質問はdivをイメージとしてキャプチャする方法に関するものです。答えはhttps://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Drawing_DOM_objects_into_a_canvasを参照してください。 – Gautam

1

あなたはそれで実際の画像を、JavaScriptから画像タグを作成することはできませんが:JSは、ビットマップにメモリを割り当てるために何のコマンドを持っていないし、それはそれで何かをレンダリングするには、noコマンドを持っていません。

一般的な解決方法は、要求に応じて画像を作成するレポートジェネレータをサーバーに用意することです。 BIRTまたはJasperReportsを見てください。

[編集]あなたのコメントに基づいて、解決策は簡単です:DIVを調べ、背景画像のURLを見つけ、DIVをIMG要素に置き換えます。 URLをSRC属性に入れてから印刷します。

+0

真実、それは他のものがどのように働くか.... バックグラウンドデータが画像サーバーからブラウザDIV(Googleマップと考える)に直接届くマッピングアプリケーションです。 そのdivはメインデータのバックグラウンドです。 [印刷]を押すと、サーバーは既知のデータからPDFを生成しますが、ブラウザの背景データは何も認識しません。 私が本当に好きなのは、何らかの方法でブラウザの背景イメージをサーバーに提供できることです。 –

+0

新しい「キャンバス」はありませんか?私はあなたがそれを使って物を描くことができると思いますか? –

+0

はい、キャンバスは、プリントエンジンがサポートしている場合にも動作します。 –

0

私は本当にこれがブラウザで可能だとは思わない、確かに何らかのプラグインなしではない。

Webサーバーに座標情報などを送信して、Webサーバーがイメージサーバーから同じマップイメージを要求してもらえますか?画像を生成

0

はIE5でのみ可能でした:(次によるそれがドロップされたセキュリティ上の理由に、私はまだそれを欠けている

0

ブラウザ側で行う必要がありますか?私はあなたがサーバー側の呼び出しを行うことができる場所を見てきました、そして、サーバー応答のMIMEタイプはイメージタイプです。私が考えているのは、b64でエンコードされたjpegをdbで扱った例ですが、プロセスは同じでなければなりません。応答は現在あなたのDIVにあるデータです。もし私がベースから離れているなら、申し訳ありません。

1

非常に興味深い質問です。

実際に私はこの問題をajax(画像をサーバーに転送し、サーバーは画像から画像を1つ作成し、保存してクライアントに送信します)を使用して解決します。私はこの解決策があまり好きではありませんが、私は他のことはまだ分かりません。

関連する問題