動態產生的印表機命令
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
每次在 Unidrv minidriver 的 GPD 檔案中指定印表機命令時,都可以使用下列兩種方法之一:
將命令字串放在 GPD 檔案中。
當您將命令字串放在 GPD 檔案中時,Unidrv 會在適當的時間將命令傳送至列印後台處理程式。 這些命令字串可以包含標準變數,Unidrv 會在傳送命令之前先評估這些變數。
提供回呼函式。
如果您提供回呼函式,Unidrv 會在該函式傳送命令時呼叫函式,而且函式會負責將命令傳送至列印後台處理程式。 這可讓您包含動態產生命令字串的程式代碼,然後將它傳送至印表機。
若要在 GPD 檔案中放置命令字串,您必須在命令的 *Command 專案中包含 *Cmd 屬性。
若要提供動態產生命令字串的程式代碼,您必須執行下列動作:
提供實作 IPrintOemUni::CommandCallback 方法的轉譯外掛程式。
在 GPD 檔案的命令專案內,加入 *CallbackID 命令屬性,並選擇性地包含 *Params 屬性。
當 Unidrv 準備好發出印表機命令時,它會檢查 minidriver 資料庫,以判斷命令是否已以 *Cmd 屬性或 *CallbackID 屬性指定。 在先前的案例中,Unidrv 會將命令字串傳送至列印後台處理程式。 在後者的情況下,Unidrv 會呼叫 IPrintOemUni::CommandCallback 方法,將 *CallbackID 和 *Params 值當做輸入自變數傳遞。