flash.printingPrintUIOptions Класс PrintUIOptions служит для настройки параметров в диалоговых окнах печати, которые выводятся на экран для пользователя.Object Класс PrintUIOptions служит для настройки параметров в диалоговых окнах печати, которые выводятся на экран для пользователя. Создайте экземпляр PrintUIOptions, задайте его свойства и передайте его в качестве параметра uiOptions методу PrintJob.showPageSetupDialog() или PrintJob.start2().

Например, в следующем коде экземпляр PrintUIOptions используется для определения минимального и максимального номеров страниц, когда отображается диалоговое окно «Параметры страницы».

import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.supportsPageSetupDialog) { var uiOpt:PrintUIOptions = new PrintUIOptions(); uiOpt.minPage = 1; uiOpt.maxPage = 3; myPrintJob.showPageSetupDialog(uiOpt); }
PrintJobPrintJob.showPageSetupDialog()PrintJob.start2()PrintUIOptions Создает новый объект PrintUIOptions. Создает новый объект PrintUIOptions. Этот объект передается параметру uiOptions метода PrintJob.showPageSetupDialog() или PrintJob.start2(). PrintJob.showPageSetupDialog()PrintJob.start2()disablePageRange Указывает состояние параметра «Диапазон страниц» в диалоговом окне печати: отключен (true) или доступен для редактирования (false).falseBooleanfalse Указывает состояние параметра «Диапазон страниц» в диалоговом окне печати: отключен (true) или доступен для редактирования (false). По умолчанию используется значение false, указывающее на отсутствие ограничений для изменения диапазона страниц. maxPage Минимальный номер страницы, которую пользователь может ввести в диалоговом окне печати.0uint0 Минимальный номер страницы, которую пользователь может ввести в диалоговом окне печати. По умолчанию используется значение 0, указывающее на отсутствие ограничений для ввода максимального числа страниц. minPage Максимальный номер страницы, которую пользователь может ввести в диалоговом окне печати.0uint0 Максимальный номер страницы, которую пользователь может ввести в диалоговом окне печати. По умолчанию используется значение 0, указывающее на отсутствие ограничений для ввода минимального числа страниц.
PrintMethod Этот класс предоставляет значения, используемые свойством PrintJobOptions.printMethod для определения способа печати страницы.Object Этот класс предоставляет значения, используемые свойством PrintJobOptions.printMethod для определения способа печати страницы. PrintJobOptions.printMethodAUTO Автоматический выбор оптимального способа печати.autoString Автоматический выбор оптимального способа печати. Это значение указывает на то, что автоматически выбирается векторная или растровая печать в зависимости от типа содержимого. Векторная печать используется всегда, когда этот способ позволяет надежно воспроизвести содержимое. Если используются такие эффекты, как прозрачность или некоторые другие, используется растровая печать.

Эта константа используется со свойством PrintJobOptions.printMethod. Используйте синтаксис PrintMethod.AUTO.

PrintJobOptions.printMethodVECTORBITMAP
BITMAP Растровый способ печати.bitmapString Растровый способ печати.

Эта константа используется со свойством PrintJobOptions.printMethod. Используйте синтаксис PrintMethod.BITMAP.

PrintJobOptions.printMethodVECTORAUTO
VECTOR Векторный метод печати.vectorString Векторный метод печати.

Эта константа используется со свойством PrintJobOptions.printMethod. Используйте синтаксис PrintMethod.VECTOR.

PrintJobOptions.printMethodBITMAPAUTO
PrintJobOptions Класс PrintJobOptions содержит свойства для применения с параметром options метода PrintJob.addPage().Object Класс PrintJobOptions содержит свойства для применения с параметром options метода PrintJob.addPage(). Дополнительные сведения о addPage() см. в классе PrintJob. PrintJobPrintJob.addPage()PrintJobOptions Создает новый объект PrintJobOptions.printAsBitmapBooleanfalseЕсли установлено true, этот объект распечатывается как растровое изображение. Если установлено false, этот объект распечатывается как векторное изображение.

