共用方式為


快速入門:從應用程式列印 (HTML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

這個快速入門說明將列印功能新增到 Windows 市集應用程式最簡單的方式。

觀賞這部短片,即可了解這個程序的概觀。

從 Windows 市集應用程式列印的最簡單方式,就是使用 Windows 列印。若要這樣做,應用程式必須:

  • 在您要讓使用者能夠進行列印的每個應用程式顯示中,登錄列印協定

    登錄列印協定表示取得 PrintManager 物件、建立 PrintTask 物件,以及處理列印事件。

  • 提供要列印的格式化內容

    這個快速入門中說明的預設列印體驗,是讓 Windows 列印您的應用程式畫面顯示。

    注意  自訂列印功能 (例如列印特定頁面或自訂列印設定) 僅能被新增到使用 C++、C# 或 Visual Basic 和 XAML 的 Windows 市集應用程式中。如需將自訂列印功能新增至應用程式的詳細資訊,請參閱列印 (XAML)

     

先決條件

  • 您必須熟悉 HTML、JavaScript、Windows 事件和事件處理。
  • Microsoft Visual Studio 必須已經安裝完成。
  • 印表機必須已經安裝完成。
  • 您必須有要在其中新增列印的應用程式。如果您沒有自己的應用程式,可以下載列印範例範例應用程式並使用該應用程式。注意  這個快速入門中顯示的範例位於列印範例範例應用程式。  

指示

1. 開啟應用程式的原始程式碼進行編輯

這個程序描述如何開啟列印範例範例應用程式中的 PrintSampleJS 應用程式。如果您使用自己的應用程式,請在 Visual Studio 中開啟自己的應用程式,並跳至下一個步驟。

  1. 開啟列印範例範例應用程式,並將 JavaScript 範例下載到電腦上。
  2. 在 Visual Studio 中,按一下 [File] > [Open Project],瀏覽到包含範例應用程式 (上個步驟下載的應用程式) 方案檔的資料夾。
  3. 選取 PrintSampleJS 方案檔,然後按一下 [開啟]。

2. 建置和測試應用程式

  1. 按一下 [建置]**** > [建置方案],建置您要使用的應用程式。確定畫面底端的 [輸出]**** 窗格未出現任何錯誤訊息。
  2. 按一下 [偵錯] > [啟動但不偵錯]****。
  3. 請確認畫面會在數秒後顯示 [列印 JS 範例] 應用程式。
  4. 如果應用程式執行無誤,請返回 Visual Studio,然後按一下 [偵錯]**** > [停止偵錯]。

3. 登錄 Windows 列印

這時您的應用程式應該會顯示包含一些內容的畫面。

新增列印至應用程式的第一個步驟是登錄列印協定。您的應用程式必須在要讓客戶能夠進行列印的每個畫面上登錄列印協定。

注意  只有對使用者顯示的畫面可以登錄列印。如果應用程式的某個畫面已登錄列印,則必須在結束該畫面時解除登錄列印。如果該畫面被另一個畫面取代,則下一個畫面開啟時,必須登錄新的列印協定。

 

登錄列印協定表示取得 PrintManager 物件及定義 PrintTaskRequested 物件的處理常式。

  1. 對於應用程式中要從中進行列印的每個畫面,新增下列程式碼,讓該程式碼在畫面開啟時執行。在 PrintSampleJS 範例應用程式中,這個動作是在呼叫用來建立畫面的 WinJS.UI.Pages.define 函式之 members 參數的 ready 成員中完成。

    var printManager = Windows.Graphics.Printing.PrintManager.getForCurrentView();
    printManager.onprinttaskrequested = onPrintTaskRequested;
    

    注意  您可以在另一個函式中加入這個程式碼,如同 PrintSampleJS 範例應用程式所執行的程式碼。

     

  2. 新增該畫面的列印工作事件處理常式。假設應用程式中每個畫面的內容需要以不同的格式進行列印,則可能會需要不同的函式。

    這個 PrintSampleJS 應用程式包含完成處理常式,如這裡所示。處理完成事件是較好的做法,因為這樣一來,應用程式就可以讓使用者知道發生錯誤,並提供可能的解決方法。同樣地,應用程式可以使用完成事件指出列印工作成功之後,使用者採取的後續步驟。

    function onPrintTaskRequested(printEvent) {
        var printTask = printEvent.request.createPrintTask("Print Sample", function (args) {
            args.setSource(MSApp.getHtmlPrintDocumentSource(document));
    
            // Register the handler for print task completion event
            printTask.oncompleted = onPrintTaskCompleted;
        });
    }
    
    function onPrintTaskCompleted(printTaskCompletionEvent) {
        // Notify the user about the failure
        if (printTaskCompletionEvent.completion === Windows.Graphics.Printing.PrintTaskCompletion.failed) {
            WinJS.log && WinJS.log("Failed to print.", "sample", "error");
        }
    }
    
  3. 依照先前所述建置並測試應用程式。

4. 從應用程式列印

修改及建置應用程式之後,請在偵錯工具中測試新功能。

  1. 按一下 [偵錯] > [開始偵錯]****。
  2. 請確認畫面會在數秒後顯示 [列印 JS 範例] 應用程式。
  3. 從螢幕右側撥動以顯示常用鍵。
  4. 選取裝置常用鍵。
  5. 選取印表機。[列印] 視窗應該會出現。
  6. 按一下 [列印] 視窗上的 [列印]**** 按鈕,列印目前畫面的內容。
  7. 檢閱列印的結果。

摘要與後續步驟

在這個快速入門中,您已在應用程式中新增 Windows 列印,且未修改使用者與應用程式的互動方式,或應用程式格式化列印內容的方式。

您可以從這裡探索更多進階的列印功能。在如何使用應用程式內的列印按鈕來列印中,您將新增一個列印按鈕,使用者可以按一下這個按鈕從 Windows 市集應用程式中列印。

注意  

您可以使用 JavaScript 函式 window.print() 來列印應用程式的內容,但 window.print() 的目的是利用預設列印經驗列印畫面上顯示的內容。Windows 市集應用程式畫面不一定會產生最佳的列印輸出,因此呼叫 window.print() 可能不是最好的方法。為獲得最佳客戶體驗,建議您使用 Windows 執行階段的函式,並且如這些主題所示範,登錄列印協定。

 

若要查看更多 Windows 市集應用程式提供的列印情況,請參閱列印範例範例應用程式

相關主題

列印範例範例應用程式

開發具備列印功能的 Windows 市集應用程式的最佳做法

開發印表機適用的 Windows 市集裝置應用程式