在Silverlight中创建报告(以PDF格式发送或将其发送到打印机)

在Silverlight中创建报告(以PDF格式发送或将其发送到打印机),第1张

概述我最近尝试在Silverlight 4中生成报告.在我的问题域中,这些报告需要直接转到打印机和/或客户端SL应用程序创建PDF并允许用户将其存储在某处. 至于报告,它大致由50%流文本(包括枚举),30%表和20%图表组成.流动文本部分使其更具挑战性,因为必须进行适当的断线. 到目前为止,我尝试了以下方法 – 每种方法都有自己的缺点,使它们不那么可行: > Silverlight自己的PrintD 我最近尝试在Silverlight 4中生成报告.在我的问题域中,这些报告需要直接转到打印机和/或客户端SL应用程序创建pdf并允许用户将其存储在某处.

至于报告,它大致由50%流文本(包括枚举),30%表和20%图表组成.流动文本部分使其更具挑战性,因为必须进行适当的断线.

到目前为止,我尝试了以下方法 – 每种方法都有自己的缺点,使它们不那么可行:

> Silverlight自己的Printdocument:从技术上讲,有两个主要问题.首先,让分页工作正常工作,并在适当的布局上打印UIElements是一个肮脏的Hackjob和充满妥协;幸运的是,到目前为止,我已经成功完成了这项工作.但是,Printdocument类始终将所有可视内容呈现为位图,然后再将其发送出去;如果使用pdf打印机并希望仍能搜索/选择文本,这并不是那么有趣. DavID Poll在“Silverlight and Beyond”[1]中的方法并没有那么有用,因为它固有地遵循相同的方法,因此遭受非常相似的问题.
> silverpdf [2]:一个几乎没有文件记录的库,需要手动完成大部分布局(前一种方法至少允许我重复使用Silverlight的布局引擎).到目前为止,我认为没有办法(例如)测量段落,并且使用long flowtext的唯一样本使用布局矩形的硬编码绝对值.此外,发展方似乎不活跃.

就个人而言,我现在正在考虑采用完全不同的策略:简单地生成HTML文档.但我希望这里的社区可能对上述两种方法有所暗示,或者知道其他好方法.

提前致谢,
〜曼尼

解决方法 您是否需要在客户端上生成报告,或者您是否可以让服务器生成它?如果您可以在服务器上生成它,那么您的选择会更好.就个人而言,我认为目前Silverlight打印的工作方式非常差,因为报告的使用(将每个页面作为光栅而不是矢量发送到打印机,导致可能会有大量数据通过网络传输,并且打印质量输出较低).我发现最好的策略是在服务器上生成pdf(使您能够利用报告引擎),并将其显示在您的应用程序中.还有一些商业产品(例如Telerik的Silverlight Report VIEwer,Report Sharp Shooter,甚至是First Floor Software的document Toolkit).如果真的需要客户端解决方案,也许其中一个可能是最佳选择(尽管打印质量仍然很差).请注意,Silverlight 5应该支持矢量打印,但距离发布还有6个月或更长时间.另一种选择是Pete brown和DavID Poll的开源报告框架: http://silverlightreporting.codeplex.com/.

如果你想选择在服务器上生成报告作为pdf并在你的应用程序中显示它,我在这里写了一篇关于这样做的文章:http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-6.aspx.这不适用于OOB应用程序,但源代码随附我的书(Silverlight 4专业商务应用程序):apress.com/book/vIEw/9781430272076.

希望这可以帮助…

克里斯安德森

总结

以上是内存溢出为你收集整理的在Silverlight中创建报告(以PDF格式发送或将其发送到打印机)全部内容,希望文章能够帮你解决在Silverlight中创建报告(以PDF格式发送或将其发送到打印机)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存