Printing 以更高的精度从网页(尤其是报告)打印

Printing 以更高的精度从网页(尤其是报告)打印,printing,report,webpage,Printing,Report,Webpage,我正在重新设计要移植到web的windows应用程序。一个令人担忧的领域是“印刷” 应用程序是数据密集型的,需要生成复杂的报告。以前的windows应用程序利用打印机API并将复杂的控制扩展到用户。它支持诸如分页符、避免在工作表的打印部分(如信头)上打印、选择布局和方向等功能。请注意,这些设置不仅在打印时完成,有时也是报告定义的一部分 据我所知,我们无法在打印网页时进行这种控制。我正在确定可供我使用的选项。虽然我更喜欢先研究一些可以帮助我从原始网页打印的东西,但以下是其他想法: 由于报告也可以导

我正在重新设计要移植到web的windows应用程序。一个令人担忧的领域是“印刷”

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

据我所知,我们无法在打印网页时进行这种控制。我正在确定可供我使用的选项。虽然我更喜欢先研究一些可以帮助我从原始网页打印的东西,但以下是其他想法:

  • 由于报告也可以导出到.xls和.pdf版本,所以让用户下载一个并直接打印。然而,这将我的解决方案局限于具有导出功能的应用程序领域
  • 使用Silverlight(4.0)进行报告布局定义和打印。我认为Silverlight 4.0(目前处于测试阶段)提供了对打印机的充分控制。到目前为止,我一直在避免使用任何RIA插件
  • 在web上精心生成具有固定维度的报告。我不确定这会走多远

  • 请分享可以在我的场景中轻松应用的实践。

    对于过去在web上使用.NET进行报告,我喜欢生成PDF、Excel、Word或CSV文件。我真的很喜欢它允许创建PDF的

    Word可以接受HTML,所以这通常很简单。为了获得更多的控制权,你可以进入世界,但他们让我感到沮丧。不是为了执行,但我觉得清理工作很糟糕

    CSV对于原始数据转储非常有用,就是这样


    对于HTML,您可以使用。有些东西是你无法控制的,比如浏览器的页眉和页脚

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


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

    不幸的是,我认为您在尝试使用原始HTML时不会有太多运气。对于我们的一个客户,我们采用了“生成PDF”的方法,效果非常好。PDF还有一个额外的优点,那就是您不必打印出来:您只需通过电子邮件将它们发送给老板/会计/节省一点纸张的任何东西。

    PDF是一种方式,如果您想绝对控制打印输出。作为奖励,您还可以提供在应用程序中下载PDF的选项


    有了HTML,您就可以通过用户的浏览器设置来决定页面大小、边距以及如何处理分页符。

    打印媒体样式表上的一些选项:谢谢。我会先试试这个,看看我能走多远。