列印票證與 Win 32 應用程式的相容性
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
當您在 Microsoft Win32 型應用程式和以 GDI 為基礎的列印驅動程式中使用列印票證時,您必須考慮下列相容性案例:
列印至 XPSDrv 列印驅動程式的 Win32 型應用程式
當不知道列印票證檔的 Win32 型應用程式列印至 XPSDrv 列印驅動程式時,GDI 到 XPS 轉換模組會從 Win32 型應用程式呼叫的 DDI 呼叫建立 XPS 多任務緩衝處理檔案。 Windows Vista 列印支援也會建立以 Win32 架構應用程式所使用的 DEVMODE 結構為基礎的列印票證,並將其插入針對檔建立的 XPS 多任務緩衝處理檔案中。 GDI 到 XPS 轉換只能轉換 DEVMODE 結構的公用部分。 轉換會使用適當的 XML 二進位編碼,將私人 DEVMODE 內嵌至列印票證作為二進位大型物件 (BLOB)。 您可以從 DEVMODEW 到列印票證轉換中的列印票證,將二進位 BLOB 還原至 DEVMODEW 結構的私用部分。
對 XPSDrv 列印驅動程式,從 Win32 型應用程式傳送的檔與從 Windows Presentation Foundation (WPF) 應用程式傳送的檔不同,因為這兩份檔會以 XPS 多任務緩衝處理檔格式進行多任務緩衝處理。
列印至 GDI 型列印驅動程式的 WPF 應用程式
當 WPF 應用程式將包含列印票證的檔列印到不支援列印票證的 GDI 型列印驅動程式時,Windows Vista 列印支援會將 WPF 應用程式傳遞給 EMF 檔案的 XPS 檔,並將每個列印票證轉換成 DEVMODE 結構。
對 GDI 列印驅動程式,來自 WPF 應用程式的列印作業與 Win32 應用程式傳送的列印作業不同。