Дополнительные приемы печати

Adobe AIR 2 и более поздних версий

Начиная с версии Adobe AIR 2, в классе PrintJob предусмотрены дополнительные свойства и методы и представлена поддержка трех дополнительных классов: PrintUIOptions, PaperSize и PrintMethod. Эти изменения расширяют возможности печати и позволяют авторам лучше управлять процессом печати. Список изменений:

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

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

  • Ограничение печати: авторы могут запретить использование некоторых параметров печати, например выбор диапазона распечатываемых страниц.

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

  • Несколько сеансов печати: теперь для нескольких сеансов печати может использоваться единственный экземпляр PrintJob. Каждый раз при отображении диалоговых окон печати и параметров страницы приложение предоставляет для них соответствующие настройки.

Изменения в процессе печати

Новый процесс печати состоит из следующих этапов.

  • new PrintJob() : создает экземпляр PrintJob (или использует уже существующий экземпляр). До начала и в процессе печати можно выбрать новые свойства и методы класса PrintJob, например selectPaperSize() .

  • PrintJob.showPageSetupDialog() : (необязательный) отображение диалогового окна параметров страницы до начала печати.

  • PrintJob.start() или PrintJob.start2() : в добавление к методу start() , метод start2() используется для запуска процесса буферизации заданий печати. Метод start2() позволяет выбрать отображение диалогового окна «Печать» и настройку этого окна, если оно показано.

  • PrintJob.addPage() : добавление содержимого в задание печати. Осталось без изменений.

  • PrintJob.send() или PrintJob.terminate() : отправка страниц на выбранный принтер или прерывание задания печати без отправки данных. Задания печати прерываются при обнаружении ошибки. Если выполнение экземпляра PrintJob прервано, его по-прежнему можно использовать. Вне зависимости от того, было ли задание печати отправлено на принтер или прервано, текущие параметры печати сохраняются при повторном использовании экземпляра PrintJob.

Диалоговое окно «Параметры страницы»

Метод showPageSetupDialog() отображает диалоговое окно «Параметры страницы» операционной системы, если текущая среда выполнения его поддерживает. Всегда выполняйте проверку свойства supportsPageSetupDialog перед использованием данного метода. Ниже приведен простой пример.

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
//check for static property supportsPageSetupDialog of PrintJob class 
if (PrintJob.supportsPageSetupDialog) { 
    myPrintJob.showPageSetupDialog(); 
}

Этот метод может также быть вызван свойством класса PrintUIOptions для настройки отображаемых параметров в диалоговом окне «Параметры страницы». Можно задать диапазон страниц, доступных для печати. В следующем примере печать ограничена первыми тремя страницами.

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
if (PrintJob.supportsPageSetupDialog) { 
    var uiOpt:PrintUIOptions = new PrintUIOptions(); 
    uiOpt.minPage = 1; 
    uiOpt.maxPage = 3; 
    myPrintJob.showPageSetupDialog(uiOpt); 
}

Изменение параметров печати

Параметры экземпляра PrintJob можно изменять в любое время после его создания. Данная особенность включает изменение параметров между вызовами addPage() и после отправки или прерывания задания печати. Некоторые параметры, например свойство printer , применяются ко всему заданию печати, а не к отдельным страницам. Эти параметры должны быть заданы перед вызовом метода start() или start2() .

Метод selectPaperSize() можно использовать для выбора формата бумаги по умолчанию в диалоговых окнах «Печать» и «Параметры страницы». Его также можно вызвать для изменения формата бумаги для определенного диапазона страниц во время выполнения задания печати. Метод вызывается с использованием констант, определенных в классе PaperSize . В следующем примере этот метод используется для выбора десятого размера конверта.

import flash.printing.PrintJob; 
import flash.printing.PaperSize; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.selectPaperSize(PaperSize.ENV_10);

Свойство printer можно использовать для получения или установки имени текущего задания печати. По умолчанию задано имя стандартного принтера. Свойство printer имеет значение null , если принтеры недоступны или операционная система не поддерживает печать. Чтобы изменить принтер, сначала получите список доступных принтеров с помощью свойства printers . Это свойство имеет тип Vector, элементы String которого представляют собой имена доступных принтеров. Задайте для свойства printer одно из этих значений String, чтобы сделать этот принтер активным. Свойство printer активного задания печати изменить нельзя. Свойство нельзя изменить после успешного вызова метода start() или start2() и до завершения или прерывания задания печати. Ниже приводится пример настройки этого свойства.

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.printer = "HP_LaserJet_1"; 
myPrintJob.start();

Свойство copies получает заданное в диалоговом окне «Печать» операционной системы значение количества копий. Свойствам firstPage и lastPage присваиваются значения границ диапазона страниц. Свойство orientation получает параметр ориентации страницы. Значения этих свойств могут аннулировать значения в диалоговом окне «Печать». Следующий пример иллюстрирует настройку этих свойств.

import flash.printing.PrintJob; 
import flash.printing.PrintJobOrientation; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.copies = 3; 
myPrintJob.firstPage = 1; 
myPrintJob.lastPage = 3; 
myPrintJob.orientation = PrintJobOrientation.LANDSCAPE;

Следующие параметры только для чтения, связанные с PrintJob , могут предоставить полезные данные о текущих параметрах принтера.

  • paperArea : прямоугольные границы носителя для печати, в точках.

  • printableArea : прямоугольные границы области печати, в точках.

  • maxPixelsPerInch : физическое разрешение данного принтера, в пикселах на дюйм.

  • isColor : возможность текущего принтера выполнять цветную печать (возвращает значение true , если принтер поддерживает печать в цвете).

См. раздел « Пример печати: настройка параметров страницы и печати ».