我有一个Silverlight 2.0项目,允许用户将文本和图像添加到画布。他们可以移动,旋转和调整文本/图像的大小。我想知道将Silverlight对象序列化到数据库的最佳方法,并且还能够生成要打印的画布的PDF。
我读过一些关于调用Web服务并传递序列化数据,然后保存并生成PDF的文章。我的主要问题是如何有效地序列化Silverlight对象,以便在用户返回时可以重新绘制它们,并且有一种简单的方法可以将画布保存为PDF或图像。
感谢。
答案 0 :(得分:3)
我们在构建可用的Silverlight 2协作系统colaab时遇到了完全相同的问题:
选项似乎是:
创建服务器端流程以打开网络浏览器并正确设置页面,然后使用WebShot等软件截取它。
将Xaml从可视树发送到服务器(SilverlightContrib中的一个方便的类,以从对象模型中获取Xaml)。一旦你在服务器端得到这个,使用完全成熟的.NET框架WPF支持将其导出为PNG。由于WPF是一种客户端技术,因此服务器端不支持此功能。
使用HTML Bridge调用浏览器打印功能
等待Silverlight 3 - “更好的打印和RenderTargetBitmap(AKA位图截图)是我们为下一个版本计划的两个功能。”
谢谢,
鲍勃
- 鲍勃汤姆森 暴风雨的想法
http://www.colaab.com http://blog.stormideas.com twitter:movingforwards
答案 1 :(得分:0)
不幸的是,没有一种简单的方法可以将画布保存为pdf或图像。我们最近遇到了类似的问题,并使用了一个服务运行,实际上在内存中创建了一个IE浏览器,托管Silverlight应用程序,然后从那里截取它。有点繁琐......我希望像Canvas.ToImage();)
抱歉没有更好的答案!
我很快就会发现序列化。