Как сохранить холст Silverlight 2.0 в базе данных и экспортировать его в PDF - PullRequest
2 голосов
/ 19 января 2009

У меня есть проект Silverlight 2.0, который позволяет пользователю добавлять текст и изображения на холст. Они могут перемещать, вращать и изменять размер текста / изображений. Мне было интересно, как лучше сериализовать объекты Silverlight в базу данных, а также иметь возможность генерировать PDF холста для печати.

Я прочитал несколько статей о вызове веб-службы и передаче сериализованных данных, а затем о сохранении и создании PDF-файла. Мой главный вопрос - как эффективно сериализовать объекты Silverlight, чтобы их можно было перерисовывать, когда пользователь возвращается, и если есть простой способ сохранить холст в виде PDF или изображения.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 19 января 2009

Мы столкнулись с точно такой же проблемой при создании colaab, системы совместной работы Silverlight 2, доступной по адресу:

http://www.colaab.com

Возможны следующие варианты:

  1. Создайте процесс на стороне сервера, чтобы открыть веб-браузер и правильно настроить страницу, а затем сделать снимок экрана с помощью программного обеспечения, такого как WebShot .

  2. Отправьте Xaml из вашего визуального дерева на сервер (есть удобный класс в SilverlightContrib для получения Xaml из объектной модели). Как только вы получите это на стороне сервера, используйте полноценную поддержку WPF .NET Framework, чтобы экспортировать это как PNG. Это не поддерживается на стороне сервера, так как WPF - это клиентская технология.

  3. Использование HTML-моста для вызова функции печати браузеров

  4. Подождите, пока Silverlight 3 - «улучшенная печать и RenderTargetBitmap (скриншот растрового изображения AKA) - это две функции, которые мы планируем в следующей версии».

Спасибо

Bob

- Боб Томсон штормовые идеи

http://www.colaab.com http://blog.stormideas.com щебетать: движение вперед

0 голосов
/ 19 января 2009

К сожалению, не существует простого способа сохранить холст в виде PDF или изображения. У нас недавно была похожая проблема, и мы прибегли к запуску службы, которая по существу создала браузер IE в памяти, в котором размещалось приложение silverlight, а затем сняла его с экрана. Это все немного беспокойно ... Я надеялся на что-то вроде Canvas.ToImage ();)

Извините, что нет лучшего ответа!

Я скоро узнаю о сериализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...