Comunidad de diseño web y desarrollo en internet online

Necesito algun tutorial que sirva para imprimir desde flash

Citar            
MensajeEscrito el 29 Nov 2004 02:47 pm
se que existe la clase printJob pero no la se utilizar, les agradeceria algun tutorial sobre este tema

gracias

Por jopoipo

19 de clabLevel



Genero:Masculino  

chile

msie
Citar            
MensajeEscrito el 29 Nov 2004 03:47 pm
Bueno, así de buenas a primeras no creo que nadie haga un tutorial, eso son cosas que llevan su tiempo...

Lo que sí puedo hacer es explicarte un poco este código de la clase printJob. Veamos:

Primero creamos el objeto PrintJob

Código :

my_pj = new PrintJob();


Ahora mostramos el cuadro de diálogo de impresión

Código :

my_pj.start();


Añadimos las páginas a imprimir a la cola de impresión. Podemos imprimir un clip de película entero o una parte de el usando xMin, xMax, yMin, yMax. De la misma forma podemos hacer esto con el _root, o sea, con toda la película.

Código :

my_pj.addPage(nombreClipPelicula);
my_pj.addPage(nombreClipPelicula, {xMin:0,xMax:150,yMin:0,yMax:200});
my_pj.addPage(_root);
my_pj.addPage(_root, {xMin:0,xMax:150,yMin:0,yMax:200});


Enviamos las páginas de la cola de impresión a la impresora

Código :

my_pj.send();


Borramos el objeto para que no ocupe memoria.

Código :

delete my_pj;


Espero que esto te sea útil para ir tirando a la espera de que alguien haga un tutorial sobre esto en un futuro.

Un saludo!!

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

firefox
Citar            
MensajeEscrito el 29 Nov 2004 04:03 pm
Muchas Gracias esa respuesta era justo lo que necesitaba para aclararme el panorama.

Gracias.

PD: todos tus tutoriales son excelentes.

Por jopoipo

19 de clabLevel



Genero:Masculino  

chile

msie
Citar            
MensajeEscrito el 29 Nov 2004 04:38 pm
Genial!!

PD: Gracias :wink:

Por Elecash

Claber

8126 de clabLevel

37 tutoriales
19 articulos
13 ejemplos

  Bastard Operators From Hell Desarrollador de GAIA Premio_Secretos Héroes

BarnaCity

firefox
Citar            
MensajeEscrito el 06 Dic 2004 09:40 pm
la opción que presenta elecash es buena... Siempre y cuando lo que vayas a imprimir ya se encuentre listo antes de mandar el my_pj.start();
Sucede que yo necesito generar un reporte basado en previa búsqueda por parte del usuario. El resultado de dicha búsqueda (por PHP), lo almaceno en un array en AS. Previamente, tengo un movieclip llamado "Impresion_mc" en donde tengo el formato que deben de llevar los datos una vez impresos.
Como ya se están imaginando, tengo un ciclo en donde lleno los datos en "Impresion_mc", mando la instrucción addpage, vuelvo a llenar los datos y así sucesivamente, hasta terminar con el último registro dentro de mi array de resultados.
La decepción?... ¡No se alcanzan a refrescar los datos antes de que se mande a imprimir la página!. :crap:
Implementé el ciclo con el "onEnterFrame", para asegurar una pequeña pausa antes de la instrucción addPage, pero solo me funciona para la primer página... al parecer se pierde la variable en el siguiente "onEnterFrame".
No he podido declarar una variable PrintJob fuera de la función que manda a llamar el PrintJob, pues la ignora, no se abre el cuadro de diálogo de impresión cuando llamo a my_pj.start();

De hecho, la ayuda en flash indica que los datos deben de estar previamente formateados antes de tratar de imprimir, de lo contrario no se te asegura que se ejecuten las instrucciones antes de que se agrege esa página modificada a la cola de impresión.

Alguna idea al respecto?

Mis dos soluciones (bastante chafas):
1.-
El siguiente algoritmo funciona, pero es molesto para el usuario porque tiene que hacer tantos clicks como páginas que mande a imprimir. Se apoya en un OnEnterFrame que da una pequeña pausa antes de cambiar la variable Pausa a false:

