使用 Integration Builder 根據印表機狀態有條件地列印
問題
是否可以根據印表機目前的狀態來決定是否列印(或不列印)列印工作?
解答
是的,這確實是可行的。
整合平台可以像 Printer Maestro 在其「狀態」欄位中顯示資訊一樣,讀取印表機的狀態(下方截圖為兩台印表機分別顯示「離線,有錯誤」和「就緒」的範例):

- 建立「Shell 指令」動作:
我們需要在整合平台中建立一個「Shell 指令」動作,利用印表機驅動程式自動化介面(SSDAL):
C:\WINDOWS\ssdal.exe /p %Printer% get status Executing 'Get' command
我們會收到兩種可能的回應:Offline(離線) 或 Ready(就緒)。
輸出結果會寫入整合變數 %ShellCommandOutput%(或你自訂的其他變數)。
** 另外請注意,我在指令列中使用了 %Printer% 變數,這表示我在整合流程中已經先執行過其他動作,從觸發檔案中讀取了印表機名稱。
- 建立條件式列印動作。
當印表機狀態已經存放在整合變數 %ShellCommandOutput% 之後,就可以執行條件式列印動作(如下方截圖所示,這裡使用了「列印指令腳本」動作),例如只在印表機為「離線」時才執行。