Exportar contenedor como imagen

12 views
Skip to first unread message

Silver TwiN

unread,
Nov 17, 2009, 9:50:44 AM11/17/09
to madeinflex
Hola.. necesito exportar un contenedor y todo su contenido como un
jpg.. ya que lo necesito para un reporte que sera enviado por correo
como imagen.. alguien me puede dar una mano con eso?

Sergi Dote

unread,
Nov 17, 2009, 10:05:34 AM11/17/09
to madei...@googlegroups.com
Una función que te puede servir:

public function printComponents( components : Array, scaleType : String ) : void {
            var printJob : FlexPrintJob = new FlexPrintJob();
            printJob.printAsBitmap = false;

            if ( printJob.start() ) {

                for each ( var uiComponent : IUIComponent in components ) {
                    if ( uiComponent ) {
                        printJob.addObject( uiComponent, scaleType );
                    }
                }

                printJob.send();
            }
        }

2009/11/17 Silver TwiN <lordda...@gmail.com>


Hola.. necesito exportar un contenedor y todo su contenido como un
jpg.. ya que lo necesito para un reporte que sera enviado por correo
como imagen.. alguien me puede dar una mano con eso?




--
.: Sergi Dote Teixidor :.

Ruben Requena

unread,
Nov 17, 2009, 10:15:00 AM11/17/09
to madei...@googlegroups.com
:D.. muchas gracias.. encontré una solución también.. pero probare esta aver cual es mas viable..

Gracias por tu pronta respuesta..

Xavi Beumala

unread,
Nov 17, 2009, 10:18:03 AM11/17/09
to madei...@googlegroups.com
Este codigo crearia un jpg o mandaria el contenido a imprimir ?

Xavi

Ruben Requena

unread,
Nov 17, 2009, 10:21:50 AM11/17/09
to madei...@googlegroups.com
lo enviaria a la impresora.. pero la propiedad printJob.printAsBitmap, te da la opción de enviarlo a la impresora o a un archivo.. 

estoy terminando de incorporarlo a ver que tal..

--
Firma:

Silver ! 1001101001

Xavi Beumala

unread,
Nov 17, 2009, 10:26:23 AM11/17/09
to madei...@googlegroups.com
La propiedad printAsBitmap creo que no tiene nada que ver con imprimir a un
archivo. PrintAsBitmap controla que el contenido se imprima en formato
vectorial o en formato bitmap (lo cual, entre otras cosas, puede afectar a
la calidad, transparencias y velocidad).

Xavi.

Ruben Requena

unread,
Nov 17, 2009, 10:36:26 AM11/17/09
to madei...@googlegroups.com
mmm.. probado.. no funciona, porque igual necesitarías algún tercer programa para encodearlo a JPG.. 

Mi solución..

Una librería que encontré aquí mismo en Made in Flex.. as3_jpeg_wrapper

Codigo:
import cmodule.as3_jpeg_wrapper.CLibInit;
public function snap(contenedor:IBitmapDrawable, ancho:int, alto:int):void {
var as3_jpeg_wrapper:Object;
var loader:CLibInit = new CLibInit;
as3_jpeg_wrapper = loader.init();
var snapshot:BitmapData = new BitmapData(ancho, alto);
snapshot.draw(contenedor);
 
var baSource: ByteArray = snapshot.getPixels( snapshot.rect );                                             
         // Encodea!
          var baAlchmey: ByteArray = as3_jpeg_wrapper.write_jpeg_file(baSource, ancho, alto, 3, 2, 100);  
         // Y grabamos
        var file : FileReference = new FileReference();
        file.save( baAlchmey, "Reporte.jpg"); 
}

me funciona perfectamente.. =)
Reply all
Reply to author
Forward
0 new messages