如何打印使用.NET提交订单报告(How to print reports in submitted

2019-10-29 08:36发布

我们的VB WinForms应用程序打印使用标准的PrintDocument对象,一些具有多页的系列报道。 我的客户指出了硬拷贝报告不正确的顺序打印。 当我调试的代码,我可以验证报告以正确的顺序产生的,但是当我检查打印队列的报告不是在他们提交的顺序显示。 当我整理提交(日期 - 时间)队列,报告以正确的顺序显示。

有没有一种方法来设置从VB.NET的打印队列,以便多个报告进行排队,日期,时间顺序打印? 还是我错了一个洞钓鱼?

TIA

Answer 1:

关闭后台打印打印机上,因此应用程序直接打印到打印机。 这是打印机属性的高级选项卡上。



Answer 2:

这是后台打印的效果。 直到他们完成假脱机所以他们将在他们完成卷绕,而不是在它们被打印的顺序的顺序的队列项不被添加到所述打印队列中。 大型文件(图像等)需要更长的时间比小假脱机所以有可能以后打印完成第一后台,如果他们后台更快速的项目。 您可以禁用后台打印(如已建议),但是这可以使印刷繁琐的,因为所有的应用程序,然后在打印作业阻塞,直到他们完成,而不是让阀芯做的工作。

另一种可能是查询打印队列在自己的应用程序 - 直到你得到确认,该公司已经完成后台(如果使用后台处理)不要发送一个打印作业。 这得到各地都迫使用户更改系统设置,并迫使其他程序无法访问后台打印的便利的笨拙的解决方案。 请参阅:

打印队列类

与上面可以编程修改阀芯/直接设定̶(而不是做它通过打印机属性手动)̶或( 没关系,该属性是只读的。)可能会更好,使用类似

PrintQueue.GetPrintJobInfoCollection

发出打印作业时,监视队列。

以上是Server2008中和VistaSP2及以上支持。 对于XP和更早的版本,您可能需要遵循更多的东西一样:

如何查询在Windows打印队列

也许通过侦听:

WM_SPOOLERSTATUS



文章来源: How to print reports in submitted order using .NET