SVG сериализация - PullRequest
       14

SVG сериализация

1 голос
/ 16 ноября 2011

У меня есть холст на основе RaphaelJS, где пользователь может сделать некоторую работу. Мне нужно сделать 2 вещи:

  1. Сохранить работу пользователей в базе данных
  2. Rastersize SVG (для этой задачи я использую Apache Batik)

За 1 https://github.com/jspies/raphael.serialize выдает дамп холста Рафаэля в json, затем jQuery.getJSON () для отправки его на сервер, где мне нужно преобразовать его обратно в SVG для подачи в батик.

Этот поток кажется разумным? SVG -> JSON -> SVG преобразование кажется немного сложным, есть ли лучший способ сделать это?

Бэкэнд запускает python / django. Я использую стандартный пакет json для JSON -> SVG, но иногда он не работает с ошибками синтаксиса во входящем json (в основном в свойствах стиля шрифта). Кто-нибудь сталкивался с этими проблемами?

Как лучше всего хранить эти данные в базе данных? Так же, как строка?

Ответы [ 2 ]

2 голосов
/ 04 декабря 2011

Raphael.Export сохраняет элементы в SVG в любом браузере, который поддерживает Raphaël:

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

Я использовал его для сохранения чертежей Raphaël на сервере в формате PNG с помощью Batik.

0 голосов
/ 17 ноября 2011

Если вы можете получить дескриптор корневого элемента <svg> от Raphael, вы можете преобразовать его в исходный XML-код (на клиенте) и просто отправить его:

var svgAsXML = (new XMLSerializer).serializeToString(svg);
...