2015-05-28 48 views
1

我正在构建一个Windows窗体应用程序,以非常特定的方式打印文档...应用程序必须逐页打印,并在每次打印页面时停止询问将用于打印下一页的用户参数。C#打印 - 数据何时发送到打印机?

截至目前为止,我已经能够使用我自己的类从System.Drawing.Printing.PrintDocument派生并覆盖OnBeginPrint,OnQueryPageSettings和OnPrintPage方法进行打印......我的应用程序每次都会停止一个页面将被处理,用户可以设置参数并按下“确定”键继续......我已经在OnPrintPage方法中编写了这个过程,但事情是类完成了整个文档的压缩之前被发送到打印机......并且,如上所述,我需要我的班级打印页面,然后停止并询问用户输入,然后打印第二页,然后打印整个文档。

谁能给我如何进行的提示!?!?,我一直在寻找在互联网上,但还没有找到如何处理这样一个奇怪的情况下,什么...

预先感谢帮助!

+3

考虑打印单独的文档而不是多页文档。 – Bas

+1

为什么在开始打印之前不能要求所有参数? –

+0

如果发布您正在使用的代码,它也会很方便...我不认为这个小时内的读者会出现。 –

回答

0

System.Drawing.Printing.PrintDocument命名空间仅提供了将作业传送到打印假脱机程序的机制。物理打印和调度由Windows打印后台处理程序处理。这是一个驱动程序,队列,网络,虚拟和其他打印机相关巫术的整个世界。

如果要以编程方式强制打印作业通过打印机,您可能需要查看Print Spooler API

+1

你好迈克,考虑你在你的帖子上说些什么我认为easies /更快的解决方案是将每个页面作为一个单独的文档进行管理,正如Bas在上面的评论中所建议的那样。 – dragonov7

+0

是否有人知道我可以在Print Spooler API上获得教程,或者至少有一些例子! – dragonov7

+0

@ dragonov7是的,将每个页面视为一个单独的文档可能是最好的方法。我怀疑人们使用打印假脱机程序API是非常不寻常的。我只是在与非标准印刷设备合作的过程中遇到过这种情况,而且不知道它存在多少。 –