Comunidad de diseño web y desarrollo en internet online

Alive PDF en ItemRenderer y Button

Citar            
MensajeEscrito el 19 Abr 2010 09:22 pm
Hola a todo mundo , primero que nada agradecer su apoyo

Tengo la siguiente situacion:

Elabore una aplicacion de mediano tamaño en Flex 3 (SDK 3.5) , PHP y MySQL ,
La necesidad de la misma aplicacion y el proceso de la empresa me obliga a generar un PDf con ciertos campos de la BD y algunos textos estaticos e imagenes

Dentro de un componente PopUp tengo un DataGrid , en una columna agregue un ItemRenderer Checkbox , al hacer click en este checkbox y dejar el valor de TRUE se genera un PDF que despues de revision la propia aplicacion envia por correo ,todo esto en automatico , estoy usando AlivePDF 0.1.5 para generar el PDF.

Hasta este punto TODO funciona a la perfecciòn .

Aqui vienen los problemas

Para optimizar el flujo de la aplicacion y facilitar el entendimiento de los usuarios genere un boton debajo del datagrid, a este boton le asigne en el evento CLICK el codigo de generacion del PDF con los datos del Datafgrid.selectedItem tal y como lo hace el intemrenderer.

el resultado es nada,

jamas aparece el dialogo del explorador donde genera el pdf.

he estado haciendo pruebas , con Alerts.show , corriendo la app en modo debug , entra a la funcion doPDF(evt:MouseEvent) genera todas las variables, toma los datos del datagrid

pero el generar el objeto myPDF = new PDF (..........................);
ahi no hace nada, jamas pasa por ahi

ya cambie nombre de variables

re importe los import org.alivepdf. ...............

revise todo

inclusive provoque errores de sintaxis

reconoce los errores de sitaxis

reconoce cuando le quito algun import

pero jamas genera el PDF

tendra alguien alguna idea

exte es el codigo que si funciona :

**************************************************************************************************************
<mx:DataGridColumn headerText="Email" textAlign="center" width="35" editable="false" dataField="correoCol1">
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox selected="{(int(data.correoCol1) == 1)?true:false}" click="{data.correoCol1 = (data.correoCol1 != 1) ? 1 : 0;}" change="onChange(event);">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import flash.sampler.NewObjectSample;
import flash.utils.ByteArray;
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
import org.alivepdf.colors.RGBColor;
import org.alivepdf.fonts.FontFamily;
import org.alivepdf.layout.Align;
import org.alivepdf.layout.Orientation;
import org.alivepdf.layout.Size;
import org.alivepdf.layout.Unit;
import org.alivepdf.pages.Page;
import org.alivepdf.pdf.PDF;
import org.alivepdf.saving.Method;
import org.alivepdf.links.HTTPLink;
import org.alivepdf.saving.Download;
import org.alivepdf.images.ResizeMode;
import org.alivepdf.images.PNGImage;
import org.alivepdf.images.JPEGImage;
import org.alivepdf.display.Display;
import org.alivepdf.display.PageMode;
import org.alivepdf.images.*;
import org.alivepdf.fonts.Style;
import flash.utils.Timer;
import flash.events.TimerEvent;
[Embed( source="/imagen/vtw_JPG.jpg" , mimeType="application/octet-stream")]
private var jpgBytes:Class;
private var myPDF:PDF;
[Bindable]
public var cnumero:Number;
private var valor:Number;
private function onChange(evt:Event):void{
// aqui declaro y trabajo con las variables
myPDF = new PDF (Orientation.PORTRAIT, Unit.MM, Size.LETTER);
myPDF.addPage();
myPDF.addImageStream(new jpgBytes() as ByteArray,0,0,0,0,1,"FIT_TO_PAGE");
myPDF.setFont(FontFamily.TIMES, Style.NORMAL);
myPDF.textStyle(new RGBColor(0x8f5c30),1);
myPDF.setFontSize(13);
myPDF.addText(fecha_comp,20,70);
myPDF.addText("MR. "+nombre1,20,76);
// aqui agrego mas de 20 lineas de texto incluidas mis variables
myPDF.save(Method.REMOTE,"http://miservidor/create.php",Download.ATTACHMENT,identificador+".pdf");
}
]]>
</mx:Script>
</mx:CheckBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>


