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 [僅限傳統型應用程式]
標頭
Mxdc.h

另請參閱

列印

印表機逸出函式

ExtEscape