印表機驅動程序架構
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
列印作業是由應用程式透過呼叫 Microsoft win32 GDI 或 Windows Vista 中的 Windows Presentation Foundation (WPF) 函式所建立。 Win32 會將多任務緩衝處理應用程式數據當做 EMF 記錄,以供 EMF 列印處理器稍後播放,或可立即轉譯每個檔頁面的可列印影像。 WPF 會將應用程式數據多任務緩衝處理為 XPS 多任務緩衝處理檔案。
在 Windows Vista 之前,應用程式會使用 DEVMODEW 結構將印表機設定通訊至印表機。 在 Windows Vista 中,列印票證和列印功能技術會傳達印表機設定,讓印表機設定在印表機和應用程式中更相容。
影像轉譯會在列印驅動程式中執行,無論是立即執行,還是在列印處理期間執行:
GDI 型印表機驅動程式會在從多任務緩衝處理檔案播放 EMF 記錄期間執行影像轉譯,並由 GDI 轉譯引擎控制。 在轉譯作業期間,GDI 轉譯引擎會呼叫適當的 Windows 2000 和更新版本的印表機驅動程式以取得協助。
XPSDrv 印表驅動程式 會使用一系列處理篩選器來處理 XPS 多任務緩衝處理文件內容,以輸出至印表機。
Windows 2000 及更新版本的 GDI 型印表機驅動程序必須:
提供 GDI 不支援的印表機特定繪圖功能,協助 GDI 轉譯印表作業。
將轉譯影像的數據流傳送至列印後台處理程式。
提供使用者介面給與印表機和列印檔相關聯的可修改組態參數,例如選取的輸入和輸出匣、複本數目、影像解析度和方向等等。
XPSDrv 印表機驅動程式具有與 GDI 型驅動程式相同的使用者介面責任,也負責處理列印作業數據,並將數據傳送至列印機。 不過,XPSDrv 印表機驅動程式不需要使用 GDI 來轉譯印表機的頁面影像。
Windows 2000 和更新版本的印表機驅動程式是由一組 印表機驅動程式元件 所組成,可將驅動程式的繪圖和使用者介面作業分成不同的 DLL。 XPSDrv 印表機驅動程式也由將組態和繪圖和轉譯函式分割成不同物件的元件所組成。
本節旨在協助您瞭解 Windows 2000 和更新版本操作系統支援的不同類型的印表機驅動程式,但您也應該記得下列三個印表機驅動程式隨附於操作系統:
這三個驅動程式支援現今使用者可以購買的大多數列印裝置。 只有當印表裝置與適當的Microsoft提供的驅動程式不相容時,才需要撰寫印表機驅動程式。 只要將印表機數據檔新增至其中一個Microsoft提供的驅動程式,即可支援大部分的新印表機。 可能需要新驅動程式的裝置包括那些包含由專屬命令順序控制的硬體繪圖加速器。
本節包含下列主題,其中說明 Windows 列印架構。