다음을 통해 공유


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 에는 앱에서 제공하는 인쇄 문서 원본에 대한 참조(Source 속성 형식)가 포함되어 있습니다. 이 개체는 IPrintDocumentSource 인터페이스를 지원해야 합니다.

또한 PrintTask에는 PrintTaskOptions 개체에 대한 참조를 보유하는 Options 속성이 포함되어 있습니다. PrintTaskOptions 개체는 인쇄된 콘텐츠의 원하는 형식에 대한 세부 정보에 액세스할 수 있도록 합니다. PrintTaskOptions는 인쇄 사용자 환경의 측면을 수정할 수 있는 메서드도 제공합니다. 예를 들어 PrintTaskOptions 를 사용하면 앱에서 인쇄 환경의 초기 페이지에 표시되는 지원되는 옵션을 정의할 수 있습니다.

인쇄 작업은 생성 후 특정 상태 집합을 거치며, 앱에서 이러한 상태 변경 내용을 사용하여 사용자에게 피드백을 제공할 수 있습니다. 대부분의 상태 전환은 PrintTask에서 발생하는 이벤트에 표시됩니다. PrintTaskRequest 개체의 CreatePrintTask 메서드를 사용하여 PrintManagerPrintTaskRequested 이벤트에 대한 응답으로 인쇄 작업이 만들어집니다. 인쇄할 콘텐츠가 아직 제공되지 않았으므로 이 시점에서 인쇄 작업을 인쇄할 수 없습니다. 일반적으로 PrintTaskRequested 이벤트는 사용자가 디바이스 참을 클릭하거나 애플리케이션이 PrintManagerShowPrintUIAsync 메서드를 통해 인쇄를 시작할 때 발생합니다.

시스템에서 작업이 인쇄될 것이라고 결정하면 PrintTaskSourceRequestedHandler 대리자를 호출하여 문서 원본 개체에 대한 참조를 실제로 검색합니다. 이 시점에서 PrintTask 가 완전히 초기화됩니다. 사용자가 PrintTask 개체가 나타내는 인쇄를 완료하지 않기로 결정하면 완료 이벤트가 중단 완료 형식으로 발생합니다.

초기화 시 인쇄 사용자 환경은 사용자가 인쇄된 콘텐츠에 대해 용지 크기 또는 이중과 같은 다양한 특성을 선택할 수 있도록 도와줍니다. 인쇄 창 초기화가 거의 완료되면 PrintTask미리 보기 이벤트를 발생합니다. 이제 사용자가 인쇄 창을 통해 PrintTaskOptions 개체의 내용을 조작할 수 있습니다. 사용자는 미리 보기 단계 중에 언제든지 설정 값을 변경할 수 있으며, 다음에 앱이 콘텐츠를 페이지를 매길 때 이를 고려해야 합니다. PrintTaskOptions 개체는 인쇄 설정의 값을 검색하기 위한 기본 기능을 제공합니다. 인쇄 옵션에 대한 고급 제어는 PrintTaskOptionDetails를 참조하세요. 사용자가 이 작업을 다시 취소하면 완료 유형이 취소되어 완료 이벤트가 발생합니다.

예를 들어 인쇄 창에서 인쇄를 눌러 인쇄를 실제로 시작하도록 선택하면 인쇄 작업이 미리 보기 에서 제출 상태로 전환되고 Submitting 이벤트가 발생합니다. 그런 다음 인쇄 문서 원본이 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

인쇄 작업이 인쇄할 인쇄 하위 시스템에 콘텐츠를 제출하기 시작할 때 발생합니다.

적용 대상

추가 정보