<?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 org.alivepdf.images.ResizeMode;
            import mx.effects.Resize;
            import org.alivepdf.colors.RGBColor;
            import mx.controls.Alert;
            /** LIBRERIAS DE ALIVEPDF **/
            /* LIBRERIAS DE ESTILO DE TEXTO Y PRESENTACION DE PAGINA*/
            import org.alivepdf.fonts.Style;
            import org.alivepdf.fonts.FontFamily;
            import org.alivepdf.layout.Orientation;
            import org.alivepdf.layout.Size;
            import org.alivepdf.layout.Unit;
            import org.alivepdf.layout.Layout;
            import org.alivepdf.display.Display;
            /* OTRAS LIBRERIAS */
            import org.alivepdf.saving.Method;
            import org.alivepdf.pages.Page;
            import org.alivepdf.pdf.PDF;
            
            /* REFERENCIA A IMAGENES */
            [Embed( source="/assets/tepuy.jpg", mimeType="application/octet-stream" )]  
            private var imagenObj:Class;
            
            [Embed( source="/assets/flexairveBannerJuan.jpg", mimeType="application/octet-stream" )]  
            private var logoObj:Class;
            
            /** HANDLER PARA EL BOTON DE CREAR Y GUARDAR EL DOCUMENTO **/
            private function clickButtonHandler(event : MouseEvent):void
            {
                // SE CREA UNA INSTANCIA DE DOCUMENTO PDF CON ORIENTACION VERTICAL, 
                // UNIDAD DE MEDICION EN MILIMETROS Y PAGINA TAMAÑO CARTA
                var docPdf : PDF = new PDF(Orientation.LANDSCAPE,Unit.MM,Size.LETTER);
                // SE ESTABLECE EL MODO DE PRESENTACION DEL DOCUMENTO AL ABRIRLO:
                // TAMAÑO EN PANTALLA COMPLETA (DISPLAY.FULL_PAGE) Y UNA PAGINA A LA VEZ (SINGLE_PAGE)
                docPdf.setDisplayMode(Display.FULL_PAGE,Layout.SINGLE_PAGE);
                // SE CREA UNA INSTANCIA DE PAGINA PDF CON LA MISMA CONFIGURACION DEL
                // DOCUMENTO PDF AL QUE PERTENECERÁ
                var pagPdf : Page = new Page(Orientation.LANDSCAPE,Unit.MM,Size.LETTER);
                // SE AGREGA LA PAGINA CREADA AL DOCUMENTO PDF CREADO
                docPdf.addPage(pagPdf);
                // SE AGREGA LA IMAGEN A LA PAGINA COMO FONDO. SE DISMINUYE A 0.4 LA OPACIDAD (ALPHA) DE
                // LA IMAGEN.
                docPdf.addImageStream( ByteArray( new imagenObj() ), 0, 0, 0, 0, 0.4,
                                        ResizeMode.FIT_TO_PAGE, BlendMode.NORMAL, true, "", false);
                
                // SE ESTABLECE LA OPACIDAD (ALPHA) DEL PROXIMO RENDERING. EN ESTE CASO, UN TEXTO. 
                docPdf.setAlpha(0.8);
                // SE ESTABLECE UN ESTILO DE LETRA (FUENTE) DEL DOCUMENTO: TIPO, ESTILO Y TAMAÑO
                docPdf.setFont(FontFamily.HELVETICA , Style.BOLD_ITALIC, 15);
                // SE AGREGA UN TEXTO COMO FRASE SUPERIOR
                docPdf.addText("VENEZUELA YA TIENE SU COMUNIDAD DE DESARROLLADORES FLEX - AIR",42,20);
                
                // SE ESTABLECE UN NUEVO ESTILO DE LETRA (FUENTE) DEL DOCUMENTO: TIPO, ESTILO Y TAMAÑO
                docPdf.setFont(FontFamily.COURIER , Style.BOLD, 100);
                // SE ESTABLECE EL ESTILO DEL PROXIMO TEXTO: COLOR Y OPACIDAD (ALPHA).
                docPdf.textStyle(new RGBColor( 0x000000 ), 1);
                // SE AGREGA UN TITULO
                docPdf.addText("FLEXAIRVE",44,60);
                
                // SE ESTABLECE LA OPACIDAD DEL PROXIMO RENDERING. EN ESTE CASO, UN TEXTO. 
                docPdf.setAlpha(0.5);
                // SE ESTABLECE UN NUEVO ESTILO DE LETRA (FUENTE) DEL DOCUMENTO: TIPO, ESTILO Y TAMAÑO
                docPdf.setFont(FontFamily.ARIAL, Style.NORMAL, 20);
                // SE AGREGA UN TITULO
                docPdf.addText("La primera y única comunidad Flex de Venezuela donde podrás:",40,85);
                
                // SE ESTABLECE UN NUEVO ESTILO DE LETRA (FUENTE) DEL DOCUMENTO: TIPO, ESTILO Y TAMAÑO
                docPdf.setFont(FontFamily.ARIAL, Style.ITALIC, 20);
                // SE INDICA LA POSICION DESDE DONDE SE COLOCARA EL PROXIMO RENDERING EN LA PAGINA ACTUAL.
                // EN ESTE CASO, TEXTO DENTRO DE UNA CELDA
                docPdf.setXY(70,92);
                // SE INDICA QUE EL TEXTO SERA PRESENTADO EN FORMA DE CELDA Y SE INDICA EL ALTO
                // Y ANCHO DE DICHA CELDA. DE UNA VEZ SE INDICA EL TEXTO QUE SE AGREGARÁ A LA
                // COLUMNA, QUE EN ESTE CASO ES EL TEXTO DEL TEXTAREA LLAMADO AREATEXTO
                docPdf.addMultiCell(140, 8, "Realizar consultas en el foro\n" + 
                                            "Descargar y publicar codigos de ejemplo\n" + 
                                            "Compartir y profundizar tus conocimientos\n" + 
                                            "Mantenerte informado sobre lo ultimo de la\n" + 
                                            "tecnologia RIA y las plataformas de Adobe",0,"L");
                
                // SE ESTABLECE LA OPACIDAD DEL PROXIMO RENDERING. EN ESTE CASO, UN TEXTO. 
                docPdf.setAlpha(0.5);
                // SE ESTABLECE UN NUEVO ESTILO DE LETRA (FUENTE) DEL DOCUMENTO: TIPO, ESTILO Y TAMAÑO
                docPdf.setFont(FontFamily.HELVETICA, Style.BOLD_ITALIC, 15);
                // SE AGREGA UN TEXTO
                docPdf.addText( "Unete a esta comunidad de desarrolladores Flex " + 
                                "donde la participación es lo que importa.",
                                25,150);
                
                // SE AGREGA UN TEXTO
                docPdf.addText( "Encuentranos en google groups como flexiarve o ingresa a", 65, 165);
                
                // SE ESTABLECE EL ESTILO DEL PROXIMO TEXTO: COLOR Y NIVEL DE TRANSPARENCIA (ALPHA).
                docPdf.textStyle(new RGBColor( 0x1566CC ), 1);
                // SE INDICA LA POSICION DESDE DONDE SE COLOCARA EL PROXIMO RENDERING EN LA PAGINA ACTUAL.
                // EN ESTE CASO, UN TEXTO.
                docPdf.setXY(85,180);
                // SE AGREGA UN TEXTO ENLAZADO A UN SITIO WEB
                docPdf.writeText(5, "http://groups.google.com/group/flex-air-ve", 
                                    "http://groups.google.com/group/flex-air-ve");
                
                // SE AGREGA UNA IMAGEN AL DOCUMENTO. EN ESTE CASO, EL LOGO DE FLEXAIRVE EN LA ESQUINA
                // INFERIOR DERECHA DEL DOCUMENTO.
                docPdf.addImageStream( ByteArray(new logoObj()), 225, 188, 20, 50);
                // SE AGREGA UN ENLACE SOBRE LA IMAGEN DEL LOGO.
                docPdf.addLink(225, 188, 50, 20, "http://groups.google.com/group/flex-air-ve");
                
                
                var bytesArray : ByteArray = docPdf.save(Method.LOCAL);
                var fileRef : FileReference = new FileReference();
                fileRef.addEventListener(Event.COMPLETE,completeGuardarPdfHandler);
                fileRef.save(bytesArray,"PDFRia212Example1.pdf");
            }
            
            private function completeGuardarPdfHandler(event:Event):void
            {
                Alert.show("Ya puedes abrir el archivo guardado.");
            }
            
        ]]>
    </mx:Script>
    <mx:Panel
        width="100%" height="100%" layout="absolute">
        <mx:Button
            id="guardarPdfButton"
            verticalCenter="0" horizontalCenter="0"
            label="Guardar pdf"
            click="clickButtonHandler(event)"/>        
        <!--<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>






















    <!-- El presente ejemplo fue realizado con fines ilustrativos y educacionales para RIA212.com 
         por Juan Manrique (DonKenshin). http://groups.google.com/group/flex-air-ve 04-feb-2010 -->