Краткое руководство: печать из приложения (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

В этом кратком руководстве показан простейший способ добавления функций печати в приложение Магазина Windows.

Посмотрите это короткое видео, чтобы получить общее представление о процессе.

Для печати из приложения Магазина Windows проще всего использовать средства печати Windows. Для этого вашему приложению необходимо:

  • Зарегистрировать контракт "Печать" для каждого режима представления приложения, из которого требуется обеспечить пользователям возможность печати.

    Для регистрации контракта "Печать" нужно получить объект PrintManager, создать объект PrintTask и обработать события печати.

  • Предоставить отформатированное содержимое для печати.

    Стандартный способ печати Windows, показанный в данном руководстве, — это печать экрана вашего приложения.

    Примечание  Настраиваемые возможности печати, например печать определенных страниц или пользовательские настройки печати, могут быть добавлены в приложения Магазина Windows на языках C++, C# или Visual Basic и XAML. Дополнительные сведения о добавлении настраиваемых возможностей печати в ваше приложение см. в разделе Печать (приложения Магазина Windows на C#/VB/C++ и XAML).

     

Необходимые условия

  • Вам необходимо знать HTML, JavaScript и уметь обращаться с событиями Windows и обработкой событий.
  • На компьютере должна быть установлена программа Microsoft Visual Studio.
  • В системе должен быть установлен принтер.
  • У вас должно быть приложение, в которое вы хотите добавить возможности печати. Если у вас нет своего приложения, вы можете скачать и использовать пример приложения "Образец печати".Примечание  Примеры кода, показанные в этом кратком руководстве, находятся в разделе Пример приложения "Образец печати".  

Инструкции

1. Открытие исходного кода приложения для редактирования

Здесь описано, как открыть приложение PrintSampleJS из примера приложения "Пример печати". Если вы используете собственное приложение, откройте его в Visual Studio и перейдите к следующему этапу.

  1. Откройте пример приложения "Образец печати" и скачайте пример JavaScript на свой компьютер.
  2. В Visual Studio нажмите кнопку File > Open Project и перейдите к папке, содержащей файл решения для примера приложения, скачанного на предыдущем этапе.
  3. Выберите файл решения PrintSampleJS и нажмите кнопку Открыть.

2. Создание и тестирование приложения

  1. Чтобы выполнить сборку приложения, над которым вы работаете, щелкните Сборка > Собрать решение. Убедитесь, что на панели Вывод в нижней части экрана нет сообщений об ошибках.
  2. Выберите пункты меню Отладка > Запуск без отладки.
  3. Убедитесь, что через несколько секунд на экране отображается приложение Print JS Sample,
  4. Если приложение выполняется без ошибок, вернитесь в Visual Studio и выберите Отладка > Остановить отладку.

3. Регистрация для печати Windows

В этот момент ваше приложение должно отображать на экране какое-нибудь содержимое.

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

Примечание  Для печати можно зарегистрировать только экран, отображаемый для пользователя. Если один экран приложения зарегистрирован для печати, при уходе с этого экрана необходимо отменить его регистрацию для печати. Если экран заменяется другим экраном, при открытии следующего экрана для него необходимо зарегистрировать новый контракт "Печать".

 

Для регистрации контракта "Печать" нужно получить объект PrintManager и определить обработчик события PrintTaskRequested.

  1. В вашем приложении для каждого экрана, из которого требуется выполнять печать, добавьте следующий код так, чтобы он выполнялся при открытии экрана. В образце приложения PrintSampleJS это делается в члене ready параметра members для функции WinJS.UI.Pages.define, которая вызывается для создания экрана.

    var printManager = Windows.Graphics.Printing.PrintManager.getForCurrentView();
    printManager.onprinttaskrequested = onPrintTaskRequested;
    

    Примечание  Вы можете включить этот код в отдельную функцию, как это делается в образце приложения PrintSampleJS.

     

  2. Добавьте обработчик события задачи печати для такого экрана. Для каждого экрана вашего приложения может потребоваться отдельная функция, если, например, содержимое каждого из них необходимо по-разному форматировать для печати.

    Приложение PrintSampleJS включает обработчик завершения, который показан здесь. Рекомендуется обрабатывать события завершения, поскольку ваше приложение может позволить пользователю узнавать о возникновении ошибок и предоставлять возможные решения. Аналогично ваше приложение может использовать событие завершения, чтобы указать пользователю дальнейшие шаги, которые он может предпринять после успешного завершения печати.

    function onPrintTaskRequested(printEvent) {
        var printTask = printEvent.request.createPrintTask("Print Sample", function (args) {
            args.setSource(MSApp.getHtmlPrintDocumentSource(document));
    
            // Register the handler for print task completion event
            printTask.oncompleted = onPrintTaskCompleted;
        });
    }
    
    function onPrintTaskCompleted(printTaskCompletionEvent) {
        // Notify the user about the failure
        if (printTaskCompletionEvent.completion === Windows.Graphics.Printing.PrintTaskCompletion.failed) {
            WinJS.log && WinJS.log("Failed to print.", "sample", "error");
        }
    }
    
  3. Создайте и протестируйте ваше приложение, как описано ранее.

4. Печать из приложения

После изменения и сборки вашего приложения протестируйте новые функциональные возможности в отладчике.

  1. Щелкните Отладка > Начать отладку.
  2. Убедитесь, что через несколько секунд на экране отображается приложение Print JS Sample,
  3. Чудо-кнопки отображаются скольжением от правой стороны экрана.
  4. Нажмите чудо-кнопку "Устройства".
  5. Выберите принтер. Откроется окно "Печать".
  6. Нажмите кнопку Печать в окне печати, чтобы напечатать содержимое текущего экрана.
  7. Проверьте результаты печати.

Краткая сводка и дальнейшие действия

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

Теперь вы можете приступить к изучению более сложных функций печати. Раздел Печать с помощью встроенной в приложение кнопки печати позволит добавить кнопку печати, нажав которую пользователь сможет выполнить печать из вашего приложения Магазина Windows.

Примечание  

Функцию JavaScript window.print() можно использовать для печати содержимого вашего приложения, однако функция window.print() предназначена для печати отображаемого на экране содержимого с помощью процедуры печати, принятой по умолчанию. Так как экран приложения Магазина Windows не всегда создает хороший вывод на печать, вызов window.print() может быть не лучшим вариантом. Для лучшего взаимодействия с пользователем рекомендуется использовать функции среды выполнения Windows и регистрировать контракт "Печать", как показано в этих разделах.

 

Дополнительные сценарии печати, доступные для приложений Магазина Windows, см. в примере приложения "Образец печати".

Связанные разделы

Пример приложения "Пример печати"

Рекомендации по разработке приложений Магазина Windows с поддержкой печати

Разработка приложений Магазина Windows для устройства для принтеров