Flex - Suporte de Impressão
Flex oferece uma aula especial FlexPrintJob para imprimir objetos flex.
FlexPrintJob pode ser usado para imprimir um ou mais objetos Flex, como um formulário ou container VBox.
FlexPrintJob imprime o objeto e todos os objetos que ele contém.
Os objetos podem ser toda ou parte da interface exibida.
Os objetos podem ser componentes que formatam dados especificamente para impressão.
A classe FlexPrintJob permite dimensionar a saída para caber na página.
A classe FlexPrintJob usa automaticamente várias páginas para imprimir um objeto que não cabe em uma única página.
A classe FlexPrintJob faz com que o sistema operacional exiba uma caixa de diálogo Imprimir. Você não pode imprimir sem alguma ação do usuário.
Prepare e envie um trabalho de impressão
Você imprime a saída preparando e enviando um trabalho de impressão. Vamos criar uma instância da classe FlexPrintJob
var printJob:FlexPrintJob = new FlexPrintJob();
Inicie o trabalho de impressão
printJob.start();
O Flex fará com que o sistema operacional exiba uma caixa de diálogo Imprimir. Adicione um ou mais objetos ao trabalho de impressão e especifique como escalá-los
printJob.addObject(myObject, FlexPrintJobScaleType.MATCH_WIDTH);
Cada objeto começa em uma nova página. Envie o trabalho de impressão para a impressora
printJob.send();
Exemplo de impressão
Degrau | Descrição |
---|---|
1 | Crie um projeto com um nome HelloWorld em um pacote com.tutorialspoint.client conforme explicado no capítulo Flex - Criar aplicativo . |
2 | Modifique HelloWorld.mxml conforme explicado abaixo. Mantenha o resto dos arquivos inalterados. |
3 | Compile e execute o aplicativo para ter certeza de que a lógica de negócios está funcionando de acordo com os requisitos. |
A seguir está o conteúdo do arquivo 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>
Assim que estiver pronto com todas as alterações feitas, vamos compilar e executar o aplicativo no modo normal como fizemos no capítulo Flex - Criar aplicativo . Se tudo estiver bem com o seu aplicativo, ele produzirá o seguinte resultado: [ ]
Clique no botão imprimir e você pode ver a impressão da grade de dados mostrada abaixo.