*****************************************************************************************************************

*******************************************************************************************************************


y esto que sigue es mi codigo que no trabaja



****************************************************************************************************************


<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
width="900" height="550" close="removePublisher(event)" backgroundAlpha="1.0" color="#DCF3F6" backgroundColor="#5D748C"
alpha="0.90" borderStyle="solid" creationComplete="traeDatos()" horizontalAlign="center" verticalAlign="middle">

<mx:Script>
<![CDATA[
// exactamente los mismos imports que el ejemplo que si trabaja , mas unos cuantos necesarios
[Bindable]
public var tradedid:Number;
[Embed( source="/imagen/vtw_JPG.jpg" , mimeType="application/octet-stream")]
public var jpgBytes:Class;

public var archivoPDF:PDF;

public function doPDF(evt:MouseEvent):void
{
// aqui van mis variables

// la siguiente linea es donde jamas entra el codigo a la hora de la ejecucion, inclusive poniendo errores de sintaxis
archivoPDF = new PDF (Orientation.PORTRAIT,Unit.MM,Size.LETTER);
archivoPDF.addPage();
archivoPDF.addImageStream(new jpgBytes() as ByteArray,0,0,0,0,1,"FIT_TO_PAGE");
archivoPDF.setFont(FontFamily.TIMES, Style.NORMAL);
archivoPDF.textStyle(new RGBColor(0x8f5c30),1);
archivoPDF.setFontSize(13);
archivoPDF.addText(fecha_comp,20,70);
archivoPDF.addText(nombre1,20,76);
archivoPDF.save(Method.REMOTE,"http://miservidor/create.php",Download.ATTACHMENT,identificador+".pdf");
Alert.show("Are you sure to send Email ?",
"Confirm Email Send", 3, this, sendEmailHandler);
}

private function sendEmailHandler(event:CloseEvent):void{
if (event.detail == Alert.YES)
{
enviarCorreo.send();
}
}

]]>
</mx:Script>
// aqui va mi HTTP Service

// luego viene mi panel y mi datagrid ya sin la columna del itemrenderer

//finalmente el boton que debe llamar la funcion que generara el PDF
<mx:Button y="392" label="Enviar Correo" color="#1A3C3F" id="btnEmail" click="doPDF(event);" x="358.5"/>



</mx:Panel>

</mx:TitleWindow>

Por jonathanglez

2 de clabLevel



 

msie8
Citar            
MensajeEscrito el 21 Abr 2010 01:37 am
El uso de alive pdf hace que se trabajar al cliente, pues bien la libreria es buena para imagenes
y otro usos , pero he visto en la mayoria de los foros y otros que hay muchos problemas cuando se trabaja
con datagrid,componentes y que decir de los itemrender. Lo que te recomiendo es que una vez que objegas
los datos de tu datagrid tal como quieras que se vean
guardados y devuelvelos hacia el servidor y mediante librerias como FPDF (php) o itext(java9 crea tus pdf
luego mediante javascript devuelves una ventana en donde para presentar el pdf es la mejor forma suerte

Por xcom

Claber

530 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Abr 2010 03:36 am
buenas a todos

ya lo solucione

removi el swc de alive pdf

comipile el release build

agregue de nuevo el swc

compile de nuevo el swc de alivepdf y magicamente funciono

no entiendo porque este comportamiento peor ya funciona

hago la aclaracion que funcionan los dos ejemplos antes mencionados

genero el pdf desde el itemrenderer y desde el button

todo funciona bien

gracias por tu colaboracion XCOM

Por jonathanglez

2 de clabLevel



 

msie8
Citar            
MensajeEscrito el 25 Jul 2011 07:51 pm
Pregunto si de casualidad alguien sabe como imprimir los item renders de una grid con alive pdf???

Por sfg2

12 de clabLevel



 

chrome

 

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