Flex - Supporto per la stampa
Flex offre una classe speciale FlexPrintJob per stampare oggetti flessibili.
FlexPrintJob può essere utilizzato per stampare uno o più oggetti Flex, come un contenitore Form o VBox.
FlexPrintJob stampa l'oggetto e tutti gli oggetti che contiene.
Gli oggetti possono essere tutti o parte dell'interfaccia visualizzata.
Gli oggetti possono essere componenti che formattano i dati specificamente per la stampa.
La classe FlexPrintJob consente di ridimensionare l'output per adattarlo alla pagina.
La classe FlexPrintJob utilizza automaticamente più pagine per stampare un oggetto che non si adatta a una singola pagina.
La classe FlexPrintJob fa sì che il sistema operativo visualizzi una finestra di dialogo Stampa. Non è possibile stampare senza un'azione da parte dell'utente.
Prepara e invia un lavoro di stampa
Si stampa l'output preparando e inviando un lavoro di stampa. Creiamo un'istanza della classe FlexPrintJob
var printJob:FlexPrintJob = new FlexPrintJob();
Avvia il lavoro di stampa
printJob.start();
Flex farà sì che il sistema operativo visualizzi una finestra di dialogo Stampa. Aggiungere uno o più oggetti al lavoro di stampa e specificare come ridimensionarli
printJob.addObject(myObject, FlexPrintJobScaleType.MATCH_WIDTH);
Ogni oggetto inizia su una nuova pagina. Invia il lavoro di stampa alla stampante
printJob.send();
Esempio di stampa
Passo | Descrizione |
---|---|
1 | Crea un progetto con un nome HelloWorld sotto un pacchetto com.tutorialspoint.client come spiegato nel capitolo Flex - Crea applicazione . |
2 | Modifica HelloWorld.mxml come spiegato di seguito. Mantieni il resto dei file invariato. |
3 | Compilare ed eseguire l'applicazione per assicurarsi che la logica aziendale funzioni secondo i requisiti. |
Di seguito è riportato il contenuto del file mxml modificato src/com.tutorialspoint/HelloWorld.mxml.
<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx"
width = "100%" height = "100%"
minWidth = "500" minHeight = "500"
initialize = "application_initializeHandler(event)">
<fx:Style source = "/com/tutorialspoint/client/Style.css" />
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.printing.FlexPrintJob;
import mx.printing.FlexPrintJobScaleType;
protected function btnClickMe_clickHandler(event:MouseEvent):void {
// Create an instance of the FlexPrintJob class.
var printJob:FlexPrintJob = new FlexPrintJob();
// Start the print job.
if (printJob.start() != true) return;
// Add the object to print. Do not scale it.
printJob.addObject(myDataGrid, FlexPrintJobScaleType.NONE);
// Send the job to the printer.
printJob.send();
}
protected function application_initializeHandler(event:FlexEvent):void {
lblHeader.text = "My Hello World Application";
}
]]>
</fx:Script>
<s:BorderContainer width = "500" height = "500" id = "mainContainer"
styleName = "container">
<s:VGroup width = "100%" height = "100%" gap = "50"
horizontalAlign = "center"
verticalAlign = "middle">
<s:Label id = "lblHeader" fontSize = "40" color = "0x777777"
styleName = "heading" />
<mx:DataGrid id = "myDataGrid" width = "300">
<mx:dataProvider>
<fx:Object Product = "Flex" Code = "1000" />
<fx:Object Product = "GWT" Code = "2000" />
<fx:Object Product = "JAVA" Code = "3000" />
<fx:Object Product = "JUnit" Code = "4000" />
</mx:dataProvider>
</mx:DataGrid>
<s:Button label = "Print Me!" id = "btnClickMe"
click = "btnClickMe_clickHandler(event)"
styleName = "button" />
</s:VGroup>
</s:BorderContainer>
</s:Application>
Una volta che sei pronto con tutte le modifiche apportate, compiliamo ed eseguiamo l'applicazione in modalità normale come abbiamo fatto nel capitolo Flex - Crea applicazione . Se tutto va bene con la tua applicazione, produrrà il seguente risultato: [ Provalo online ]
Clicca sul pulsante stampami e puoi vedere la stampa della griglia dati mostrata sotto.