| Пакет | 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():NumberpageWidth | свойство |
pageWidth:Number [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версия продукта: | Flex 3 |
| Версии среды выполнения: | Flash Player 9, AIR 1.1 |
Ширина области печати на странице принтера; не включает установленные пользователем поля. Значение этого свойства устанавливается после получения результата вызова метода start().
Реализация
public function get pageWidth():NumberprintAsBitmap | свойство |
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):voidFlexPrintJob | () | Конструктор |
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
Скрыть унаследованные общедоступные свойства
Показать унаследованные общедоступные свойства