Package | mx.printing |
Classe | public class FlexPrintJob |
Héritage | FlexPrintJob Object |
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Propriété | Défini par | ||
---|---|---|---|
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
pageHeight : Number [lecture seule]
Hauteur de la zone imprimable sur la page d’impression ; n’inclut aucune marge définie par l’utilisateur. | FlexPrintJob | ||
pageWidth : Number [lecture seule]
Largeur de la zone imprimable sur la page d’impression ; n’inclut aucune marge définie par l’utilisateur. | FlexPrintJob | ||
printAsBitmap : Boolean
Indique si vous souhaitez imprimer le contenu du travail sous forme d’image bitmap (true) ou au format vectoriel (false). | FlexPrintJob |
Méthode | Défini par | ||
---|---|---|---|
Constructeur. | FlexPrintJob | ||
Ajoute un objet UIComponent à la liste des objets à imprimer. | FlexPrintJob | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Envoie les objets ajoutés à l’imprimante pour démarrer l’impression. | FlexPrintJob | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Initialise l’objet PrintJob. | FlexPrintJob | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
pageHeight | propriété |
pageHeight:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Hauteur de la zone imprimable sur la page d’impression ; n’inclut aucune marge définie par l’utilisateur. Elle est définie après le renvoi de la méthode start().
Implémentation
public function get pageHeight():Number
pageWidth | propriété |
pageWidth:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Largeur de la zone imprimable sur la page d’impression ; n’inclut aucune marge définie par l’utilisateur. Cette propriété est définie une fois la méthode start()
renvoyée.
Implémentation
public function get pageWidth():Number
printAsBitmap | propriété |
printAsBitmap:Boolean
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Indique si vous souhaitez imprimer le contenu du travail sous forme d’image bitmap (true
) ou au format vectoriel (false
). L’impression sous forme d’image bitmap prend en charge une sortie qui comprend une image bitmap avec transparence alpha ou effets de couleur. Si le contenu ne comporte pas d’images bitmap, omettez ce paramètre pour imprimer le contenu au format vectoriel qui est de qualité supérieure en définissant la propriété printAsBitmap
sur false
La valeur par défaut est true.
Implémentation
public function get printAsBitmap():Boolean
public function set printAsBitmap(value:Boolean):void
FlexPrintJob | () | Constructeur |
public function FlexPrintJob()
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Constructeur.
addObject | () | méthode |
public function addObject(obj:IUIComponent, scaleType:String = "matchWidth"):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Ajoute un objet UIComponent à la liste des objets à imprimer. Appelez cette méthode une fois la méthode start()
renvoyée. Chaque appel à cette méthode démarre une nouvelle page. Vous devez donc formater les objets en blocs de la taille d’une page. Vous pouvez utiliser la classe PrintDataGrid pour étendre une grille de données sur plusieurs pages.
Paramètres
obj:IUIComponent — Objet à imprimer.
| |
scaleType:String (default = "matchWidth ") — Technique de mise à l’échelle à utiliser pour contrôler la manière dont l’objet s’ajuste sur une ou plusieurs pages imprimées. Doit être l’une des valeurs constantes définies dans la classe FlexPrintJobScaleType.
|
Eléments de l’API associés
send | () | méthode |
public function send():void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Envoie les objets ajoutés à l’imprimante pour démarrer l’impression. Appelez cette méthode après avoir utilisé la méthode addObject()
pour ajouter des pages à imprimer.
start | () | méthode |
public function start():Boolean
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Initialise l’objet PrintJob. Affiche la boîte de dialogue d’impression du système d’exploitation. Flex définit les propriétés pageWidth
et pageHeight
une fois cet appel renvoyé.
Boolean — Renvoie true si l’utilisateur clique sur OK lorsque la boîte de dialogue d’impression s’affiche ou false s’il clique sur Annuler ou si une erreur se produit.
|
<?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, 09:30 AM Z