共用方式為


如何:從 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. 關閉列印工作並終止列印執行緒。

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

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