如何将Silverlight 2.0画布保存到数据库并将其导出为PDF

时间:2009-01-19 14:59:28

标签: .net silverlight xaml pdf

我有一个Silverlight 2.0项目,允许用户将文本和图像添加到画布。他们可以移动,旋转和调整文本/图像的大小。我想知道将Silverlight对象序列化到数据库的最佳方法,并且还能够生成要打印的画布的PDF。

我读过一些关于调用Web服务并传递序列化数据,然后保存并生成PDF的文章。我的主要问题是如何有效地序列化Silverlight对象,以便在用户返回时可以重新绘制它们,并且有一种简单的方法可以将画布保存为PDF或图像。

感谢。

2 个答案:

答案 0 :(得分:3)

我们在构建可用的Silverlight 2协作系统colaab时遇到了完全相同的问题:

http://www.colaab.com

选项似乎是:

  1. 创建服务器端流程以打开网络浏览器并正确设置页面,然后使用WebShot等软件截取它。

  2. 将Xaml从可视树发送到服务器(SilverlightContrib中的一个方便的类,以从对象模型中获取Xaml)。一旦你在服务器端得到这个,使用完全成熟的.NET框架WPF支持将其导出为PNG。由于WPF是一种客户端技术,因此服务器端不支持此功能。

  3. 使用HTML Bridge调用浏览器打印功能

  4. 等待Silverlight 3 - “更好的打印和RenderTargetBitmap(AKA位图截图)是我们为下一个版本计划的两个功能。”

  5. 谢谢,

    鲍勃

    - 鲍勃汤姆森 暴风雨的想法

    http://www.colaab.com http://blog.stormideas.com twitter:movingforwards

答案 1 :(得分:0)

不幸的是,没有一种简单的方法可以将画布保存为pdf或图像。我们最近遇到了类似的问题,并使用了一个服务运行,实际上在内存中创建了一个IE浏览器,托管Silverlight应用程序,然后从那里截取它。有点繁琐......我希望像Canvas.ToImage();)

抱歉没有更好的答案!

我很快就会发现序列化。