MXDC_ESCAPE函式
MXDC_ESCAPE印表機逸出函式可讓應用程式透過 Microsoft XPS 檔轉換程式 (MXDC) ,將檔寫入 XML 紙張規格 (XPS) 格式。
若要執行這項作業,請使用下列參數呼叫 ExtEscape 函式。
語法
int MXDC_ESCAPE(
hdc,
cbInput,
lpszInData,
cbOutput,
lpszOutData
);
參數
-
hdc
-
印表機裝置內容的控制碼。
-
cbInput
-
lpszInData參數所指向之資料的大小,以位元組為單位。
-
lpszInData
-
緩衝區的指標,其中包含輸入資料,一律會儲存在下列其中一個結構中。
- **MxdcEscapeHeader**
- **MxdcPrintTicketEscape**
- **MxdcS0PagePassthroughEscape**
- **MxdcS0PageResourceEscape**
每個結構都有 opcode 成員,指定 MXDC 應該執行的動作。 如需這些程式碼的詳細備註,請參閱 MxdcEscapeHeader。
作業程式碼 (opcode) 動作 - MXDCOP_GET_FILENAME
將ExtEscape函式的lpszOutData參數設定為 ,輸出檔的完整路徑為零終止字串,或是該字串的大小。 - MXDCOP_PRINTTICKET_FIXED_DOC_SEQ
建立列印票證與 XPS 固定檔順序的關聯。 - MXDCOP_PRINTTICKET_FIXED_DOC
將列印票證與 XPS 檔建立關聯。 - MXDCOP_PRINTTICKET_FIXED_PAGE
建立列印票證與 XPS 頁面的關聯。 - MXDCOP_SET_S0PAGE
將目前頁面的 XPS 標記傳送至輸出。 - MXDCOP_SET_S0PAGE_RESOURCE
將頁面上的資源,例如影像或字型傳送至輸出。 - MXDCOP_SET_XPSPASSTHRU_MODE
讓 MXDC 進入傳遞狀態,讓應用程式可以直接將 XPS 寫入輸出檔案,而不需要 MXDC 進行任何處理。 您可以透過這種方式撰寫整個檔或甚至檔順序。 -
cbOutput
-
lpszOutData參數所指向之資料的大小,以位元組為單位。
-
lpszOutData
-
緩衝區的指標,其中包含輸出資料。
傳回值
如果函式成功,則傳回值大於零。 如果函式失敗或不支援,則傳回值小於或等於零。
備註
MXDC 和 XPSDrv 支援此逸出,但 GDI 不支援此逸出。
若要判斷印表機驅動程式是否為 MXDC,請使用GETTECHNOLOGY逸出呼叫ExtEscape。 如果驅動程式是 MXDC, ExtEscape 會傳回以零結尾的字串 「 http://schemas.microsoft.com/xps/2005/06" ;。 請確定 lpszOutData 參數所參考的緩衝區夠大,足以保存此字串。
若要判斷印表機驅動程式是否為 Windows 內建的 Microsoft XPS 檔寫入器驅動程式,請確認印表機驅動程式為 MXDC,然後判斷印表機驅動程式的名稱是否為 「Microsoft XPS 檔寫入器」。
若要取得印表機驅動程式名稱,請使用下列其中一種技術。
- 呼叫 GetPrinterDriver ,並將 Level 參數值設定為 1。 印表機驅動程式名稱會在DRIVER_INFO_1結構的pName成員中傳回。
或
呼叫 GetPrinter ,並將 Level 參數值設定為 2。 印表機驅動程式名稱會在PRINTER_INFO_2結構的pDriverName成員中傳回。
下表顯示將寫入 XPS 檔案中各種物件類型的位置。
Object | 輸出檔中的位置 |
---|---|
固定頁面 | /Documents/1/Pages/Esc%d.fpage |
縮圖 | /Documents/1/Metadata |
列印票證 | /Documents/1/Metadata |
字型 | /Documents/1/Resources/Fonts |
映像 | /Documents/1/Resources/Images |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2008 [僅限傳統型應用程式] |
標頭 |
|