共用方式為


PrintTask 類別

定義

代表列印工作,包括要列印的內容,以及提供描述內容列印方式的資訊存取權。

public ref class PrintTask sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class PrintTask final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class PrintTask
Public NotInheritable Class PrintTask
繼承
Object Platform::Object IInspectable PrintTask
屬性

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)

備註

PrintTask物件代表 UWP 應用程式的列印工作。 應用程式負責建立透過PrintManager物件上的PrintTaskRequested 事件要求的 PrintTask 若要建立 PrintTask ,您必須提供工作的名稱和 PrintTaskSourceRequestedHandler 委派,當使用者準備好開始列印時呼叫。

如果使用者決定不要列印工作,工作可能已完成,而不需要要求文檔來源。

PrintTask 包含 App 所提供之 Print Document Source 的參考 ,格式為 Source 屬性。 這個物件必須支援 IPrintDocumentSource 介面。

此外 ,PrintTask 還包含 Options 屬性,該屬性會保存 PrintTaskOptions 物件的參考。 PrintTaskOptions物件可讓您存取列印內容所需格式的詳細資料。 PrintTaskOptions 也提供方法,允許修改列印使用者體驗的各個層面。 例如, PrintTaskOptions 可讓應用程式定義在列印體驗的初始頁面上顯示哪些支援的選項。

列印工作會在建立後經過一組特定的狀態,而且應用程式可以使用狀態中的這些變更來提供意見反應給使用者。 大部分的狀態轉換都會以 PrintTask引發的事件來表示。 列印工作是使用PrintTaskRequest物件上的CreatePrintTask方法,在PrintManager上建立PrintTaskRequested事件。 此時無法列印列印工作,因為尚未提供要列印的內容。 當使用者按一下 Devices 常用鍵或應用程式時,通常會引發PrintTaskRequested事件,或是透過PrintManager上的ShowPrintUIAsync方法起始列印。

一旦系統判斷要列印工作, 就會呼叫 PrintTaskSourceRequestedHandler 委派,以實際擷取 Document Source 物件的參考。 此時 ,PrintTask 已完全初始化。 如果使用者決定不完成 PrintTask 物件所代表的列印,則會以 放棄的完成類型引發完成事件。

初始化時,列印使用者體驗會負責協助使用者選取列印內容的不同屬性,例如紙張大小或雙工。 列印視窗初始化幾乎完成時, PrintTask 會引發 Previewing 事件。 這是當使用者現在能夠透過列印視窗操作 PrintTaskOptions 物件的內容時。 使用者可能會在預覽階段期間隨時變更設定的值,而且下次應用程式分頁內容時,必須將其納入考慮。 PrintTaskOptions物件提供擷取列印設定值的基本功能。 如需列印選項的進階控制,請參閱 PrintTaskOptionDetails。 同樣地,使用者可能會取消此作業,這會導致因為取消的完成類型而引發完成事件。

當使用者選擇在列印視窗中按 [列印] 來實際起始列印時,例如,列印工作會從 [預覽 ] 轉換為 [ 提交 ] 狀態,並引發 [提交 ] 事件。 然後,列印文檔來源會傳遞 MakeDocument 命令,並開始將頁面提交至列印子系統的程式。 提交頁面時,會引發 Progressing 事件。 應用程式可以選擇使用進行中事件中的資訊,讓使用者知道要列印的內容量。 一旦將檔提交至列印子系統的程式完成, PrintTask 就會引發 Completed 事件。 此事件指出在提交程式期間,工作是否已成功提交、取消或失敗。

以下是 UWP 列印範例 的程式碼片段,示範如何指出應該顯示預設列印設定的順序:

protected override void PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e)
{
    PrintTask printTask = null;
    printTask = e.Request.CreatePrintTask("C# Printing SDK Sample", sourceRequestedArgs =>
    {
        IList<string> displayedOptions = printTask.Options.DisplayedOptions;

        // Choose the printer options to be shown.
        // The order in which the options are appended determines the order in which they appear in the UI
        displayedOptions.Clear();
        displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Copies);
        displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Orientation);
        displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.MediaSize);
        displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Collation);
        displayedOptions.Add(Windows.Graphics.Printing.StandardPrintTaskOptions.Duplex);

        // Preset the default value of the printer option
        printTask.Options.MediaSize = PrintMediaSize.NorthAmericaLegal;

        // Print Task event handler is invoked when the print job is completed.
        printTask.Completed += async (s, args) =>
        {
            // Notify the user when the print operation fails.
            if (args.Completion == PrintTaskCompletion.Failed)
            {
                await scenarioPage.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
                {
                    MainPage.Current.NotifyUser("Failed to print.", NotifyType.ErrorMessage);
                });
            }
        };

        sourceRequestedArgs.SetSource(printDocumentSource);
    });
}

若要查看此專案的完整清單,以及使用 PrintTask的其他列印案例,請參閱 列印UWP 列印範例

版本歷程記錄

Windows 版本 SDK 版本 已新增值
1607 14393 IsPreviewEnabled

屬性

Is3DManufacturingTargetEnabled

取得或設定值,指出 PrintTask 是否支援 3D 製造裝置,例如 3D 印表機。

IsPreviewEnabled

取得或設定值,指出 PrintTask 是否會顯示預覽列印。

IsPrinterTargetEnabled

取得或設定值,指出 PrintTask 是否支援印表機目標。

Options

擷取列印工作的 PrintTaskOptions ,此工作會定義內容的列印格式。

Properties

擷取一組與 PrintTask相關聯的屬性。

Source

傳回應用程式提供之物件的指標,代表要列印的內容。 這個物件必須支援 IPrintDocumentSource 介面。

事件

Completed

列印工作完成時引發。

Previewing

當列印系統初始化預覽列印模式時引發。

Progressing

引發 ,以提供列印內容提交至列印子系統的進度資訊。

Submitting

當列印工作開始將內容提交至要列印的列印子系統時引發。

適用於

另請參閱