Comunidad de diseño web y desarrollo en internet online

Agregar Grilla AlivePDF, no funciona

Citar            
MensajeEscrito el 03 Nov 2010 07:30 am
Hola, estoy utilizando alivePDF, al momento de meter una grilla al PDF se congela o muere la aplicación:

Código Flex :

   public function generatePDF():void
         {
               var data:ArrayCollection=new ArrayCollection();
               data.addItem( { firstName : "Bob", lastName : "Groove", city : "Paris" } );
            data.addItem( { firstName : "Bob", lastName : "Wise", city : "Paris" } );
            data.addItem( { firstName : "Bob", lastName : "Wise", city : "Paris" } );
            data.addItem( { firstName : "Bob", lastName : "Wise", city : "Paris" } );
               
               var PrintData:Grid = new Grid(data.toArray(), 40, 100, new RGBColor (0xD7D7D7), new RGBColor (0xFFFFFF), true, new RGBColor(0x000000), 1, Joint.ROUND);
               
               var myPDF:PDF=new PDF(Orientation.LANDSCAPE, Unit.MM, Size.A4);
               myPDF.addPage();
            myPDF.addGrid(PrintData, 10, 10); //Aquí muere la aplicación
            myPDF.save(Method.REMOTE, "AlivePDF/create.php", Download.ATTACHMENT, "MyPDF.pdf");
          }


Utilizo adobe Flex Builder 3.0.2 y AlivePDF 0.1.5, en un servidor xampp, por lo tanto es una aplicación web.

PD: Puedo generar todo tipo de PDF, con texto, imaganes etc, pero las grillas no funcionan... :o

Saludos....

Por geminis19

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Nov 2010 08:12 pm
estas usand xammp lo mas seguro es que estes usando php , vacia el contenido hacia el servidor
genera el pdf estando en esa condición

Por xcom

Claber

530 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Nov 2010 08:26 pm

xcom escribió:

lo mas seguro es que estes usando php


Si, está usando php obviamente: "AlivePDF/create.php".

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 03 Nov 2010 09:36 pm
@xcom
Eso ya lo puedo hacer, el problema es al agregar una grilla con el metodo addGrid, en esa linea código se congela la aplicación...

saludos...

Por geminis19

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Nov 2010 11:52 pm
con java pasa exactamente lo mismo, como te dije anteriormente, deja que el lado del servidor se encargue de esa
tarea hay muchas librerias para php para construir tu pdf u otro con tus datos
recuerda que las capas deben estar lo más desacopladas posible, no vas a tener nunca un 100% ,eso es imposible
pero te vuelvo a insitir manda tus datos y crea el archivo para ser archivos que vas a imprimir. piensa en Flex como el pico
de tu aplicacion que solo ve el usario LA INTERFAZ GRAFICA NADA MÁS

Por xcom

Claber

530 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2010 12:44 am
Hola de nuevo, "solo interfaz gráfica", eso si que desaprovechar las caracteristicas que ofrece flex 3 XD, volviendo al tema, estuve haciadno unas modificaciones al código, dejo mxml completo:

Código ActionScript :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" viewSourceURL="srcview/index.html">
    <mx:Script>
        <![CDATA[
            
           import mx.collections.ArrayCollection;
           import org.alivepdf.saving.Download;
           import org.alivepdf.saving.Method;
           import org.alivepdf.layout.Size;
           import org.alivepdf.layout.Unit;
           import org.alivepdf.layout.Orientation;
           import org.alivepdf.fonts.FontFamily;
           import org.alivepdf.pdf.PDF;
           import org.alivepdf.data.Grid;
           import org.alivepdf.data.GridColumn;
           import org.alivepdf.colors.RGBColor;
           import org.alivepdf.drawing.Joint;
           import org.alivepdf.display.Display;
           import mx.controls.Alert;
   
           public function generatePDF():void
           {
                 var OrigenDeDatos:Array = new Array(); 
            OrigenDeDatos.push({dato1:"valor1", dato2:"valor2"}); 
            OrigenDeDatos.push({dato1:"valor3", dato2:"valor3"}); 
            OrigenDeDatos.push({dato1:"valor5", dato2:"valor6"});
                  
               var columna1:GridColumn = new GridColumn("Encabezado de columna1","dato1", 100); 
            var columna2:GridColumn = new GridColumn("Encabezado de columna2","dato2", 100); 
            var columnasDelGrid:Array = new Array(columna1, columna2);
            
                 var PrintData:Grid = new Grid(OrigenDeDatos, 40, 100, new RGBColor (0xD7D7D7), new RGBColor (0xFFFFFF), true, new RGBColor(0x000000));
               PrintData.columns=columnasDelGrid;
               
                 var myPDF:PDF=new PDF(Orientation.PORTRAIT, Unit.MM, Size.A4);
                 myPDF.addPage();
            myPDF.addGrid(PrintData, 10, 10);
            myPDF.save(Method.REMOTE, "AlivePDF/create.php", Download.ATTACHMENT, "MyPDF.pdf");
           }
            
        ]]>
    </mx:Script>
    
    <mx:Panel
        width="100%" height="100%" layout="absolute">
        <mx:Button
            id="guardarPdfButton"
            verticalCenter="-16" horizontalCenter="0"
            label="Guardar pdf"
            click="generatePDF()"/>        
        <!--<mx:Box
            direction="vertical" horizontalAlign="center"
            width="100%" height="100%">
            <mx:RichTextEditor
                id="textEditor"
                top="0" left="0"
                title="Escriba o pegue un texto en este area"
                />
            <mx:TextArea
                id="areaTexto"
                top="0" left="0" width="100%" height="100%"
                addedToStage="stage.focus = areaTexto;"/>
            <mx:Button
                id="guardarPdfButton"
                label="Guardar pdf"
                click="clickButtonHandler(event)"/>    
        </mx:Box>-->
    </mx:Panel>
    
