2012-03-07 100 views

回答

0

这取决于您对打印过程的控制程度。 SetJob命令确实允许您暂停单个作业,但您需要先进入,然后才可能将数据发送到打印机。

当应用程序将打印作业的正常打印路径进入的财产以后像

  • StartDocPrinter
  • StartPagePrinter
  • WritePrinter
  • ....
  • EndPagePrinter
  • ...
  • EndDocPrinter

如果您可以在第一个WritePrinter路径之前获得SetJob命令,则可以在将任何数据发送到设备之前暂停作业。

不幸的是,如果您使用类似C#PrintDocument类的东西,它会遮住大部分内容,并且不提供任何获取JobId参数和打印机句柄的方法,您需要调用SetJob命令。

0

如果您使用AddJobW()和ScheduleJob(),那么是的。

AddJobW()创建作业并且ScheduleJob()触发它开始。 (有关示例代码中看到here。)

所以......

  1. 呼叫AddJobW()创建工作(一个或多个)。
  2. 调用SetJobW()重命名每个作业,将它们链接在一起(批处理)等。
  3. 调用ScheduleJob()以启动作业。