共用方式為


如何:從 Windows 程式列印

本節說明如何從原生 Windows 程式列印。

概述

列印通常是原生 Windows 程式不可或缺的一部分。 因此,這不是在撰寫程序之後,您可以輕鬆地新增的功能。 也就是說,如果程式設計為使用 XPS 檔,則不需要太多額外的程式代碼來轉譯檔內容以進行列印。 應用程式的 XPS 檔可以直接傳送至具有 XPSDrv 印表機驅動程式的印表機。

使用 XPS 檔 API 來建立文件內容和 XPS 列印 API,將文件內容傳送至印表機。 XPS 印表 API 會處理目的地印表機的檔案內容。 如果選取的印表機有 XPSDrv 印表機驅動程式,則檔將會傳送至印表機,而不會進行任何額外的轉換。 如果選取的印表機具有以 GDI 為基礎的印表機驅動程式,程式也可以將內容傳送至印表機,而 XPS 印表 API 會轉換檔內容,使其與 GDI 型印表機驅動程式相容。 不論是哪一種情況,應用程式執行的處理都相同。

列印工作

下列主題描述列印程序內容的基本步驟。

  1. 從使用者收集列印作業資訊。

    一般而言,當使用者從功能表選取列印選項時,使用者就會起始列印作業,而程式會顯示列印對話框來收集列印作業的詳細數據。 使用者通常會選取印表機、複本數目,以及印表機設定詳細數據,例如雙面列印和裝訂。

    如需如何執行這項作的詳細資訊,請參閱 如何:從使用者收集列印作業資訊

  2. 建立進度指示器。

    進度指示器會為使用者提供列印作業進度的相關意見反應。 進度指標可以是進度條,屬於對話框的一部分,並且包含執行工作的 取消 按鈕,或者可以是主視窗底部狀態列中的進度條。

    如需進度指標的運作方式,請參閱 如何:顯示列印作業進度

    如需如何顯示列印作業進度的詳細資訊,請參閱 Windows 應用程式 UI 開發 指導方針中的資訊。

  3. 啟動列印線程。

    程式從使用者收集列印作業信息之後,就可以啟動列印線程來執行檔的實際處理以進行列印。

    如需列印線程的相關信息,請參閱 如何:啟動和停止列印線程

  4. 渲染列印作業數據。

    列印線程會轉譯文件數據以進行列印。 您應該將此處理分解成離散處理步驟,讓使用者可以中斷處理並取消作業,以及不允許處理線程封鎖其他線程和進程。

    如需如何轉譯列印作業資料的資訊,請參閱 如何:轉譯列印作業資料

  5. 監視列印作業進度。

    執行每個處理步驟時,請更新進度條以通知使用者。 計算處理步驟以完成要求的作業,然後在執行這些步驟時更新進度列。

  6. 關閉列印作業並終止列印線程。

    程式將列印作業傳送至印表機之後,或如果使用者取消列印作業,您必須關閉列印作業並釋放列印作業所使用的資源。

如何:從使用者收集列印作業資訊