Пакет | flash.printing |
Класс | public class PrintJob |
Наследование | PrintJob EventDispatcher Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Поддержка в мобильных браузерах: этот класс не поддерживается в мобильных браузерах.
Поддержка в профилях AIR: эта функция поддерживается во всех компьютерных операционных системах, но не поддерживается на мобильных устройствах или в среде AIR для телевизионных устройств. Используйте свойство PrintJob.isSupported
, чтобы проверить наличие поддержки в среде выполнения. Дополнительные сведения о поддержке API-интерфейса в разных профилях см. в разделе «Поддержка в профилях AIR».
Используйте конструктор PrintJob()
для создания задания печати.
Кроме того, благодаря свойствам класса PrintJob можно считывать параметры настройки принтера, например высоту страницы, ее ширину и ориентацию изображения, и настроить в документе динамическое форматирование содержимого Flash в соответствии с параметрами принтера.
Примечание. ActionScript 3.0 не ограничивает объект PrintJob одним кадром (как это было в предыдущих версиях программы ActionScript). Однако, поскольку операционная система отображает информацию о состоянии печати пользователю, после того как он нажал кнопку «ОК» в диалоговом окне «Печать», необходимо как можно быстрее вызвать методы PrintJob.addPage()
и PrintJob.send()
, чтобы отправить страницы в диспетчер очереди печати. Задержка при обращении к кадру, содержащему вызов PrintJob.send()
, приводит к задержке процесса печати.
Кроме того, для следующих интервалов применяется 15 секундное ограничение задержки сценария:
- между
PrintJob.start()
и первымPrintJob.addPage()
- между
PrintJob.addPage()
и следующимPrintJob.addPage()
- между последним
PrintJob.addPage()
иPrintJob.send()
Если любой из вышеуказанных интервалов длится более 15 секунд, следующий вызов метода PrintJob.start()
для экземпляра PrintJob возвращает значение false
, а следующее обращение к методу PrintJob.addPage()
для этого экземпляра PrintJob вызывает в приложении Flash Player или Adobe AIR исключение при выполнении.
Свойство | Определено | ||
---|---|---|---|
active : Boolean [статические] [только для чтения]
Указывает, активно ли в данный момент задание печати. | PrintJob | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
copies : int
Число экземпляров, которое система печати печатает для всех страниц, впоследствии добавляемых в задание печати. | PrintJob | ||
firstPage : int [только для чтения]
Номер первой страницы диапазона, введенный пользователем в системном диалоговом окне «Печать». | PrintJob | ||
isColor : Boolean [только для чтения]
Указывает, какой режим использует выбранный принтер с текущими настройками печати: цветной (true) или градации серого (false). | PrintJob | ||
isSupported : Boolean [статические] [только для чтения]
Указывает, поддерживает ли текущая платформа класс PrintJob: да (true) или нет (false). | PrintJob | ||
jobName : String
Имя или заголовок задания печати. | PrintJob | ||
lastPage : int [только для чтения]
Номер последней страницы диапазона, введенный пользователем в системном диалоговом окне «Печать». | PrintJob | ||
maxPixelsPerInch : Number [только для чтения]
Физическое разрешение выбранного принтера, в пикселах на дюйм. | PrintJob | ||
orientation : String
Ориентация изображения при печати. | PrintJob | ||
pageHeight : int [только для чтения]
Высота самой большой области, которую можно расположить по центру фактической области печати на странице (в пунктах). | PrintJob | ||
pageWidth : int [только для чтения]
Ширина самой большой области, которую можно расположить по центру фактической области печати на странице (в пунктах). | PrintJob | ||
paperArea : Rectangle [только для чтения]
Границы материала для печати в принтере, в пунктах. | PrintJob | ||
paperHeight : int [только для чтения]
Общая высота бумаги (в пунктах). | PrintJob | ||
paperWidth : int [только для чтения]
Общая ширина бумаги (в пунктах). | PrintJob | ||
printableArea : Rectangle [только для чтения]
Границы области печати материала в принтере, в пунктах. | PrintJob | ||
printer : String
Получает или задает принтер для выполнения текущего задания печати. | PrintJob | ||
printers : Vector.<String> [статические] [только для чтения]
Предоставляет список доступных принтеров в виде строковых значений имен. | PrintJob | ||
supportsPageSetupDialog : Boolean [статические] [только для чтения]
Указывает, поддерживает ли текущая среда выполнения Flash отображение отдельного диалогового окна «Параметры страницы». | PrintJob |
Метод | Определено | ||
---|---|---|---|
PrintJob()
Создает объект PrintJob, который можно использовать для печати одной или нескольких страниц. | PrintJob | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Отправляет заданный объект Sprite в диспетчер очереди печати принтера в виде одной страницы. | PrintJob | ||
Посылает событие в поток событий. | EventDispatcher | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Установите формат бумаги. | PrintJob | ||
Отправляет на принтер страницы, переданные в диспетчер печати, после успешных вызовов методов start() или start2() и addPage(). | PrintJob | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Отображает диалоговое окно «Параметры страницы» операционной системы, если это поддерживается текущая среда. | PrintJob | ||
Выводит на экран системное диалоговое окно «Печать» и начинает передачу задания диспетчеру печати. | PrintJob | ||
По выбору может открывать диалоговое окно «Печать» операционной системы, запускать подкачку и при возможности изменять доступные только для чтения значения свойств PrintJob. | PrintJob | ||
Сообщает, что задание печати необходимо прервать без отправки. | PrintJob | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
active | свойство |
active:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Указывает, активно ли в данный момент задание печати. Задание печати является активным (свойство имеет значение true
) в любом из двух случаев.
- В данный момент отображается диалоговое окно «Параметры страницы» или «Печать».
- Метод
start()
илиstart2()
вызывался и возвратил значениеtrue
, и не вызывался методsend()
илиterminate()
.
Если это свойство имеет значение true
и вызывается метод showPageSetupDialog()
, start()
или start2()
, среда выполнения выдает исключение.
Реализация
public static function get active():Boolean
Связанные элементы API
copies | свойство |
copies:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Число экземпляров, которое система печати печатает для всех страниц, впоследствии добавляемых в задание печати. Это значение указывает число экземпляров, введенное пользователем в диалоговом окне «Печать» операционной системы. Если в диалоговом окне «Печать» не отображается число экземпляров или если это окно не выводится, используется значение 1 (если оно не изменено кодом приложения).
Реализация
public function get copies():int
public function set copies(value:int):void
firstPage | свойство |
firstPage:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Номер первой страницы диапазона, введенный пользователем в системном диалоговом окне «Печать». Это свойство имеет нулевое значение, если пользователь запрашивает печать всех страниц, если диапазон страниц не отображался в диалоговом окне «Печать» или если это окно не выводилось.
Реализация
public function get firstPage():int
isColor | свойство |
isColor:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Указывает, какой режим использует выбранный принтер с текущими настройками печати: цветной (true
) или градации серого (false
).
Если не удается определить режим, используется значение true
.
Реализация
public function get isColor():Boolean
isSupported | свойство |
jobName | свойство |
jobName:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Имя или заголовок задания печати. Имя задания обычно используется операционной системой как заголовок задания в очереди печати или как имя по умолчанию для задания, которое печатается в файл.
Если еще не вызывался метод start()
или start2()
и свойство не задано, то ему задается значение null
.
Для каждого задания печати, выполняемого с помощью экземпляра PrintJob, задайте это свойство до вызова метода start()
или start2()
.
Значением по умолчанию является null
.
Реализация
public function get jobName():String
public function set jobName(value:String):void
Выдает
IllegalOperationError — если код пытается установить свойство, когда свойство active имеет значение true .
|
lastPage | свойство |
lastPage:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Номер последней страницы диапазона, введенный пользователем в системном диалоговом окне «Печать». Это свойство имеет нулевое значение, если пользователь запрашивает печать всех страниц, если диапазон страниц не отображался в диалоговом окне «Печать» или если это окно не выводилось.
Реализация
public function get lastPage():int
maxPixelsPerInch | свойство |
maxPixelsPerInch:Number
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Физическое разрешение выбранного принтера, в пикселах на дюйм. Это значение вычисляется в соответствии с текущими настройками печати в операционной системе.
Если определить разрешение не удается, используется значение по умолчанию. Значение по умолчанию — 600 пикс./дюйм в ОС Linux и 360 пикс./дюйм в ОС Mac OS. В ОС Windows разрешение принтера всегда доступно, поэтому значение по умолчанию не требуется.
Реализация
public function get maxPixelsPerInch():Number
orientation | свойство |
orientation:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9 - read only, AIR 1.0 - read only, AIR 2 - read-write |
Ориентация изображения при печати. Допустимые значения определены как константы в классе PrintJobOrientation.
Примечание. В AIR 2 и более поздних версиях это свойство можно установить до начала печати, чтобы задать ориентацию по умолчанию в диалоговых окнах «Параметры страницы» и «Печать». Установите это свойство в процессе выполнения задания печати (после вызова метода start()
или start2()
, чтобы задать ориентацию для диапазона страниц в текущем задании.
Реализация
public function get orientation():String
public function set orientation(value:String):void
Связанные элементы API
pageHeight | свойство |
pageHeight:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9. |
Высота самой большой области, которую можно расположить по центру фактической области печати на странице (в пунктах). Любые границы, установленные пользователем, игнорируются. Это свойство доступно только после того, как был вызван метод PrintJob.start()
.
Примечание. В AIR 2 и более поздних версиях это свойство игнорируется. Используйте вместо него свойство printableArea
, которое измеряет область печати в дробных пунктах и точно описывает области печати, смещенные относительно центра.
Реализация
public function get pageHeight():int
Связанные элементы API
pageWidth | свойство |
pageWidth:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 9, AIR 1.0 |
Ширина самой большой области, которую можно расположить по центру фактической области печати на странице (в пунктах). Любые границы, установленные пользователем, игнорируются. Это свойство доступно только после того, как был вызван метод PrintJob.start()
.
Примечание. В AIR 2 и более поздних версиях это свойство игнорируется. Используйте вместо него свойство printableArea
, которое измеряет область печати в дробных пунктах и точно описывает области печати, смещенные относительно центра.
Реализация
public function get pageWidth():int
Связанные элементы API
paperArea | свойство |
paperHeight | свойство |
paperHeight:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9. |
Общая высота бумаги (в пунктах). Это свойство доступно только после того, как был вызван метод PrintJob.start()
.
Примечание. В AIR 2 и более поздних версиях это свойство игнорируется. Вместо него используйте свойство paperArea
, которое измеряет размеры бумаги в дробных пунктах.
Реализация
public function get paperHeight():int
Связанные элементы API
paperWidth | свойство |
paperWidth:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9. |
Общая ширина бумаги (в пунктах). Это свойство доступно только после того, как был вызван метод PrintJob.start()
.
Примечание. В AIR 2 и более поздних версиях это свойство игнорируется. Вместо него используйте свойство paperArea
, которое измеряет размеры бумаги в дробных пунктах.
Реализация
public function get paperWidth():int
Связанные элементы API
printableArea | свойство |
printableArea:Rectangle
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Границы области печати материала в принтере, в пунктах. Это значение использует ту же систему координат, что и в последующих вызовах метода addPage()
.
Реализация
public function get printableArea():Rectangle
printer | свойство |
printer:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Получает или задает принтер для выполнения текущего задания печати. Объект String, передаваемый установщику получателем, должен соответствовать одной из строк в объекте Array, возращенном методом printers()
. Чтобы указать, что необходимо использовать принтер по умолчанию, задайте этому свойству значение null
. В операционных системах, где невозможно определить принтер по умолчанию, это свойство имеет значение null
.
import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); myPrintJob.printer = "HP_LaserJet_1"; myPrintJob.start();
Когда задается значение для этого свойства, предпринимается попытка немедленно выбрать принтер. Если выбрать принтер не удается, используется предыдущее значение этого свойства. Чтобы узнать, удалось ли задать значение принтера, проверьте значение свойства после попытки установить его и убедитесь, соответствует ли оно заданному значению.
Свойство printer
активного задания печати изменить нельзя. Попытки изменить свойство после успешного вызова метода start()
или start2()
и перед вызовом метода send()
или terminate()
не дают результатов.
Реализация
public function get printer():String
public function set printer(value:String):void
printers | свойство |
printers:Vector.<String>
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Предоставляет список доступных принтеров в виде строковых значений имен. Список не вычисляется предварительно, он генерируется в момент вызова функции. Если нет доступных принтеров или система не поддерживает печать, используется значение null
. Если система поддерживает печать, но не может вернуть список принтеров, в качестве значения используется объект Vector с одним элементом (его свойство length
имеет значение 1). В этом случае единственный элемент содержит действительное имя принтера, либо имя по умолчанию, если невозможно определить имя текущего принтера.
Реализация
public static function get printers():Vector.<String>
supportsPageSetupDialog | свойство |
supportsPageSetupDialog:Boolean
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Указывает, поддерживает ли текущая среда выполнения Flash отображение отдельного диалогового окна «Параметры страницы». Если это свойство имеет значение true
, можно вызвать метод showPageSetupDialog()
, чтобы вывести системное диалоговое окно «Параметры страницы».
Реализация
public static function get supportsPageSetupDialog():Boolean
Связанные элементы API
PrintJob | () | Конструктор |
public function PrintJob()
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает объект PrintJob, который можно использовать для печати одной или нескольких страниц. После создания объекта PrintJob для отправки задания печати на принтер необходимо использовать (в указанном порядке) методы PrintJob.start()
, PrintJob.addPage()
, а затем PrintJob.send()
.
Например, можно заменить текст-заполнитель [params]
для вызовов метода myPrintJob.addPage()
пользовательскими параметрами, как показано в следующем коде.
// create PrintJob object var myPrintJob:PrintJob = new PrintJob(); // display Print dialog box, but only initiate the print job // if start returns successfully. if (myPrintJob.start()) { // add specified page to print job // repeat once for each page to be printed try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } // send pages from the spooler to the printer, but only if one or more // calls to addPage() was successful. You should always check for successful // calls to start() and addPage() before calling send(). myPrintJob.send(); }
В AIR 2 и более поздних версиях можно создавать и использовать несколько экземпляров PrintJob. Свойства, заданные для экземпляра PrintJob, сохраняются после завершения печати. Это позволяет многократно использовать экземпляр PrintJob и сохранять выбранные пользователем установки печати, предлагая другие настройки для остального содержимого в приложении. Для содержимого во Flash Player и в AIR до версии 2 нельзя создавать второй объект PrintJob, пока активен первый. Если второй объект PrintJob создается (вызовом метода new PrintJob()
), когда активен первый объект PrintJob, второй объект создан не будет. Поэтому можно проверить значение myPrintJob
, прежде чем создавать второй объект PrintJob.
Выдает
IllegalOperationError — Во Flash Player и AIR до версии AIR 2 выдается исключение, если еще активен другой экземпляр PrintJob.
|
Связанные элементы API
addPage | () | метод |
public function addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9. |
Отправляет заданный объект Sprite в диспетчер очереди печати принтера в виде одной страницы. Перед использованием этого метода необходимо создать объект PrintJob, а затем применить метод start()
или start2()
. Затем, после вызова метода addPage()
один или несколько раз для задания печати, используйте метод send()
для передачи страниц в диспетчере очереди печати на принтер. Другими словами, после создания объекта PrintJob для отправки задания печати на принтер необходимо использовать (в указанном порядке) методы start()
, addPage()
, а затем
send()
. Метод addPage()
можно вызывать несколько раз после вызова метода start()
, чтобы напечатать несколько страниц в задании печати.
Если метод addPage()
вызывает исключение в проигрывателе Flash Player (например, если не вызван метод start()
или пользователь отменил задание печати), любой последующий вызов addPage()
завершится ошибкой. Однако, если предыдущие вызовы метода addPage()
были успешными, завершающая команда send()
отправляет на принтер страницы, успешно помещенные в очередь диспетчера печати.
Если заданию печати требуется более 15 секунд для выполнения операции addPage()
, то проигрыватель Flash Player вызовет исключение при следующем вызове метода addPage()
.
Если передается значение для параметра printArea
, то в качестве координат x
и y
прямоугольника printArea
задается верхний левый угол (координаты 0,0) области печати страницы. Предназначенные только для чтения свойства pageHeight
и pageWidth
описывают область печати, заданную методом start()
. Поскольку печатаемые данные выравниваются по верхнему левому углу области печати страницы, то когда область, определенная параметром printArea
больше, чем область печати страницы, печатаемые данные обрезаются по правой или по левой границе (или по обеим сразу) области, заданной параметром printArea
. Если во Flash Professional значение для параметра printArea
не передано и рабочая область больше области печати, выполняется обрезка по такому же принципу. Если во Flex или Flash Builder значение параметра printArea
не передано и размеры экрана превышают размеры области печати, выполняется обрезка по такому же принципу.
Если требуется отмасштабировать объект Sprite перед тем как распечатывать его, установите свойства масштабирования (см. flash.display.DisplayObject.scaleX
и flash.display.DisplayObject.scaleY
) прежде чем вызывать этот метод, а затем верните их в исходное состояние после выполнения печати. Масштаб объекта Sprite не связан с параметром printArea
. Таким образом, если указывается область печати 50 x 50 пикселей, распечатывается 2500 пикселей. Если объект Sprite масштабируется, распечатываются те же 2500 пикселей, но объект Sprite при этом печатается в отмасштабированном размере.
Функция печати в проигрывателе Flash Player может работать с поддерживающими и не поддерживающими PostScript принтерами. В принтерах, которые не поддерживают PostScript, происходит преобразование векторных изображений в растровые.
Параметры
sprite:Sprite — Объект Sprite с содержимым для печати.
| |
printArea:Rectangle (default = null ) — Прямоугольный объект, указывающий область для печати.
Значения ширины и высоты прямоугольника задаются в пикселях. Принтер использует точки в качестве единиц измерения для печати. Точки имеют фиксированный физический размер (1/72 дюйма), но размер пикселя на экране зависит от разрешения конкретного экрана. Поэтому коэффициент преобразования между пикселями и точками зависит от параметров принтера и масштабирования объекта Sprite. Немасштабированный объект Sprite, имеющий ширину 72 пиксела, печатается с шириной 1 дюйм, при этом одна точка будет равна одному пикселу, независимо от разрешения экрана. Можно использовать следующие соответствия для преобразования дюймов или сантиметров в твипы или точки (твип равен 1/20 части точки):
Если параметр Если не требуется указывать значение для параметра | |
options:PrintJobOptions (default = null ) — Дополнительный параметр, который указывает на необходимость выполнять печать в векторном или растровом формате. По умолчанию установлено значение null , которое соответствует запросу на печать в векторном формате. Чтобы распечатать объект sprite в растровом формате, установите для свойства printAsBitmap объекта rintJobOptions значение true . Не забывайте о следующих рекомендациях, когда определяете, устанавливать ли для свойства printAsBitmap значение true .
Если параметр | |
frameNum:int (default = 0 ) — Необязательный объект Number, который позволяет указать, какой кадр объекта MovieClip необходимо напечатать. Передача свойства frameNum не позволяет вызвать код ActionScript для этого кадра. Если этот параметр пропущен, а параметр sprite содержит объект MovieClip, печатается текущий кадр в sprite .
|
Выдает
Error — Выдается исключение, если не был вызван метод start() или пользователь отменяет задание печати
|
Связанные элементы API
selectPaperSize | () | метод |
public function selectPaperSize(paperSize:String):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Установите формат бумаги. Допустимые значения для параметра paperSize
перечислены в качестве констант в классе PaperSize. Вызов этого метода изменяет настройки печати так же, как пользователь задает размер бумаги в диалоговых окнах «Параметры страницы» или «Печать».
Этот метод можно вызвать в любое время. Вызовите этот метод до запуска задания, чтобы задать формат бумаги по умолчанию в диалоговых окнах «Параметры страницы» или «Печать». Вызовите его в процессе выполнения задания печати, чтобы задать формат бумаги для диапазона страниц в этом задании.
import flash.printing.PrintJob; import flash.printing.PaperSize; var myPrintJob:PrintJob = new PrintJob(); myPrintJob.selectPaperSize(PaperSize.ENV_10);
Параметры
paperSize:String — Формат бумаги, который должен использоваться для последующих страниц задания печати.
|
Выдает
ArgumentError — если параметру paperSize задано значение, не определенное в классе PaperSize.
|
Связанные элементы API
send | () | метод |
public function send():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9. |
Отправляет на принтер страницы, переданные в диспетчер печати, после успешных вызовов методов start()
или start2()
и addPage()
.
Этот метод не удается выполнить, если операция start()
или start2()
завершается ошибкой или если вызов метода addPage()
выдает исключение. Чтобы избежать ошибки, перед вызовом этого метода убедитесь, что метод start()
или start2()
возвращает true
, и обработайте все исключения addPage()
. В следующем примере показано, как правильно проверять наличие ошибок перед вызовом этого метода.
var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.start()) { try { myPrintJob.addPage([params]); } catch(e:Error) { // handle error } myPrintJob.send(); }
Связанные элементы API
showPageSetupDialog | () | метод |
public function showPageSetupDialog():Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Отображает диалоговое окно «Параметры страницы» операционной системы, если это поддерживается текущая среда. Используйте свойство supportsPageSetupDialog
, чтобы определить, поддерживается ли отображение окна «Параметры страницы».
import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.supportsPageSetupDialog) { myPrintJob.showPageSetupDialog(); }
Boolean — Возвращает значение true , если пользователь нажимает кнопку «ОК» в диалоговом окне «Параметры страницы». Это обозначает, что некоторые свойства PrintJob, могли измениться. Возвращает значение false , если пользователь нажимает кнопку «Отмена» в диалоговом окне «Параметры страницы».
|
Выдает
IllegalOperationError — если система не поддерживает вызов диалогового окна «Параметры страницы». Используйте свойство supportsPageSetupDialog , чтобы определить, поддерживается ли отображение окна «Параметры страницы».
| |
IllegalOperationError — если активно какое-либо задание печати (включая текущее).
|
Связанные элементы API
start | () | метод |
public function start():Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9., Flash Player 9. |
Выводит на экран системное диалоговое окно «Печать» и начинает передачу задания диспетчеру печати. Диалоговое окно «Печать» позволяет пользователю изменять параметры печати. Если метод PrintJob.start()
успешно выполняется (пользователь нажимает кнопку «ОК» в диалоговом окне «Печать»), то следующие свойства заполняются значениями, соответствующими параметрам печати, установленным пользователем.
Свойство | Тип | Единицы | Примечания |
---|---|---|---|
PrintJob.paperHeight | Number | Пункты | Общая высота страницы. |
PrintJob.paperWidth | Number | Пункты | Общая ширина страницы. |
PrintJob.pageHeight | Number | Пункты | Высота фактически печатаемой области на странице; все установленные пользователем границы игнорируются. |
PrintJob.pageWidth | Number | Пункты | Ширина фактически печатаемой области на странице; любые установленные пользователем границы игнорируются. |
PrintJob.orientation | String | portrait (flash.printing.PrintJobOrientation.PORTRAIT ) или landscape (flash.printing.PrintJobOrientation.LANDSCAPE ). |
Примечание. Если пользователь закрывает диалоговое окно «Печать», эти свойства не заполняются.
После того как пользователь нажмет кнопку «ОК» в диалоговом окне «Печать», проигрыватель начинает отправлять задание печати в очередь диспетчера печати операционной системы. Поскольку операционная система затем начинает отображать пользователю информацию о выполнении печати, необходимо как можно быстрее вызвать методы PrintJob.addPage()
и PrintJob.send()
, чтобы отправить страницы в диспетчер очереди печати. Можно использовать доступные только для чтения свойства высоты, ширины и ориентации страницы, которые этот метод подставляет при форматировании печатаемой страницы.
Проверьте, возвращает ли метод значение true
(если пользователь нажмет кнопку «ОК» в диалоговом окне «Печать» операционной системы) перед последующим вызовом одного из методов PrintJob.addPage()
и PrintJob.send()
:
var myPrintJob:PrintJob = new PrintJob(); if(myPrintJob.start()) { // addPage() and send() statements here }
Для заданного экземпляра задания печати, если какой-либо из следующих интервалов длится дольше 15 секунд, при следующем вызове PrintJob.start()
будет возвращаться значение false
:
- между
PrintJob.start()
и первымPrintJob.addPage()
- между
PrintJob.addPage()
и следующимPrintJob.addPage()
- между последним
PrintJob.addPage()
иPrintJob.send()
Boolean — Устанавливается значение true , если пользователь нажал кнопку «ОК», когда открылось диалоговое окно «Печать»; а значение false , если была нажата кнопка «Отмена».
|
Выдает
IllegalOperationError — в AIR 2 или более поздних версиях, если в данный момент активен другой экземпляр PrintJob.
|
Связанные элементы API
start2 | () | метод |
public function start2(uiOptions:PrintUIOptions = null, showPrintDialog:Boolean = true):Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
По выбору может открывать диалоговое окно «Печать» операционной системы, запускать подкачку и при возможности изменять доступные только для чтения значения свойств PrintJob.
Параметр uiOptions
позволяет вызывающему объекту определять, какие параметры должны отображаться в диалоговом окне «Печать». См. описание класса PrintUIOptions
. Этот параметр игнорируется, если свойство showPrintDialog
имеет значение false.
Даже когда свойство showPrintDialog
имеет значение true
, поведение этого метода может отличаться от поведения исходного метода start()
. В некоторых операционных системах метод start()
сначала показывает диалоговое окно «Параметры страницы», а затем окно «Печать». Метод start2()
, напротив, никогда не показывает диалоговое окно «Параметры страницы».
В следующем примере перед выводом диалогового окна «Печать» для пользователя задаются параметры минимального и максимального номеров страниц.
import flash.printing.PrintJob; import flash.printing.PrintUIOptions; var myPrintJob:PrintJob = new PrintJob(); var uiOpt:PrintUIOptions = new PrintUIOptions(); uiOpt.minPage = 1; uiOpt.maxPage = 3; var accepted:Boolean = myPrintJob.start2(uiOpt);
Параметры
uiOptions:PrintUIOptions (default = null ) — Объект, который определяет параметры, отображаемые в диалоговом окне «Печать» для пользователя. Если параметр showPrintDialog имеет значение false , это значение игнорируется.
| |
showPrintDialog:Boolean (default = true ) — Определяет, показывается ли пользователю диалоговое окно «Печать» перед запуском задания печати.
|
Boolean — Имеет значение true , если пользователь нажимает кнопку «ОК» при появлении диалогового окна «Печать» или если это окно не появляется и не возникает ошибки; имеет значение false , если пользователь нажимает кнопку «Отмена» или если возникает ошибка.
|
Выдает
IllegalOperationError — Если в данный момент отображается окно «Параметры печати» или активно другое задание печати.
|
Связанные элементы API
terminate | () | метод |
public function terminate():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2 |
Сообщает, что задание печати необходимо прервать без отправки. Используйте этот метод, когда задание печати уже инициировано вызовом start()
или start2()
, но в данный момент неуместно отправлять страницы принтеру. Как правило, метод terminate()
используется только для исправления ошибок.
После вызова этого метода экземпляр PrintJob можно использовать повторно. Настройки печати для задания по возможности сохраняются для последующего использования.
addPage()
добавляет спрайт как одну страницу. Метод send()
передает страницу принтеру.
package { import flash.printing.PrintJob; import flash.display.Sprite; public class BasicPrintExample extends Sprite { var myPrintJob:PrintJob = new PrintJob(); var mySprite:Sprite = new Sprite(); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawCircle(100, 100, 50); public function BasicPrintExample() { if (myPrintJob.start()) { try { myPrintJob.addPage(mySprite); } catch(e:Error) { // handle error } myPrintJob.send(); } } }
PrintJobExample
используется для создания небольшого документа и последующей отправки его на принтер. Это можно сделать, выполнив следующие действия:
- Объявляются две переменные типа Sprite с названиями
sheet1
иsheet2
. - Вызывается метод
init()
, который назначает новый экземпляр Sprite обеим переменнымsheet1
иsheet2
, а затем вызывается методcreateSheet()
. - Метод
createSheet()
выполняет следующие действия:- Передаваемый объект Sprite используется для создания прямоугольника со светло-серой заливкой, черной рамкой толщиной в один пиксель, шириной в 100 пикселей и высотой в 200 пикселей, с координатами x = 0, y = 0.
- Создается новый объект TextField с именем
txt
и такими же размерами, что и объект Sprite, для свойства wordWrap устанавливается значениеtrue
, а для текстового свойства в качестве аргумента дляcreateSheet()
устанавливается «Строка передана». - Если определено значение для переданного аргумента объекта, создайте новый экземпляр Sprite с именем
img
, который используется для отображения белого прямоугольника, используя свойства координат и размеров переданного объекта. Этот белый прямоугольник добавляется к списку отображения объекта Sprite с помощью методаaddChild()
. - Объект TextField с названием
txt
добавляется к списку отображения объекта Sprite с помощью методаaddChild()
.
- Выполняется обратный переход в конструктор, а затем вызывается разрешенный (незакомментированный) метод печати. Поскольку методы очень похожи, далее описан только один из них
printOnePerPage()
. - Метод
printOnePerPage()
выполняет следующие действия:- Объявляется новый объект PrintJob с именем
pj
иpagesToPrint
в качестве объекта uint. - Открывается предусмотренное в операционной системе диалоговое окно «Печать», выполняется ожидание, пока пользователь не нажмет кнопку
«OK»
. - Проверяется ориентация, и если выбрана альбомная ориентация, выдается сообщение об ошибке и выполнение операции завершается.
- Настраивается высота и ширина страницы для
sheet1
иsheet2
. - Объекты
sheet1
иsheet2
отправляются в диспетчер очереди печати принтера с помощью методаaddPage()
. - Если число страниц для печати больше нуля, выполняется печать всех помещенных в очередь печати страниц.
- Объявляется новый объект PrintJob с именем
- Метод
draw()
вызывается, когда необходимо изменить размеры двух объектов Sprite для размещения на монтажном столе или изменения положенияsheet2
, например, поместив его справа отsheet1
.
Примечание. Конструктор настроен таким образом, что можно выбрать один из трех методов печати (печать одной страницы на лист, двух страниц на лист или печать в верхней половине листа) в зависимости от предпочтения. Этот пример не будет работать правильно до тех пор, пока два метода печати не будут отключены с помощью комментариев в программном коде. Пример настроен таким образом, что будет вызываться метод printOnePerPage()
.
package { import flash.printing.PrintJob; import flash.printing.PrintJobOrientation; import flash.display.Stage; import flash.display.Sprite; import flash.text.TextField; import flash.geom.Rectangle; public class PrintJobExample extends Sprite { private var sheet1:Sprite; private var sheet2:Sprite; public function PrintJobExample() { init(); printOnePerPage(); // printTwoPerPage(); // printTopHalf(); draw(); } private function init():void { sheet1 = new Sprite(); createSheet(sheet1, "Once upon a time...", {x:10, y:50, width:80, height:130}); sheet2 = new Sprite(); createSheet(sheet2, "There was a great story to tell, and it ended quickly.\n\nThe end.", null); } private function createSheet(sheet:Sprite, str:String, imgValue:Object):void { sheet.graphics.beginFill(0xEEEEEE); sheet.graphics.lineStyle(1, 0x000000); sheet.graphics.drawRect(0, 0, 100, 200); sheet.graphics.endFill(); var txt:TextField = new TextField(); txt.height = 200; txt.width = 100; txt.wordWrap = true; txt.text = str; if(imgValue != null) { var img:Sprite = new Sprite(); img.graphics.beginFill(0xFFFFFF); img.graphics.drawRect(imgValue.x, imgValue.y, imgValue.width, imgValue.height); img.graphics.endFill(); sheet.addChild(img); } sheet.addChild(txt); } private function printOnePerPage():void { var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()) { if(pj.orientation == PrintJobOrientation.LANDSCAPE) { throw new Error("Without embedding fonts you must print one sheet per page with an orientation of portrait."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth; try { pj.addPage(sheet1); pagesToPrint++; } catch(e:Error) { // do nothing } try { pj.addPage(sheet2); pagesToPrint++; } catch(e:Error) { // do nothing } if(pagesToPrint > 0) { pj.send(); } } } private function printTwoPerPage():void { var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()) { if(pj.orientation == PrintJobOrientation.PORTRAIT) { throw new Error("Without embedding fonts you must print two sheets per page with an orientation of landscape."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth/2; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth/2; var sheets:Sprite = new Sprite(); sheets.addChild(sheet1); sheets.addChild(sheet2); sheets.getChildAt(1).x = sheets.getChildAt(0).width; try { pj.addPage(sheets); pagesToPrint++; } catch(e:Error) { // do nothing } if(pagesToPrint > 0) { pj.send(); } } } private function printTopHalf():void { var pj:PrintJob = new PrintJob(); var pagesToPrint:uint = 0; if(pj.start()) { if(pj.orientation == PrintJobOrientation.PORTRAIT) { throw new Error("Without embedding fonts you must print the top half with an orientation of landscape."); } sheet1.height = pj.pageHeight; sheet1.width = pj.pageWidth/2; sheet2.height = pj.pageHeight; sheet2.width = pj.pageWidth/2; var sheets:Sprite = new Sprite(); sheets.addChild(sheet1); sheets.addChild(sheet2); sheets.getChildAt(1).x = sheets.getChildAt(0).width; try { pj.addPage(sheets, new Rectangle(0, 0, sheets.width, sheets.height/2)); pagesToPrint++; } catch(e:Error) { // do nothing } if(pagesToPrint > 0) { pj.send(); } } } private function draw():void { var sheetWidth:Number = this.stage.stageWidth/2; var sheetHeight:Number = this.stage.stageHeight; addChild(sheet1); sheet1.width = sheetWidth; sheet1.height = sheetHeight; addChild(sheet2); sheet2.width = sheetWidth; sheet2.height = sheetHeight; sheet2.x = sheet1.width; } } }
package { import flash.display.Sprite; import flash.display.Stage; import flash.geom.Rectangle; import flash.printing.PaperSize; import flash.printing.PrintJob; import flash.printing.PrintJobOrientation; import flash.printing.PrintUIOptions; import flash.text.TextField; public class PrintJobExample extends Sprite { private var bg:Sprite; private var txt:TextField; private var pj:PrintJob; private var uiOpt:PrintUIOptions; public function PrintJobExample():void { var pj = new PrintJob(); uiOpt = new PrintUIOptions(); initPrintJob(); initContent(); draw(); printPage(); } private function printPage():void { if (pj.supportsPageSetupDialog) { pj.showPageSetupDialog(); } if (pj.start2(uiOpt, true)) { try { pj.addPage(this, new Rectangle(0, 0, 100, 100)); } catch (error:Error) { // Do nothing. } pj.send(); } else { txt.text = "Print job terminated"; pj.terminate(); } } private function initContent():void { bg = new Sprite(); bg.graphics.beginFill(0x00FF00); bg.graphics.drawRect(0, 0, 100, 200); bg.graphics.endFill(); txt = new TextField(); txt.border = true; txt.text = "Hello World"; } private function initPrintJob():void { pj.setPaperSize(PaperSize.LEGAL); pj.orientation = PrintJobOrientation.LANDSCAPE; pj.copies = 2; pj.jobName = "Flash test print"; } private function draw():void { addChild(bg); addChild(txt); txt.x = 50; txt.y = 50; } } }
Tue Jun 12 2018, 11:34 AM Z