3 Formas de imprimir en flex
1.- Primero pueden ocupar el mismo Flex con las librerias que trea FlexJob y Print
2.- bien la solucion desde el cliente , es una libreria que se ALIVE PDF por cierto muy buena
un ejemplo de esto es asi
Código :
public function crearPDF() { myPDF= new PDF( Orientation.LANDSCAPE, Unit.MM, Size.LEGAL); myPDF.setDisplayMode( Display.FULL_PAGE, Layout.SINGLE_PAGE ); var newPage:Page = new Page ( Orientation.LANDSCAPE, Unit.MM, Size.LEGAL ); myPDF.addPage( newPage ); myPDF.setXY(10, 50); myPDF.textStyle(new RGBColor (0xADFF2F)); myPDF.setFont(FontFamily.ARIAL , Style.NORMAL, 12); var gridColumnid:GridColumn = new GridColumn("Id", "id", 6, Align.CENTER, Align.LEFT); var gridColumnNombre:GridColumn = new GridColumn("Nombre", "nombre", 20, Align.CENTER, Align.LEFT); var gridColumnEdad:GridColumn = new GridColumn("Edad", "edad", 10, Align.LEFT, Align.LEFT); var ga:GridColumn = new GridColumn("A", "a", 20, Align.CENTER, Align.LEFT); var gb:GridColumn = new GridColumn("B", "b", 20, Align.CENTER, Align.LEFT); var gc:GridColumn = new GridColumn("C", "c", 20, Align.LEFT, Align.LEFT); var gd:GridColumn = new GridColumn("D", "d", 20, Align.CENTER, Align.LEFT); var ge:GridColumn = new GridColumn("E", "e", 20, Align.CENTER, Align.LEFT); var gf:GridColumn = new GridColumn("F", "f", 20, Align.LEFT, Align.LEFT); var ColumnaPersona=new Array(gridColumnEdad,gridColumnid,gridColumnNombre,ga,gb,gc,gd,ge,gf); var Persona:ArrayCollection = new ArrayCollection (); Persona.addItem( { id: "1",nombre: "Yeethug", edad : "11",a : "11",b : "11",c : "11",d : "11",e : "11",f: "11"} ); var grid:Grid = new Grid (Persona.toArray(),0, 0, new RGBColor (0xADFF2F),new RGBColor (0xCCCC99),new RGBColor (0), true, new RGBColor (0xFF0000),0,Joint.BEVEL); grid.columns=ColumnaPersona; myPDF.addGrid(grid,5,5); this.salvar(); } ]]>
3.- bien la tercera opcion es la del lado del sevidor ,esta es usando itext para java con weborb simplemente crean una clase en java que haga el pdf por ejemplo asi desde el mxml
Código :
public function init():void{ remoteObject = new RemoteObject("GenericDestination"); remoteObject.source = "com.controlador.Prueba"; remoteObject.createPDF.addEventListener("result",createPDFHandler); } public function createPDF( responder:IResponder = null ):void { var asyncToken:AsyncToken = remoteObject.createPDF(); if( responder != null ) asyncToken.addResponder( responder ); } private function createPDFHandler(event:ResultEvent): void { var creado:int = event.result as int; var urlDescarga:String=""; var request:URLRequest; urlDescarga = "http://localhost:8080/recursos/EnArriendo.pdf"; request = new URLRequest(urlDescarga); navigateToURL(request, '_blank'); }
y ahora desde su back end hacen esto , construyen la clase y la suben el jar y listo
Código :
ublic int createPDF() { Document d = new Document(PageSize.A4); try { PdfWriter.getInstance(d, new FileOutputStream("C:/recursos" + "\\EnArriendo.pdf")); d.open(); d.addCreator("Binod by Demo.java"); d.addAuthor("Binod Suman"); d.addTitle("First PDF By Binod"); PdfPTable table = new PdfPTable(2); PdfPCell cell = new PdfPCell(new Paragraph("Student Details")); cell.setHorizontalAlignment(Element.ALIGN_CENTER); cell.setBackgroundColor(new Color(20, 105, 160)); cell.setColspan(2); table.addCell(cell); table.addCell("Student Name"); table.addCell("Roll No."); table.addCell("Binod"); table.addCell("110"); table.addCell("Pramod"); table.addCell("120"); d.add(table); d.close(); return 1; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return 1; }
luego agregan la libreria core itext a su proyecto en jar suben a weborb y listo! ya tiene dos opciones super buenas
para imprimir , ademas emulan al pdfgenerator del propio weborb..BIEN ESPERO QUE LES SIRVA A TODOS
SIGAN ASI BUENA PROGRAMACION PARA TODOS. NOS VEMOS