2012-03-07 102 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()以啓動作業。