1

私はRaphaelJSベースのキャンバスを持っており、ユーザーはそこでいくつかの作業を行うことができます。私は2つのことをする必要があります:

  1. ユーザーの作業をデータベースに保存
  2. Rastersize SVG(私はそのタスクにApache Batikを使用しています)

1 https://github.com/jspies/raphael.serializeは、Raphaelのキャンバスをjsonにダンプし、次にjQuery.getJSON()を使用してバックエンドに送信します。ここで、SVGに変換してBatikにフィードする必要があります。

この流れは合理的だと思いますか?SVG-> JSON-> SVG変換は少しオーバーヘッドのようですが、これを行うためのより良い方法はありますか?

バックエンドはpython/djangoを実行します。JSON-> SVGには標準のjsonパッケージを使用していますが、着信json(主にフォントスタイルのプロパティ)で構文エラーが発生して失敗することがあります。誰かがこれらの問題に直面しましたか?

このデータをデータベースに保存するための最良の方法は何ですか?文字列のように?

4

2 に答える 2

2

Raphael.Exportは、RaphaëlがサポートするすべてのブラウザーのSVGに要素を保存します。

https://github.com/ElbertF/Raphael.Export

Batikを使用してサーバー側でRaphaël図面をPNGとして保存するために使用しました。

于 2011-12-04T00:32:16.723 に答える
0

Raphaelからルート<svg>要素のハンドルを取得できる場合は、これを(クライアント上の)生のXMLソースに変換して、次のように送信できます。

var svgAsXML = (new XMLSerializer).serializeToString(svg);
于 2011-11-16T21:58:14.550 に答える