Impressão no Flex - FlexPrintJob
Hoje o assunto é muito importante para que deseja fazer impressões de relatórios.
Existe uma class chamada FlexPrintJob que resolve isso para você. Vamos mostrar como deve ser feito.
/*ActionScript */
...
import mx.printing.FlexPrintJob;
var p:FlexPrintJob = new FlexPrintJob();
public function imprimirGrafico() : void {
if (p.start()) {
p.addObject(areachart1);
p.send();
}
}
....
<mx:AreaChart x="10" y="122" id="areachart1" height="128" width="360">
<mx:series>
<mx:AreaSeries displayName="Series 1" yField=""/>
</mx:series>
</mx:AreaChart>
<mx:Button click="imprimirGrafico()" x="145" y="58" label="Imprimir!"/>
/* Fim Action Script */
Vamos agora explicar:
você instanciou um objeto p do tipo FlexPrintJob.
no momento em que você chama o p.start() aparece a caixa de impressão, caso você cancele o p.start() retornará false. Se você clica em "Imprimir" o p.start() irá retornar true, continuando assim a execução do código.
p.addObject(areachart1) , você está adicionando somente o gráfico para impressão. Nesse caso, eu tenho na minha aplicação um objeto areachart1 do tipo AreaChart. Mas você pode colocar qualquer objeto que implemente a interface IUIComponent .
Então no momento que o usuário clicar no botão imprimir, a função imprimirGrafico() será chamada, e fazendo assim a impressão do gráfico que está na tela.
Até a próxima!