Imprimir_btn.onRelease = function(){
Formatea Impresion_mc
Pausa = true;
};


this.onEnterFrame = function(){
si (!Pausa && Datos_array.length > Datosenviados){
var my_pj:PrintJob = new PrintJob();
my_pj.start();
my_pj.addPage("Impresion_mc", null, null, 3);
my_pj.send();
delete my_pj;
Formatea Impresion_mc
Pausa = true;
cont = 0;
}
if (Pausa && cont < 5){
cont++;
} else{
Pausa = false;
}
}


2.-
La siguiente solución sería hacer copias de "Impresion_mc" en tiempo de diseño, implementar un algoritmo que llene dichas copias con los datos del array de resultados, realizar solo una pausa (con la ayuda del OnEnterFrame) y mandar a imprimir las movieClip pertinentes. Pero esto tiene la GRAN DESVENTAJA de limitar el número de hojas impresas que puede generar un reporte :P .

Alguna sugerencia al respecto?

P.D.: tembièn intenté hacer un escrito super largo y mandarlo a imprimir, pero la salida de impresión está limitada a las dimensiones del escenario, por lo que tampoco resultó my gran idea. :(

Por ludabasi

1 de clabLevel



 

Colima, México

msie
Citar            
MensajeEscrito el 20 Dic 2004 11:19 am
Te cuento mi caso:

Yo tengo q imprimir el pedido realizado a partir de un catálogo, con lo cual la lista a imprimir puede ser enoooorme. Después de desarrollar la base de impresión (usease, la hoja), calculé el número de referencias q me cabían por hoja (12) para controlar cuándo se acabaría la hoja. Después lo q hice fue convertir el moviclip q contiene la hoja de impresión en un objeto de la biblioteca; así cada vez q tuviese q duplicarlo, sólo tendría q hacer un attach.
De esta forma conseguí calcular el número de hojas a imprimir, duplicar hojas cuando fuese necesario y conseguir una impresión perfecta 8)


Resumiendo:
Calcula el número de hojas.
Haz un attach de la página base donde aparecerán los datos
Dentro del bucle donde muestras los datos de tu array, añade una condición q controle el número de referencias mostradas
Cuando sea mayor a un número q tú hayas calculado, haz un attach de la hoja de impresión.
Dentro de esa condicón imprime la hoja en la q estás poniendo los datos.
Y fuera del bucle controla la impresión de la última hoja si es necesario.


No se si me explico.... jejeje

Por kavik666

35 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 Dic 2004 03:37 pm
Muchas gracias Kavik666, he tomado al pie de la letra tu consejo y funciona perfectamente. :) El único "detalle" es que tengo que hacer dos clicks para imprimir, en el primero genero todas las hojas que voy a imprimir y en el segundo las mando a imprimir (por la extraña razón de que si lo hago en el mismo proceso, no se alcanzan a generar las hojas y las manda sin datos). Pero eso lo solucioné agregando una vista preliminar de lo que se va a imprimir, y de hecho quedó mas mono.;)
Se te agradece de verdad.

Por ludabasi

1 de clabLevel



 

Colima, México

msie
Citar            
MensajeEscrito el 20 Dic 2004 04:21 pm
jejeje, una vista preliminar... ni q fuese un jucio 8)

Me alegra haberte sido útil y q te funcione bien, a pesar de ese apaño q has tenido q hacer.

un saludo.

Por kavik666

35 de clabLevel



 

msie
Citar            
MensajeEscrito el 01 Abr 2005 07:49 am
Mira, yo lo he hecho de esta forma, en el mc donde quiero imprimir pongo un botón con este codigo dentro de él:

Código :

on (release) {
   print("cupones", "bmovie");
}


Descargar archivo Aquí

Ver Ejemplo Aquí

Por La100rra

Claber

5776 de clabLevel

11 tutoriales
4 articulos

Genero:Masculino  

Cd. Juárez, Chihuahua, México.

firefox

 

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