2010-03-18 59 views
2

我正在重新设计一个Windows应用程序以移植到网站。一个令人担忧的领域是'打印'。以更高的精度从网页(特别是报告)打印

应用程序是数据密集型的,需要生成复杂的报告。以前的Windows应用程序利用打印机API并将复杂的控制扩展到用户。它支持分页功能,避免在纸张的打印部分(如信笺)上打印,布局和方向的选择等。请注意,这些设置仅在打印时完成,它们有时是报告定义的一部分。

据我所知,打印网页时我们不能有这种控制。我正在寻找可供选择的方法。虽然我更喜欢先看看东西,这将帮助我从原材料的网页打印,以下是其他的想法:

  1. 由于报告也可以导出为.xls & .PDF版本,让用户直接下载一个和打印。但是,这将我的解决方案限制在具有导出功能的应用程序区域。
  2. 使用Silverlight(4.0)进行报表布局定义和打印。我认为Silverlight 4.0(现在在测试版中)提供了对打印机的足够控制。到目前为止,我一直在避免使用任何RIA插件。
  3. 精确地生成具有固定尺寸的网页报告。我不知道这会走多远。

请分享可以很容易地在我的情况下被应用实践。

回答

3

对于在网络上过去的报告,使用.NET,我喜欢生成PDF,Excel和Word或CSV文件。我非常喜欢iTextSharp,它允许创建PDF。

Word可以接受HTML,所以通常很容易引用。对于更多的控制,你可以进入Word interops http://nishantrana.wordpress.com/2007/11/03/creating-word-document-using-c/,但他们让我感到沮丧。不是为了实施,但我觉得清理很差。

CSV适用于原始数据转储,就是这样。

对于HTML,您可以使用style sheet targeted to print media得到很好的控制。只有某些你无法控制的东西,比如浏览器页眉和页脚。

+0

印刷媒体样式表上的几个选择位: http://www.alistapart.com/articles/boom/ http://www.alistapart.com/articles/goingtoprint/ http:// www .alistapart.com/articles/printtopreview/ – 2010-03-18 06:16:36

+0

谢谢。我会先试试看看我能走多远。 – Kabeer 2010-03-18 06:35:39

0

Flash比普通HTML还具有更好的打印控件,但您可能不知道它,因为这些功能很少被Flash开发人员使用。现在几乎每个人都应该安装Flash,所以它不像Silverlight那样有人需要安装插件的好机会(对于beta版本来说是双倍的)。我不确定Flash打印机API如何与Silverlight的打印机API进行比较,以及它们是否能够提供您所需的控制级别,但其文档是公开的,因此您可以查看它。

另外我认为出口到PDF是一个好主意。我不明白为什么你无法将此扩展到涵盖需要打印报告的所有地方。基本上,不是直接从桌面上运行的Windows应用程序打印,而是在您的服务器上运行相同的确切代码,然后生成PDF文件,然后他们可以打印自己的文件。

0

我不认为你会有很多运气,试图用不幸的原始HTML做到这一点。对于我们的客户之一,我们使用“生成PDF”路线,结果非常好。 PDF有另外的好处,你不需要必须打印出来:你可以通过电子邮件发送给老板/会计师/无论节省一些纸张。

0

如果您想要对打印输出进行绝对控制,PDF就是要走的路。作为奖励,您还可以选择在应用程序中下载PDF文件。

使用HTML,您处于用户浏览器页面大小,页边距以及如何处理分页符的设置。