Если распечатываемое содержимое содержит растровое изображение, установите для свойства printAsBitmap значение true, чтобы можно было включить альфа-прозрачность и какие-либо цветовые эффекты. Если в содержимом нет растровых изображений, пропустите данный параметр, чтобы распечатать содержимое в высококачественном векторном формате (формат по умолчанию).

Примечание. Adobe AIR не поддерживает печать векторной графики в операционной системе Mac OS.

Создает новый объект PrintJobOptions. Передайте этот объект параметру options метода PrintJob.addPage().
PrintJob.addPage()
pixelsPerInch Указывает разрешение для растровых изображений в пикселах на дюйм.NaNNumber Указывает разрешение для растровых изображений в пикселах на дюйм. По умолчанию используется значение Number.NaN, указывающее на то, что используется собственное разрешение принтера.

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

printAsBitmap Определяет режим печати содержимого по заданию печати: как растровое или как векторное изображение.falseBoolean Определяет режим печати содержимого по заданию печати: как растровое или как векторное изображение. По умолчанию для печати в векторном формате задано значение false.

Если распечатываемое содержимое содержит растровое изображение, установите для свойства printAsBitmap значение true, чтобы можно было включить альфа-прозрачность и какие-либо цветовые эффекты. Если в содержимом нет растровых изображений, его следует печатать в высококачественном векторном формате (формат по умолчанию).

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

var options:PrintJobOptions = new PrintJobOptions(); options.printAsBitmap = true; myPrintJob.addPage(mySprite, null, options);

Примечание. Adobe AIR не поддерживает печать векторной графики в операционной системе Mac OS.

В следующем примере вначале выполняется загрузка изображения, помещение его в прямоугольный кадр, а затем печать его как растрового изображения.
  1. Конструктор загружает изображение (image.jpg), используя объекты Loader и URLRequest. Он также проверяет, не произошло ли ошибок во время загрузки. Здесь предполагается, что файл находится в том же каталоге, что и SWF-файл. SWF-файл должен быть откомпилирован с установленным для параметра Local Playback Secuirty режимом Access Local Files Only.
  2. При загрузке изображения (завершении события) вызывается метод completeHandler().
  3. Метод completeHandler() создает объект BitmapData и загружает в него изображение (растровое). В объекте Sprite рисуется прямоугольник (frame) и используется метод beginBitmapFill() для заполнения его изображением (объект BitmapData). Объект Matrix также используется для масштабирования изображения и заполнения им прямоугольника. (Обратите внимание на то, что изображение при этом искажается. Этот объект используется в данном примере, чтобы обеспечить гарантированное заполнение прямоугольника изображением.) Как только заполнение изображением произведено, вызывается метод printPage().
  4. Метод printPage() создает новый экземпляр задания печати и запускает процесс печати, вызывая диалоговое окно «Печать» для пользователя и заполняя значениями свойства задания печати. Метод addPage() содержит подробные сведения о задании печати. Здесь кадр с изображением (объект Sprite) настроен для печати как растровое, а не векторное изображение. options являются экземпляром класса PrintJobOptions, а для его свойства printAsBitmap установлено значение true, чтобы выполнять печать растрового изображения (по умолчанию установлено значение false).

Примечание. Для этого примера определена минимальная обработка ошибок.

