Пакет | mx.printing |
Класс | public class FlexPrintJob |
Наследование | FlexPrintJob Object |
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Свойство | Определено | ||
---|---|---|---|
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
pageHeight : Number [только для чтения]
Высота области печати на странице принтера; не включает установленные пользователем поля. | FlexPrintJob | ||
pageWidth : Number [только для чтения]
Ширина области печати на странице принтера; не включает установленные пользователем поля. | FlexPrintJob | ||
printAsBitmap : Boolean
Определяет, в каком формате должно быть распечатано содержимое задания: в растровом (true) или векторном (false). | FlexPrintJob |
Метод | Определено | ||
---|---|---|---|
Конструктор. | FlexPrintJob | ||
Добавляет объект UIComponent в список распечатываемых объектов. | FlexPrintJob | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Обеспечивает отправку добавленных объектов на принтер для запуска процесса печати. | FlexPrintJob | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Обеспечивает инициализацию объекта PrintJob. | FlexPrintJob | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object |
pageHeight | свойство |
pageHeight:Number
[только для чтения] Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Высота области печати на странице принтера; не включает установленные пользователем поля. Устанавливается после получения результата вызова метода start().
Реализация
public function get pageHeight():Number
pageWidth | свойство |
pageWidth:Number
[только для чтения] Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Ширина области печати на странице принтера; не включает установленные пользователем поля. Значение этого свойства устанавливается после получения результата вызова метода start()
.
Реализация
public function get pageWidth():Number
printAsBitmap | свойство |
printAsBitmap:Boolean
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Определяет, в каком формате должно быть распечатано содержимое задания: в растровом (true
) или векторном (false
). При печати в растровом формате поддерживаются выходные объекты, включающие растровое изображение с прозрачностью альфа-канала или цветовыми эффектами. Если содержимое не включает растровые изображения с прозрачностью альфа-канала или цветовыми эффектами, можно выполнить печать в векторном формате с более высоким качеством, установив значение false
для свойства printAsBitmap
.
Значением по умолчанию является true.
Реализация
public function get printAsBitmap():Boolean
public function set printAsBitmap(value:Boolean):void
FlexPrintJob | () | Конструктор |
public function FlexPrintJob()
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Конструктор.
addObject | () | метод |
public function addObject(obj:IUIComponent, scaleType:String = "matchWidth"):void
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Добавляет объект UIComponent в список распечатываемых объектов. Этот метод вызывается после получения результата вызова метода start()
. После каждого вызова этого метода создается новая страница, поэтому объекты должны быть отформатированы в пределах фрагментов, имеющих размеры страниц. Для охвата сетки данных на нескольких страницах можно использовать класс PrintDataGrid.
Параметры
obj:IUIComponent — Объект, который должен быть распечатан.
| |
scaleType:String (default = "matchWidth ") — Метод масштабирования, используемый для управления размещением объекта на одной или нескольких печатных страницах. Значением должно представлять собой одну из констант, определенных в классе FlexPrintJobScaleType.
|
Связанные элементы API
send | () | метод |
public function send():void
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Обеспечивает отправку добавленных объектов на принтер для запуска процесса печати. Этот метод должен быть вызван после применения метода addObject()
для добавления печатаемых страниц.
start | () | метод |
public function start():Boolean
Язык версии: | ActionScript 3.0 |
Версия продукта: | Flex 3 |
Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Обеспечивает инициализацию объекта PrintJob. Отображает диалоговое окно принтера операционной системы для пользователя. После получения результата вызова в среде Flex устанавливаются свойства pageWidth
и pageHeight
.
Boolean — Значение true устанавливается в том случае, если при появлении диалогового окна «Печать» пользователь нажал кнопку «OK», а значение false при нажатии кнопки «Отмена» или возникновении ошибки.
|
<?xml version="1.0"?> <!-- Custom control for the header area of the printed page. --> <s:VGroup name="FormPrintHeader" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" width="60%" horizontalAlign="right" > <s:Label text="This is a placeholder for first page contents"/> </s:VGroup>
<?xml version="1.0"?> <!-- Custom control for the footer area of the printed page. --> <s:VGroup name="FormPrintFooter" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" width="60%" horizontalAlign="right" > <!-- Declare and initialize the product total variable. --> <fx:Script> <![CDATA[ [Bindable] public var pTotal:Number = 0; ]]> </fx:Script> <s:Label text="Product Total: {pTotal}"/> </s:VGroup>
<?xml version="1.0"?> <!-- Custom control to print the Halo DataGrid control on multiple pages. --> <s:VGroup name="FormPrintView" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns="*"> <fx:Script> <![CDATA[ import mx.core.*; // Declare and initialize the variables used in the component. // The application sets the actual prodTotal value. [Bindable] public var pageNumber:Number = 1; [Bindable] public var prodTotal:Number = 0; // Control the page contents by selectively hiding the header and // footer based on the page type. public function showPage(pageType:String):void { if (pageType == "first" || pageType == "middle") { // Hide the footer. footer.includeInLayout = false; footer.visible = false; } if (pageType == "middle" || pageType == "last") { // The header won't be used again; hide it. header.includeInLayout = false; header.visible = false; } if (pageType == "last") { // Show the footer. footer.includeInLayout = true; footer.visible = true; } //Update the DataGrid layout to reflect the results. validateNow(); } ]]> </fx:Script> <!-- The template for the printed page, with the contents for all pages. --> <s:VGroup width="80%" horizontalAlign="left"> <s:Label text="Page {pageNumber}"/> </s:VGroup> <FormPrintHeader id="header" /> <!-- The data grid. The sizeToPage property is true by default, so the last page has only as many grid rows as are needed for the data. --> <mx:PrintDataGrid id="myDataGrid" width="60%" height="100%"> <!-- Specify the columns to ensure that their order is correct. --> <mx:columns> <mx:DataGridColumn dataField="Index" /> <mx:DataGridColumn dataField="Qty" /> </mx:columns> </mx:PrintDataGrid> <!-- Create a FormPrintFooter control and set its prodTotal variable. --> <FormPrintFooter id="footer" pTotal="{prodTotal}" /> </s:VGroup>
<?xml version="1.0"?> <!-- Main application to print a Halo DataGrid control on multiple pages. --> <s:Application name="PrintDataGridExample.mxml" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" initialize="initData();"> <fx:Script> <![CDATA[ import mx.printing.*; import mx.collections.ArrayCollection; import FormPrintView; import mx.core.FlexGlobals; // Declare variables and initialize simple variables. [Bindable] public var dgProvider:ArrayCollection; public var footerHeight:Number = 20; public var prodIndex:Number; public var prodTotal:Number = 0; // Data initialization. public function initData():void { // Create the data provider for the DataGrid control. dgProvider = new ArrayCollection; } // Fill the dgProvider ArrayCollection with the specified items. public function setdgProvider(items:int):void { prodIndex=1; dgProvider.removeAll(); for (var z:int=0; z<items; z++) { var prod1:Object = {}; prod1.Qty = prodIndex * 7; prod1.Index = prodIndex++; prodTotal += prod1.Qty; dgProvider.addItem(prod1); } } // The function to print the output. public function doPrint():void { var printJob:FlexPrintJob = new FlexPrintJob(); if (printJob.start()) { // Create a FormPrintView control as a child of the current view. var thePrintView:FormPrintView = new FormPrintView(); FlexGlobals.topLevelApplication.addElement(thePrintView); //Set the print view properties. thePrintView.width=printJob.pageWidth; thePrintView.height=printJob.pageHeight; thePrintView.prodTotal = prodTotal; // Set the data provider of the FormPrintView component's data grid // to be the data provider of the displayed data grid. thePrintView.myDataGrid.dataProvider = myDataGrid.dataProvider; // Create a single-page image. thePrintView.showPage("single"); // If the print image's data grid can hold all the provider's rows, // add the page to the print job. if (!thePrintView.myDataGrid.validNextPage) { printJob.addObject(thePrintView); } // Otherwise, the job requires multiple pages. else { // Create the first page and add it to the print job. thePrintView.showPage("first"); printJob.addObject(thePrintView); thePrintView.pageNumber++; // Loop through the following code until all pages are queued. while (true) { // Move the next page of data to the top of the print grid. thePrintView.myDataGrid.nextPage(); thePrintView.showPage("last"); // If the page holds the remaining data, or if the last page // was completely filled by the last grid data, queue it for printing. // Test if there is data for another PrintDataGrid page. if (!thePrintView.myDataGrid.validNextPage) { // This is the last page; queue it and exit the print loop. printJob.addObject(thePrintView); break; } else { // This is not the last page. Queue a middle page. thePrintView.showPage("middle"); printJob.addObject(thePrintView); thePrintView.pageNumber++; } } } // All pages are queued; remove the FormPrintView control to free memory. FlexGlobals.topLevelApplication.removeElement(thePrintView); } // Send the job to the printer. printJob.send(); } ]]> </fx:Script> <s:Panel title="DataGrid Printing Example" width="75%" height="75%" horizontalCenter="0" verticalCenter="0"> <s:VGroup left="10" right="10" top="10" bottom="10"> <mx:DataGrid id="myDataGrid" dataProvider="{dgProvider}"> <mx:columns> <mx:DataGridColumn dataField="Index"/> <mx:DataGridColumn dataField="Qty"/> </mx:columns> </mx:DataGrid> <s:Label width="100%" color="blue" text="Specify the number of lines and click Fill Grid first. Then you can click Print."/> <s:TextInput id="dataItems" text="35"/> <s:HGroup> <s:Button id="setDP" label="Fill Grid" click="setdgProvider(int(dataItems.text));"/> <s:Button id="printDG" label="Print" click="doPrint();"/> </s:HGroup> </s:VGroup> </s:Panel> </s:Application>
Tue Jun 12 2018, 11:34 AM Z