Поделиться через


PrintTaskRequest Класс

Определение

Содержит запрос из системы на создание задачи печати. Этот объект доступен из объекта PrintTaskRequestedEventArgs , переданного событию PrintTaskRequested .

public ref class PrintTaskRequest sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class PrintTaskRequest final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class PrintTaskRequest
Public NotInheritable Class PrintTaskRequest
Наследование
Object Platform::Object IInspectable PrintTaskRequest
Атрибуты

Требования к 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)

Комментарии

Класс PrintTaskRequest используется приложением для создания нового объекта PrintTask . Объект PrintTask создается в ответ на событие PrintTaskRequested и указывает системе, что приложение содержит содержимое для печати. При создании объекта PrintTask с помощью метода CreatePrintTask приложение должно предоставить имя для PrintTask и обработчик событий PrintTaskSourceRequestedHandler , который вызывается при необходимости печати содержимого.

Приложение должно выполнять минимальный объем работы, возможный в обработчике событий PrintTaskRequested , так как для ответа предоставляется только небольшое время. Везде, где это возможно, приложение должно просто создать PrintTask и отложить инициализацию содержимого до вызова обработчика событий PrintTaskSourceRequestedHandler .

Если приложению необходимо выполнить асинхронную операцию во время обработчика PrintTaskRequested , оно должно получить и использовать объект PrintTaskRequestedDeferral . Перед выходом обработчика событий и, как правило, перед запуском асинхронной операции приложение должно получить объект PrintTaskRequestedDeferral , вызвав метод GetDeferral объекта PrintTaskRequest. После завершения асинхронной операции приложение должно вызвать метод Complete объекта PrintTaskRequestedDeferral , чтобы сообщить о завершении запроса задачи печати. Вызов метода Complete должен произойти до достижения крайнего срока , чтобы запрос был принят.

Для создания задачи печати можно использовать метод CreatePrintTaskTaskв PrintTaskRequest . Ниже приведен фрагмент кода из примера печати UWP , в который показано создание задачи печати:

protected virtual void PrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs e)
{
    PrintTask printTask = null;
    printTask = e.Request.CreatePrintTask("C# Printing SDK Sample", sourceRequested =>
    {
        // 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);
                });
            }
        };

        sourceRequested.SetSource(printDocumentSource);
    });
}

Дополнительные сведения об этом и других сценариях печати см. в разделе Печать и пример печати UWP.

Свойства

Deadline

Возвращает значение DateTime , указывающее, как долго приложение отвечает на событие PrintTaskRequested . Если система не получила ответ от обработчика событий PrintTaskRequested к моменту достижения крайнего срока, задача печати игнорируется.

Методы

CreatePrintTask(String, PrintTaskSourceRequestedHandler)

Создает новый объект PrintTask , указывающий, что в приложении есть содержимое для печати.

GetDeferral()

Извлекает объект deferral, связанный с PrintTaskRequest. Объект deferral используется для обработки асинхронных вызовов в обработчике событий PrintTaskRequested .

Применяется к

См. также раздел