package { import flash.display.Sprite; import flash.display.Loader; import flash.display.Bitmap; import flash.display.BitmapData; import flash.printing.PrintJob; import flash.printing.PrintJobOptions; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.URLRequest; import flash.geom.Matrix; public class printAsBitmapExample extends Sprite { private var frame:Sprite = new Sprite(); private var url:String = "image.jpg"; private var loader:Loader = new Loader(); public function printAsBitmapExample() { var request:URLRequest = new URLRequest(url); loader.load(request); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function completeHandler(event:Event):void { var picture:Bitmap = Bitmap(loader.content); var bitmap:BitmapData = picture.bitmapData; var matrix:Matrix = new Matrix(); matrix.scale((200 / bitmap.width), (200 / bitmap.height)); frame.graphics.lineStyle(10); frame.graphics.beginBitmapFill(bitmap, matrix, true); frame.graphics.drawRect(0, 0, 200, 200); frame.graphics.endFill(); addChild(frame); printPage(); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load the image: " + url); } private function printPage ():void { var myPrintJob:PrintJob = new PrintJob(); var options:PrintJobOptions = new PrintJobOptions(); options.printAsBitmap = true; myPrintJob.start(); try { myPrintJob.addPage(frame, null, options); } catch(e:Error) { trace ("Had problem adding the page to print job: " + e); } try { myPrintJob.send(); } catch (e:Error) { trace ("Had problem printing: " + e); } } } }
PrintJobOptions.printMethod
printMethod Указывает, что среда выполнения Flash выбирает наиболее подходящий способ печати или что разработчик хочет явным образом выбрать векторную либо растровую печать.StringЗначение свойства printMethod не соответствует ни одному из значений, определенных в классе PrintMethod. ArgumentErrorArgumentError Указывает, что среда выполнения Flash выбирает наиболее подходящий способ печати или что разработчик хочет явным образом выбрать векторную либо растровую печать.

Задайте свойству одно из следующих значений, определенных в классе PrintMethod.

  • PrintMethod.AUTO: это значение указывает на то, что автоматически выбирается векторная или растровая печать в зависимости от типа содержимого. Векторная печать используется всегда, когда этот способ позволяет надежно воспроизвести содержимое. Если используются такие эффекты, как прозрачность или некоторые другие, будет использована растровая печать.
  • PrintMethod.VECTOR: это значение задает растровую печать. Тот же результат, что и при установке значения false для свойства printAsBitmap.
  • PrintMethod.BITMAP: это значение задает растровую печать. Тот же результат, что и при установке значения true для свойства printAsBitmap.

Если свойству printMethod задано поддерживаемое значение, то printAsBitmap игнорируется.

По умолчанию задано значение null; используется свойство printAsBitmap.

PrintJobOptions.printAsBitmapКласс PrintMethod
PrintJob Класс PrintJob позволяет создавать содержимое и распечатывать его на одной или нескольких страницах.flash.events:EventDispatcher Класс PrintJob позволяет создавать содержимое и распечатывать его на одной или нескольких страницах. Этот класс позволяет прорисовывать для пользователя содержимое, которое является видимым, отображается динамически или находится вне экрана, открывать для пользователей одно диалоговое окно «Печать» и печатать немасштабированный документ с пропорциями, соответствующими пропорциям содержимого. Эта возможность особенно полезна для прорисовки и печати динамического содержимого, например содержимого баз данных и динамического текста.

Поддержка в мобильных браузерах: этот класс не поддерживается в мобильных браузерах.

Поддержка в профилях 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 исключение при выполнении.

Следующий пример демонстрирует основы печати. Создается новый объект 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 используется для создания небольшого документа и последующей отправки его на принтер. Это можно сделать, выполнив следующие действия:
  1. Объявляются две переменные типа Sprite с названиями sheet1 и sheet2.
  2. Вызывается метод init(), который назначает новый экземпляр Sprite обеим переменным sheet1 и sheet2, а затем вызывается метод createSheet().
  3. Метод createSheet() выполняет следующие действия:
    1. Передаваемый объект Sprite используется для создания прямоугольника со светло-серой заливкой, черной рамкой толщиной в один пиксель, шириной в 100 пикселей и высотой в 200 пикселей, с координатами x = 0, y = 0.
    2. Создается новый объект TextField с именем txt и такими же размерами, что и объект Sprite, для свойства wordWrap устанавливается значение true, а для текстового свойства в качестве аргумента для createSheet() устанавливается «Строка передана».
    3. Если определено значение для переданного аргумента объекта, создайте новый экземпляр Sprite с именем img, который используется для отображения белого прямоугольника, используя свойства координат и размеров переданного объекта. Этот белый прямоугольник добавляется к списку отображения объекта Sprite с помощью метода addChild().
    4. Объект TextField с названием txt добавляется к списку отображения объекта Sprite с помощью метода addChild().
  4. Выполняется обратный переход в конструктор, а затем вызывается разрешенный (незакомментированный) метод печати. Поскольку методы очень похожи, далее описан только один из них printOnePerPage().
  5. Метод printOnePerPage() выполняет следующие действия:
    1. Объявляется новый объект PrintJob с именем pj и pagesToPrint в качестве объекта uint.
    2. Открывается предусмотренное в операционной системе диалоговое окно «Печать», выполняется ожидание, пока пользователь не нажмет кнопку «OK».
    3. Проверяется ориентация, и если выбрана альбомная ориентация, выдается сообщение об ошибке и выполнение операции завершается.
    4. Настраивается высота и ширина страницы для sheet1 и sheet2.
    5. Объекты sheet1 и sheet2 отправляются в диспетчер очереди печати принтера с помощью метода addPage().
    6. Если число страниц для печати больше нуля, выполняется печать всех помещенных в очередь печати страниц.
  6. Метод 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; } } }
Следующий пример демонстрирует дополнительные функции печати. В примере инициализируются настройки PrintJob для числа экземпляров, размера бумаги (legal) и ориентации страницы (альбомная). Сначала вызывается диалоговое окно «Параметры страницы», затем запускается задание печати путем вызова диалогового окне «Печать». 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; } } }
PrintJob Создает объект PrintJob, который можно использовать для печати одной или нескольких страниц. Во Flash Player и AIR до версии AIR 2 выдается исключение, если еще активен другой экземпляр PrintJob. IllegalOperationErrorflash.errors:IllegalOperationError Создает объект 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.

