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


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. Приложение отвечает за создание Объекта PrintTask , запрашиваемого с помощью события PrintTaskRequested в объекте PrintManager . Чтобы создать PrintTask , необходимо указать имя задачи и делегат PrintTaskSourceRequestedHandler , который вызывается, когда пользователь будет готов начать печать.

Если пользователь решит не печатать задачу, она может быть завершена без запроса источника документа.

PrintTask содержит ссылку в виде свойства Source на источник документа печати, предоставленный приложением. Этот объект должен поддерживать интерфейс IPrintDocumentSource .

Кроме того , PrintTask содержит свойство Options , содержащее ссылку на объект PrintTaskOptions . Объект PrintTaskOptions предоставляет доступ к сведениям о нужном формате печатного содержимого. PrintTaskOptions также предоставляет методы, которые позволяют изменять аспекты пользовательского интерфейса печати. Например, PrintTaskOptions позволяет приложению определить, какие из поддерживаемых параметров отображаются на начальной странице интерфейса печати.

Задача печати проходит через определенный набор состояний после ее создания, и эти изменения состояния могут использоваться приложением для предоставления отзывов пользователю. Большинство переходов состояния представлены в событиях, создаваемых PrintTask. Задача печати создается в ответ на событие PrintTaskRequested в PrintManager с помощью метода CreatePrintTask объекта PrintTaskRequest . На этом этапе задача печати не может быть напечатана, так как содержимое для печати еще не предоставлено. Обычно событие PrintTaskRequested возникает, когда пользователь щелкает чудо-кнопку Устройства или приложение инициирует печать с помощью метода ShowPrintUIAsync в PrintManager.

После того как система определит, что задача будет напечатана, вызывается делегат PrintTaskSourceRequestedHandler для фактического получения ссылки на объект Document Source. На этом этапе PrintTask полностью инициализирована. Если пользователь решает не завершать печать, представленную объектом PrintTask , событие завершения вызывается с типом завершения "прервано".

После инициализации пользовательский интерфейс печати отвечает за помощь пользователю в выборе различных атрибутов, таких как размер бумаги или дуплекс, для печатного содержимого. Когда инициализация окна печати почти завершена, PrintTask вызывает событие Предварительного просмотра . В этом случае пользователь теперь может управлять содержимым объекта PrintTaskOptions через окно печати. Пользователь может изменить значения параметров в любое время на этапе предварительного просмотра, и это необходимо учитывать при следующем разбиении содержимого на страницы приложением. Объект PrintTaskOptions предоставляет основные функции для получения значений параметров печати. Дополнительные сведения об управлении параметрами печати см. в разделе PrintTaskOptionDetails. Пользователь снова может отменить эту операцию, что приведет к возникновению события завершения с типом завершения canceled.

Например, если пользователь действительно инициирует печать, нажав кнопку Печать в окне печати, задача печати переходит из состояния предварительного просмотра в состояние Отправки и возникает событие Отправка . Затем источнику документа передается команда MakeDocument, и начинается процесс отправки страниц в подсистему печати. Во время отправки страниц возникает событие Progressing . Приложение может использовать информацию в ходе выполнения события, чтобы сообщить пользователю, сколько содержимого осталось распечатать. После завершения процесса отправки документа в подсистему печати PrintTask вызывает событие Завершения . Это событие указывает, было ли задание успешно отправлено, отменено или завершилось сбоем во время процесса отправки.

Ниже приведен фрагмент кода из примера печати 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 трехмерные производственные устройства, например трехмерный принтер.

IsPreviewEnabled

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

IsPrinterTargetEnabled

Возвращает или задает значение, указывающее, поддерживает ли PrintTask целевые объекты принтера.

Options

Извлекает printTaskOptions для задачи печати, которая определяет способ форматирования содержимого для печати.

Properties

Извлекает набор свойств, связанных с PrintTask.

Source

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

События

Completed

Возникает после завершения задачи печати.

Previewing

Возникает, когда система печати инициализирует режим предварительного просмотра.

Progressing

Вызывается для предоставления сведений о ходе выполнения о том, сколько печатного содержимого было отправлено в подсистему печати для печати.

Submitting

Возникает, когда задача печати начинает отправлять содержимое в подсистему печати для печати.

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

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