PrintTask クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
印刷するコンテンツを含む印刷操作を表し、コンテンツの印刷方法を説明する情報へのアクセスを提供します。
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
- 継承
- 属性
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 には、アプリによって提供されるドキュメント ソースの印刷に対する Source プロパティの形式の参照が含まれています。 このオブジェクトは 、IPrintDocumentSource インターフェイスをサポートする必要があります。
さらに 、PrintTask には、PrintTaskOptions オブジェクトへの参照を保持する Options プロパティ が 含まれています。 PrintTaskOptions オブジェクトは、印刷されたコンテンツの目的の形式に関する詳細へのアクセスを提供します。 PrintTaskOptions には、印刷ユーザー エクスペリエンスの側面を変更できるメソッドも用意されています。 たとえば、 PrintTaskOptions を使用すると、印刷エクスペリエンスの初期ページに表示されるサポートされているオプションをアプリで定義できます。
印刷タスクは、作成後に特定の状態のセットを通過します。これらの状態の変更は、アプリがユーザーにフィードバックを提供するために使用できます。 ほとんどの状態遷移は、 PrintTask によって発生するイベントで表されます。 PrintTaskRequest オブジェクトの CreatePrintTask メソッドを使用して、PrintManager のPrintTaskRequested イベントに応答して印刷タスクが作成されます。 この時点では、印刷するコンテンツがまだ指定されていないため、印刷タスクを印刷できません。 通常、PrintTaskRequested イベントは、ユーザーが [デバイス] チャームをクリックするか、アプリケーションが PrintManager の ShowPrintUIAsync メソッドを使用して印刷を開始したときに発生します。
タスクが印刷されるとシステムが判断すると、 PrintTaskSourceRequestedHandler デリゲートが呼び出され、ドキュメント ソース オブジェクトへの参照が実際に取得されます。 この時点で 、PrintTask は完全に初期化されます。 ユーザーが PrintTask オブジェクトで表される印刷を完了しないと判断した場合、完了イベントが発生し、完了の種類が 破棄されます。
初期化時に、印刷ユーザー エクスペリエンスは、印刷されたコンテンツの用紙サイズや両面印刷などのさまざまな属性をユーザーが選択するのを支援する役割を担います。 印刷ウィンドウの初期化がほぼ完了すると、 PrintTask によって Previewing イベントが発生します。 これは、ユーザーが印刷ウィンドウを介して PrintTaskOptions オブジェクトの内容を操作できるようになった場合です。 ユーザーはプレビュー ステージ中にいつでも設定の値を変更できます。これは、次回アプリがコンテンツを改ページするときに考慮する必要があります。 PrintTaskOptions オブジェクトは、印刷設定の値を取得するための基本的な機能を提供します。 印刷オプションの詳細な制御については、「 PrintTaskOptionDetails」を参照してください。 ここでも、ユーザーはこの操作を取り消すことができます。これにより、完了イベントが発生し、完了の種類が 取り消されます。
たとえば、ユーザーが印刷ウィンドウで [印刷] を押して実際に印刷を開始することを選択すると、印刷タスクは [プレビュー 中] から [ 送信 中] 状態に移行し、[ 送信 中] イベントが発生します。 その後、印刷ドキュメント ソースに MakeDocument コマンドが渡され、印刷サブシステムにページを送信するプロセスが開始されます。 ページの送信中に Progressing イベントが発生します。 アプリでは、進行状況イベントの情報を使用して、印刷するコンテンツの量をユーザーに知らせることもできます。 印刷サブシステムにドキュメントを送信するプロセスが完了すると、 PrintTask は Completion イベントを発生させます。 このイベントは、ジョブが送信プロセス中に正常に送信されたか、取り消されたか、失敗したかを示します。
既定の印刷設定を表示する順序を示す方法を示す 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 |
印刷タスクが印刷サブシステムへのコンテンツの送信を開始したときに発生します。 |