</mx:Application>


Desde ya muchas gracias a todos los que ha respondido o estan por responder...

saludos...

Por geminis19

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2010 01:35 am
Hola de nuevo :lol:

Logre solucionar el problema :cool: lo mas chistoso de todo es que tuve que correr la aplicación en Explorer 8 :shock: , ya que este me muestra las exepciones arrojadas por actionScript... esta me dice que que establesca el Font Family y stilos del texto antes de agregar el Grid, entonces ise eso :lol:

Ahora funciona ok

Código ActionScript :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" viewSourceURL="srcview/index.html">
    <mx:Script>
        <![CDATA[
            
           import mx.collections.ArrayCollection;
              import org.alivepdf.saving.Download;
           import org.alivepdf.saving.Method;
           import org.alivepdf.layout.Size;
           import org.alivepdf.layout.Unit;
           import org.alivepdf.layout.Orientation;
           import org.alivepdf.pdf.PDF;
           import org.alivepdf.data.Grid;
           import org.alivepdf.data.GridColumn;
           import org.alivepdf.colors.RGBColor;
           import org.alivepdf.fonts.CoreFont;
           import org.alivepdf.fonts.FontFamily;
   
           public function generatePDF():void
           {
                 var OrigenDeDatos:Array = new Array(); 
                 for(var i:Number=0; i<10; i++)
               OrigenDeDatos.push({dato1:"valor"+i, dato2:"valor"+i}); 
                  
               var columna1:GridColumn = new GridColumn("Encabezado de columna1","dato1", 100); 
            var columna2:GridColumn = new GridColumn("Encabezado de columna2","dato2", 100); 
            var columnasDelGrid:Array = new Array(columna1, columna2);
            
                 var grid:Grid = new Grid(OrigenDeDatos, 40, 100, new RGBColor (0xD7D7D7), new RGBColor (0xFFFFFF), true, new RGBColor(0x000000));
               grid.columns=columnasDelGrid;
               
                 var myPDF:PDF=new PDF(Orientation.LANDSCAPE, Unit.MM, Size.A4);
                 myPDF.addPage();
                 
                 myPDF.setFont(new CoreFont ( FontFamily.ARIAL ), 12);
                 myPDF.textStyle(new RGBColor (0x000000));
            myPDF.addGrid(grid, 10, 10);
            myPDF.save(Method.REMOTE, "AlivePDF/Sources/bin/create.php", Download.ATTACHMENT, "MyPDF.pdf");
           }
            
        ]]>
    </mx:Script>
    
    <mx:Panel
        width="100%" height="100%" layout="absolute">
        <mx:Button
            id="guardarPdfButton"
            verticalCenter="-16" horizontalCenter="0"
            label="Guardar pdf"
            click="generatePDF()"/>
    </mx:Panel>
    
</mx:Application>

Por geminis19

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Nov 2010 02:40 am
prueba renderizando(itemrender con mas datos , en una sola columna) alguna columna y ve si te funciona

Por xcom

Claber

530 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Ene 2011 08:40 pm
Hola no se si aun necesitas esto pero el problema radica en una incopactivilidad con la clase Grid ya que flex trae una clase igual i el ide no sabe cual de las dos utilizar, yo por mi parte me consegui el fuente de alivepdf y modifique el nombre de la clase Grid y le pude Gridt, ta claro que no fue tan fasil como lo escribo pero ya lo hice y la compile en un swc asi que el que la quiera me escribe a mi correo yo se las envio, corregui varios problemitas y es total mente compatible con el nuebo ide de flex builder 4 , el archivo pueden descargarlo desde mi [url=http://www.iscorporacion.net/archivos/AlivePDF.swc][/url] :cool:

Por thaylor0184

7 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.