PrintJob.addPage()PrintJob.send()PrintJob.start()
addPage Отправляет заданный объект Sprite в диспетчер очереди печати принтера в виде одной страницы.Выдается исключение, если не был вызван метод start() или пользователь отменяет задание печати ErrorErrorspriteflash.display:SpriteОбъект Sprite с содержимым для печати. printAreaflash.geom:Rectanglenull Прямоугольный объект, указывающий область для печати.

Значения ширины и высоты прямоугольника задаются в пикселях. Принтер использует точки в качестве единиц измерения для печати. Точки имеют фиксированный физический размер (1/72 дюйма), но размер пикселя на экране зависит от разрешения конкретного экрана. Поэтому коэффициент преобразования между пикселями и точками зависит от параметров принтера и масштабирования объекта Sprite. Немасштабированный объект Sprite, имеющий ширину 72 пиксела, печатается с шириной 1 дюйм, при этом одна точка будет равна одному пикселу, независимо от разрешения экрана.

Можно использовать следующие соответствия для преобразования дюймов или сантиметров в твипы или точки (твип равен 1/20 части точки):

  • 1 точка = 1/72 дюйма = 20 твипов
  • 1 дюйм = 72 пунктам = 1440 твипам
  • 1 см = 567 твипам

Если параметр printArea пропущен или неверно передан, распечатывается вся область параметра sprite.

Если не требуется указывать значение для параметра printArea, но необходимо значение для параметров options или frameNum, укажите null в качестве значения для printArea.

optionsflash.printing:PrintJobOptionsnullДополнительный параметр, который указывает на необходимость выполнять печать в векторном или растровом формате. По умолчанию установлено значение null, которое соответствует запросу на печать в векторном формате. Чтобы распечатать объект sprite в растровом формате, установите для свойства printAsBitmap объекта rintJobOptions значение true. Не забывайте о следующих рекомендациях, когда определяете, устанавливать ли для свойства printAsBitmap значение true.
  • Если распечатываемое содержимое содержит растровое изображение, установите для свойства printAsBitmap значение true, чтобы можно было включить альфа-прозрачность и какие-либо цветовые эффекты.
  • Если в содержимом нет растровых изображений, пропустите данный параметр, чтобы распечатать содержимое в высококачественном векторном формате.

