6

私は、要素がユーザーによってオンザフライで作成および再配置されるインタラクティブなSVG/AJAXインターフェイスに取り組んでいます。ユーザーが現在のビューをPNG画像やSVGドキュメントにエクスポートする機能をサポートしたいと思います。私は本当にSVGドキュメントをできるだけシンプルにしたいと思っています(ネストされた変換をたくさん使わないでください)。すでにこれをサポートしているフレームワークはありますか?

私は現在、ユーザーにCtrl + Alt + PrntScrn手法を使用するように求めていますが、ソフトウェア/プラグインをインストールするようにユーザーに求めたくありません。

サーバー側のコードは、それが役立つ場合は、現在PHPで実装されています。ImageMagickを使用して、(クライアントが変更を加える前に)「元の」ドキュメントからPNG画像を生成する機能をすでに実装しました。

4

2 に答える 2

13

これは、SVG をサポートするブラウザーでのみ機能する必要があると想定しています。

Firefox、Safari、および Opera は非標準XMLSerializerAPI を提供するため、次のようなことができます。

var svg = document.getElementById('svg_root'); // or whatever you call it
var serializer = new XMLSerializer();
var str = serializer.serializeToString(svg);

そこから、それをサーバーに送信し、その代わりに PNG を受け取ることができます。

これは、DOM からの XML のシリアル化に関する Mozillaの開発者ページです。

于 2008-10-22T22:25:50.477 に答える
4

Opera にはW3C の DOM→XML シリアライザが実装されています。XML モードinnerHTMLでは、Gecko で整形式の XML を返します。

HTML5<canvas>は を使用してそのコンテンツを PNG ファイルとしてエクスポートでき、 を使用してキャンバスにtoDataURL()任意の要素をペイントできるため、を作成してキャンバスにペイントし、 URLとしてエクスポートできるはずです。<img>drawImage()<img src="data:application/svg+xml,…">data:

于 2008-10-26T13:05:49.507 に答える