【发布时间】:2008-10-07 17:13:35
【问题描述】:
我需要将 SL DataGrid 导出为 HTML,以便我的用户可以打印它。有人能把我引向正确的方向吗?
更新:阅读 Rob 的回答后,我正在改变我的问题。而不是将 Silverlight Grid 转换为 HTML,我现在只想将其导出为 PDF。有没有人在 Silverlight 中使用过任何第三方 PDF 生成器?
【问题讨论】:
标签: silverlight-2.0
我需要将 SL DataGrid 导出为 HTML,以便我的用户可以打印它。有人能把我引向正确的方向吗?
更新:阅读 Rob 的回答后,我正在改变我的问题。而不是将 Silverlight Grid 转换为 HTML,我现在只想将其导出为 PDF。有没有人在 Silverlight 中使用过任何第三方 PDF 生成器?
【问题讨论】:
标签: silverlight-2.0
HTML 是一个糟糕的打印选择,原因有很多,这些原因在本网站上有详细记录,因此我不会深入探讨。
我建议您导出为 PDF,而不是尝试使用 HTML 路线。对于导出为 PDF,有许多好的 .Net 工具 available。其他选项包括将您的网格导出到电子表格程序,如Excel、Spreadsheet Gear,或提供附加功能的 OpenOffice Calc。
【讨论】:
这可能有点牵强,但是如何将 Silverlight Xaml 导出到 XPS 并将 XPS 文档返回给用户(可打印)。您可以下载free XPS viewer here。我过去曾使用 WPF 和 XBAP 完成此操作,因此我想您可以在服务器端执行此操作并让用户下载 XPS 文档。
【讨论】:
如果您想在 Silverlight 中生成 PDF 或 XPS,您必须往返于服务器。有多种框架和工具可用于在 .NET 中生成 PDF。
但是,我不会放弃在 Silverlight 2 中生成 HTML 以进行打印的想法。我认为这是一个绝妙的想法,我不认为 Web 打印会损坏。带有 CSS 打印样式表的 HTML 真的很有用。
我最近发表了一篇博文,描述了如何使用 ASP.NET AJAX 4.0 客户端模板在使用 Silverlight 2 的客户端上生成 HTML。编写一段 C# 代码来转换任何数据网格应该不难到 HTML 表格。
但是,如果您知道要在数据网格中显示的对象类型,您可以根据自己的对象结构简单地生成 HTML。
在 Silverlight 中生成 HTML 有多种选择:
您使用 HTML Bridge 将 HTML 传回浏览器(谷歌获取更多信息)。
你也应该check out my blog post for a comprehensive overview of printing options in Silverlight。
【讨论】: