Flex - Soporte de impresión
Flex proporciona una clase especial FlexPrintJob para imprimir objetos flexibles.
FlexPrintJob se puede utilizar para imprimir uno o más objetos Flex, como un formulario o un contenedor VBox.
FlexPrintJob imprime el objeto y todos los objetos que contiene.
Los objetos pueden ser todo o parte de la interfaz mostrada.
Los objetos pueden ser componentes que formatean datos específicamente para imprimir.
La clase FlexPrintJob le permite escalar la salida para que se ajuste a la página.
La clase FlexPrintJob utiliza automáticamente varias páginas para imprimir un objeto que no cabe en una sola página.
La clase FlexPrintJob hace que el sistema operativo muestre un cuadro de diálogo Imprimir. No puede imprimir sin alguna acción del usuario.
Preparar y enviar un trabajo de impresión
Imprime la salida preparando y enviando un trabajo de impresión. Creemos una instancia de la clase FlexPrintJob
var printJob:FlexPrintJob = new FlexPrintJob();
Iniciar el trabajo de impresión
printJob.start();
Flex hará que el sistema operativo muestre un cuadro de diálogo Imprimir. Agregue uno o más objetos al trabajo de impresión y especifique cómo escalarlos
printJob.addObject(myObject, FlexPrintJobScaleType.MATCH_WIDTH);
Cada objeto comienza en una nueva página. Envíe el trabajo de impresión a la impresora
printJob.send();
Ejemplo de impresión
Paso | Descripción |
---|---|
1 | Cree un proyecto con un nombre HelloWorld en un paquete com.tutorialspoint.client como se explica en el capítulo Flex - Crear aplicación . |
2 | Modifique HelloWorld.mxml como se explica a continuación. Mantenga el resto de los archivos sin cambios. |
3 | Compile y ejecute la aplicación para asegurarse de que la lógica empresarial funcione según los requisitos. |
A continuación se muestra el contenido del archivo mxml modificado 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 vez que esté listo con todos los cambios realizados, compilemos y ejecutemos la aplicación en modo normal como hicimos en el capítulo Flex - Crear aplicación . Si todo está bien con su aplicación, producirá el siguiente resultado: [ Pruébelo en línea ]
Haga clic en el botón Imprimirme y podrá ver la impresión de la cuadrícula de datos que se muestra a continuación.