Если параметр options пропущен или передан неверно, используется векторная печать. Если не требуется указывать значение для параметра options, но необходимо значение для параметра frameNum, укажите null в качестве значения для options.

frameNumint0Необязательный объект Number, который позволяет указать, какой кадр объекта MovieClip необходимо напечатать. Передача свойства frameNum не позволяет вызвать код ActionScript для этого кадра. Если этот параметр пропущен, а параметр sprite содержит объект MovieClip, печатается текущий кадр в sprite.
Отправляет заданный объект 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, происходит преобразование векторных изображений в растровые.

PrintJob.send()PrintJob.start()Класс DisplayObject
selectPaperSize Установите формат бумаги.если параметру paperSize задано значение, не определенное в классе PaperSize. ArgumentErrorArgumentErrorpaperSizeStringФормат бумаги, который должен использоваться для последующих страниц задания печати. Установите формат бумаги. Допустимые значения для параметра paperSize перечислены в качестве констант в классе PaperSize. Вызов этого метода изменяет настройки печати так же, как пользователь задает размер бумаги в диалоговых окнах «Параметры страницы» или «Печать».

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

import flash.printing.PrintJob; import flash.printing.PaperSize; var myPrintJob:PrintJob = new PrintJob(); myPrintJob.selectPaperSize(PaperSize.ENV_10);
PaperSizePrintJob.send()
send Отправляет на принтер страницы, переданные в диспетчер печати, после успешных вызовов методов start() или start2() и addPage(). Отправляет на принтер страницы, переданные в диспетчер печати, после успешных вызовов методов 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(); }
PrintJob.addPage()PrintJob.start()PrintJob.start2()
showPageSetupDialog Отображает диалоговое окно «Параметры страницы» операционной системы, если это поддерживается текущая среда.если система не поддерживает вызов диалогового окна «Параметры страницы». Используйте свойство supportsPageSetupDialog, чтобы определить, поддерживается ли отображение окна «Параметры страницы». IllegalOperationErrorflash.errors:IllegalOperationErrorесли активно какое-либо задание печати (включая текущее). IllegalOperationErrorflash.errors:IllegalOperationErrorВозвращает значение true, если пользователь нажимает кнопку «ОК» в диалоговом окне «Параметры страницы». Это обозначает, что некоторые свойства PrintJob, могли измениться. Возвращает значение false, если пользователь нажимает кнопку «Отмена» в диалоговом окне «Параметры страницы». Boolean Отображает диалоговое окно «Параметры страницы» операционной системы, если это поддерживается текущая среда. Используйте свойство supportsPageSetupDialog, чтобы определить, поддерживается ли отображение окна «Параметры страницы». import flash.printing.PrintJob; var myPrintJob:PrintJob = new PrintJob(); if (myPrintJob.supportsPageSetupDialog) { myPrintJob.showPageSetupDialog(); } PrintJob.supportsPageSetupDialogstart2 По выбору может открывать диалоговое окно «Печать» операционной системы, запускать подкачку и при возможности изменять доступные только для чтения значения свойств PrintJob.Если в данный момент отображается окно «Параметры печати» или активно другое задание печати. IllegalOperationErrorflash.errors:IllegalOperationErrorИмеет значение true, если пользователь нажимает кнопку «ОК» при появлении диалогового окна «Печать» или если это окно не появляется и не возникает ошибки; имеет значение false, если пользователь нажимает кнопку «Отмена» или если возникает ошибка. BooleanuiOptionsflash.printing:PrintUIOptionsnullОбъект, который определяет параметры, отображаемые в диалоговом окне «Печать» для пользователя. Если параметр showPrintDialog имеет значение false, это значение игнорируется. showPrintDialogBooleantrueОпределяет, показывается ли пользователю диалоговое окно «Печать» перед запуском задания печати. По выбору может открывать диалоговое окно «Печать» операционной системы, запускать подкачку и при возможности изменять доступные только для чтения значения свойств 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);
PrintJob.addPage()PrintJob.send()
start Выводит на экран системное диалоговое окно «Печать» и начинает передачу задания диспетчеру печати.в AIR 2 или более поздних версиях, если в данный момент активен другой экземпляр PrintJob. IllegalOperationErrorflash.errors:IllegalOperationErrorУстанавливается значение true, если пользователь нажал кнопку «ОК», когда открылось диалоговое окно «Печать»; а значение false, если была нажата кнопка «Отмена». Boolean Выводит на экран системное диалоговое окно «Печать» и начинает передачу задания диспетчеру печати. Диалоговое окно «Печать» позволяет пользователю изменять параметры печати. Если метод PrintJob.start() успешно выполняется (пользователь нажимает кнопку «ОК» в диалоговом окне «Печать»), то следующие свойства заполняются значениями, соответствующими параметрам печати, установленным пользователем. СвойствоТипЕдиницыПримечанияPrintJob.paperHeightNumberПунктыОбщая высота страницы.PrintJob.paperWidthNumberПунктыОбщая ширина страницы.PrintJob.pageHeightNumberПунктыВысота фактически печатаемой области на странице; все установленные пользователем границы игнорируются.PrintJob.pageWidthNumberПунктыШирина фактически печатаемой области на странице; любые установленные пользователем границы игнорируются.PrintJob.orientationStringportrait (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()
PrintJob.addPage()PrintJob.send()
terminate Сообщает, что задание печати необходимо прервать без отправки. Сообщает, что задание печати необходимо прервать без отправки. Используйте этот метод, когда задание печати уже инициировано вызовом start() или start2(), но в данный момент неуместно отправлять страницы принтеру. Как правило, метод terminate() используется только для исправления ошибок.

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

active Указывает, активно ли в данный момент задание печати.Boolean Указывает, активно ли в данный момент задание печати. Задание печати является активным (свойство имеет значение true) в любом из двух случаев.
  • В данный момент отображается диалоговое окно «Параметры страницы» или «Печать».
  • Метод start() или start2() вызывался и возвратил значение true, и не вызывался метод send() или terminate().

Если это свойство имеет значение true и вызывается метод showPageSetupDialog(), start() или start2(), среда выполнения выдает исключение.

PrintJob.start()PrintJob.start2()PrintJob.send()PrintJob.terminate()
copies Число экземпляров, которое система печати печатает для всех страниц, впоследствии добавляемых в задание печати.int Число экземпляров, которое система печати печатает для всех страниц, впоследствии добавляемых в задание печати. Это значение указывает число экземпляров, введенное пользователем в диалоговом окне «Печать» операционной системы. Если в диалоговом окне «Печать» не отображается число экземпляров или если это окно не выводится, используется значение 1 (если оно не изменено кодом приложения). firstPage Номер первой страницы диапазона, введенный пользователем в системном диалоговом окне «Печать».int Номер первой страницы диапазона, введенный пользователем в системном диалоговом окне «Печать». Это свойство имеет нулевое значение, если пользователь запрашивает печать всех страниц, если диапазон страниц не отображался в диалоговом окне «Печать» или если это окно не выводилось. isColor Указывает, какой режим использует выбранный принтер с текущими настройками печати: цветной (true) или градации серого (false).Boolean Указывает, какой режим использует выбранный принтер с текущими настройками печати: цветной (true) или градации серого (false).

Если не удается определить режим, используется значение true.

isSupported Указывает, поддерживает ли текущая платформа класс PrintJob: да (true) или нет (false).Boolean Указывает, поддерживает ли текущая платформа класс PrintJob: да (true) или нет (false). jobName Имя или заголовок задания печати.Stringесли код пытается установить свойство, когда свойство active имеет значение true. IllegalOperationErrorflash.errors:IllegalOperationError<code>null</code> Имя или заголовок задания печати. Имя задания обычно используется операционной системой как заголовок задания в очереди печати или как имя по умолчанию для задания, которое печатается в файл.

Если еще не вызывался метод start() или start2() и свойство не задано, то ему задается значение null.

Для каждого задания печати, выполняемого с помощью экземпляра PrintJob, задайте это свойство до вызова метода start() или start2().

lastPage Номер последней страницы диапазона, введенный пользователем в системном диалоговом окне «Печать».int Номер последней страницы диапазона, введенный пользователем в системном диалоговом окне «Печать». Это свойство имеет нулевое значение, если пользователь запрашивает печать всех страниц, если диапазон страниц не отображался в диалоговом окне «Печать» или если это окно не выводилось. maxPixelsPerInch Физическое разрешение выбранного принтера, в пикселах на дюйм.Number Физическое разрешение выбранного принтера, в пикселах на дюйм. Это значение вычисляется в соответствии с текущими настройками печати в операционной системе.

Если определить разрешение не удается, используется значение по умолчанию. Значение по умолчанию — 600 пикс./дюйм в ОС Linux и 360 пикс./дюйм в ОС Mac OS. В ОС Windows разрешение принтера всегда доступно, поэтому значение по умолчанию не требуется.

orientation Ориентация изображения при печати.String Ориентация изображения при печати. Допустимые значения определены как константы в классе PrintJobOrientation.

Примечание. В AIR 2 и более поздних версиях это свойство можно установить до начала печати, чтобы задать ориентацию по умолчанию в диалоговых окнах «Параметры страницы» и «Печать». Установите это свойство в процессе выполнения задания печати (после вызова метода start() или start2(), чтобы задать ориентацию для диапазона страниц в текущем задании.

Класс PrintJobOrientation
pageHeight Высота самой большой области, которую можно расположить по центру фактической области печати на странице (в пунктах).int Высота самой большой области, которую можно расположить по центру фактической области печати на странице (в пунктах). Любые границы, установленные пользователем, игнорируются. Это свойство доступно только после того, как был вызван метод PrintJob.start().

Примечание. В AIR 2 и более поздних версиях это свойство игнорируется. Используйте вместо него свойство printableArea, которое измеряет область печати в дробных пунктах и точно описывает области печати, смещенные относительно центра.

PrintJob.printableArea
pageWidth Ширина самой большой области, которую можно расположить по центру фактической области печати на странице (в пунктах).int Ширина самой большой области, которую можно расположить по центру фактической области печати на странице (в пунктах). Любые границы, установленные пользователем, игнорируются. Это свойство доступно только после того, как был вызван метод PrintJob.start().

Примечание. В AIR 2 и более поздних версиях это свойство игнорируется. Используйте вместо него свойство printableArea, которое измеряет область печати в дробных пунктах и точно описывает области печати, смещенные относительно центра.

PrintJob.printableArea
paperArea Границы материала для печати в принтере, в пунктах.flash.geom:Rectangle Границы материала для печати в принтере, в пунктах. Это значение использует ту же систему координат, что и в последующих вызовах метода addPage(). paperHeight Общая высота бумаги (в пунктах).int Общая высота бумаги (в пунктах). Это свойство доступно только после того, как был вызван метод PrintJob.start().

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

PrintJob.paperArea
paperWidth Общая ширина бумаги (в пунктах).int Общая ширина бумаги (в пунктах). Это свойство доступно только после того, как был вызван метод PrintJob.start().

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

PrintJob.paperArea
printableArea Границы области печати материала в принтере, в пунктах.flash.geom:Rectangle Границы области печати материала в принтере, в пунктах. Это значение использует ту же систему координат, что и в последующих вызовах метода addPage(). printer Получает или задает принтер для выполнения текущего задания печати.String Получает или задает принтер для выполнения текущего задания печати. Объект 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() не дают результатов.

printers Предоставляет список доступных принтеров в виде строковых значений имен. Предоставляет список доступных принтеров в виде строковых значений имен. Список не вычисляется предварительно, он генерируется в момент вызова функции. Если нет доступных принтеров или система не поддерживает печать, используется значение null. Если система поддерживает печать, но не может вернуть список принтеров, в качестве значения используется объект Vector с одним элементом (его свойство length имеет значение 1). В этом случае единственный элемент содержит действительное имя принтера, либо имя по умолчанию, если невозможно определить имя текущего принтера. supportsPageSetupDialog Указывает, поддерживает ли текущая среда выполнения Flash отображение отдельного диалогового окна «Параметры страницы».Boolean Указывает, поддерживает ли текущая среда выполнения Flash отображение отдельного диалогового окна «Параметры страницы». Если это свойство имеет значение true, можно вызвать метод showPageSetupDialog(), чтобы вывести системное диалоговое окно «Параметры страницы». PrintJob.showPageSetupDialog()
PrintJobOrientation Этот класс содержит значения, используемые свойством PrintJob.orientation для позиционирования изображения на печатаемой странице.Object Этот класс содержит значения, используемые свойством PrintJob.orientation для позиционирования изображения на печатаемой странице. PrintJob.orientationLANDSCAPE Горизонтальная (альбомная) ориентация изображения для печати.landscapeString Горизонтальная (альбомная) ориентация изображения для печати. Эта константа используется со свойством PrintJob.orientation. Используется синтаксис PrintJobOrientation.LANDSCAPE. PrintJob.orientationPORTRAITPORTRAIT Вертикальная (книжная) ориентация изображения для печати.portraitString Вертикальная (книжная) ориентация изображения для печати. Эта константа используется со свойством PrintJob.orientation. Используется синтаксис PrintJobOrientation.PORTRAIT. PrintJob.orientationLANDSCAPEPaperSize Этот класс предоставляет доступные значения для параметра paperSize метода PrintJob.selectPaperSize().Object Этот класс предоставляет доступные значения для параметра paperSize метода PrintJob.selectPaperSize(). Каждая константа представляет формат бумаги, используемой для печати страницы.

В следующей таблице приводятся приблизительные размеры для каждого типа бумаги. Размеры указаны приблизительно, так как они незначительно варьируются в зависимости от драйвера принтера. Например, ширина бумаги A4 может составлять 595,0 595,2, 595,22 или 595,28 пунктов в зависимости от драйвера.

ЗначениеРазмер в пунктахA4595 x 842A5420 x 595A6297 x 420CHOUKEI3GOU340 x 666CHOUKEI4GOU298 x 666ENV_10297 x 684ENV_B5499 x 709ENV_C5459 x 649ENV_DL312 x 624ENV_MONARCH279 x 540ENV_PERSONAL261 x 468EXECUTIVE522 x 756FOLIO612 x 936JIS_B5516 x 729LEGAL612 x 1008LETTER612 x 792STATEMENT396 x 612
PrintJob.selectPaperSize()A4 A4 a4String A4 A5 A5 a5String A5 A6 A6 a6String A6 CHOUKEI3GOU Японский конверт choukei 3 gou choukei3gouString Японский конверт choukei 3 gou CHOUKEI4GOU Японский конверт choukei 4 gou choukei4gouString Японский конверт choukei 4 gou ENV_10 Конверт Legal env_10String Конверт Legal ENV_B5 Конверт B5 env_b5String Конверт B5 ENV_C5 Конверт C5 env_c5String Конверт C5 ENV_DL Конверт DL env_dlString Конверт DL ENV_MONARCH Конверт Monarch env_monarchString Конверт Monarch ENV_PERSONAL Конверт Personal env_personalString Конверт Personal EXECUTIVE Формат Executive executiveString Формат Executive FOLIO Формат Folio folioString Формат Folio JIS_B5 Японский B5 jis_b5String Японский B5 LEGAL Традиционный формат Legal legalString Традиционный формат Legal LETTER Традиционный формат Letter letterString Традиционный формат Letter STATEMENT Формат Statement statementString Формат Statement