1

ヘッドレスブラウザ、google filesytem API、またはその他の方法のいずれかを使用します。

この質問はあなたができると言っていますが、方法はできません。 d3.js SVGコードをスタンドアロンプ​​ログラムに変換する-何か提案はありますか? グーグルグループにはもっとヒントがありますが、例はありません。

node-canvasの例とphantomJSsvgの例でたくさんの時間を過ごしました。一緒に遊ぼう方法がわかりません。どうやらLinuxでは、x-windowsJavascriptレンダリングエンジンはとにかくあまり良くありません。

JavaScript、d3.js、SVG、CSS、およびその他のHTML関連のAPI読み取りリストは、すでに山のようです。私がやりたいのは、d3.jsで生成した.svg画像を保存することだけです。

助けてください。

4

3 に答える 3

0

これは簡単でも、明らかに複雑でもありません。主な理由は、Chromeバージョン12でない限り、WebブラウザだけではDOMレンダリングからSVGファイルを保存できないためです。

SVG画像は、一連のレンダリング命令を含む単なるテキストファイルであるということです。あなたが指摘する解決策は、基本的にこのサーバー側を実行する必要があると言っています。node.jsが提案されていますが、これは任意のサーバー側言語で実行できます。

秘訣は、JavaScript / HTMLインターフェースを使用して、作成したすべてのオブジェクトを追跡するか、そうでなければすべてのオブジェクトをシリアル化できるようにしてから、そのデータをサーバー側のプログラムに送信することです(例:ajax経由)。それをSVGファイルに再構成し、ダウンロードできるようにします。

課題は、両方のプログラム(クライアント側、javascript、サーバー側:php / etc。)が多かれ少なかれSVG仕様を再実装してこれを機能させ、どのようにシリアル化したかについて共通の理解を持っていることです。トランスミッション。これを行うストックコンポーネントは事実上ありません。

于 2012-06-18T02:04:53.910 に答える
0

64Bエンコーディングでnode()。parentNode.innerHTMLを使用する例がいくつかありますが、使用方法がわかりませんでした。 https://groups.google.com/forum/?fromgroups#!topic/d3-js/aQSWnEDFxIc

私がこれまでに見つけた最も簡単な解決策は、ここにあるFileSaver.jsデモです: http ://eligrey.com/demos/FileSaver.js/

HTML5ファイルセーバーインターフェイスを使用します。

于 2012-06-26T20:54:58.043 に答える
0

私は今日これに出くわしました、私はそれを試していませんが、おそらく誰かがそれが役に立つと思うでしょう:

https://github.com/d3-node/d3-node

 const D3Node = require('d3-node')
 const d3n = new D3Node()      // initializes D3 with container element
 d3n.createSVG(10,20).append('g') // create SVG w/ 'g' tag and width/height
 d3n.svgString() // output: <svg width=10 height=20 xmlns="http://www.w3.org/2000/svg"><g></g></svg>
于 2020-12-10T12:48:29.890 に答える