Comunidad de diseño web y desarrollo en internet online

Manejo de margenes y escala, impresion flash AS3

Citar            
MensajeEscrito el 27 May 2009 01:33 am
Saludos!! Espero me puedan ayudar; quiero saber cómo se maneja de forma correcta la impresión desde flash; la verdad no he encontrado mucha información detallada sobre esto, ni siquiera con la ayuda de flash logro hacerlo.

Principalmente lo que quiero hacer es:

-Que el MovieClip se imprima respetando los márgenes y tipo o tamaño de página.
-De igual manera Sin importar el tamaño del Movieclip, poder escalarlo y ajustarlo según mi
conveniencia, para una mejor impresión.


Código :

imp_btn.addEventListener(MouseEvent.CLICK, imprimi);

function imprimi(e:MouseEvent):void {

   /*var margin_height:Number;
   var margin_width:Number;*/
   var impresor:PrintJob = new PrintJob();

   /*margin_height = (impresor.paperHeight + impresor.pageHeight) / 2;
   margin_width = (impresor.paperWidth + impresor.pageWidth) / 2;
   trace(margin_height);
   trace(margin_width);*/

   impresor.start();
   impresor.addPage(clip_mc);
   impresor.send();
}


Porfavor, diganme cual es la solución para hacer esto. Gracias.

Por Scarecrow

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 May 2009 02:43 pm
Solo se me ocurre que hagas exactamente lo que dices...escalar tu movieclip cuando lo necesites antes de mandar la impresion, sobre los margenes entiendo (corrigeme si no) lo que quieres es que salga dentro de los margenes en la hoja impresa?? no se como hacerlo haz pruebas mandando hojas a imprimir y moviendo el "x" y "y" :oops: lamento no ser de mas ayuda.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 May 2009 03:26 pm
Yo creo que lo que deberias hacer es definir las medidas de los margenes de la hoja en variables.

Antes de mandar ha hacer la impresion que coja esos valores y ajuste el MC con "x" e "y" (para el posicionamiento) y "scaleX" y "scaleY" para redimensionar el MC.

Por si acaso te dejo este ejemplo por si es lo que buscas. Print AS3

Andrés.

Por NiGGa

35 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 May 2009 09:16 pm
Gracias!!! por sus comentarios.
Angel. Exactamente, lo que quiero es mandar a imprimir respetando los margenes del tipo de pagina, pero ¿como obtener las medidas de los margenes de la pagina y su tamaño?.

NIGGa. Lo de escalar el movieclip utilizando scaleX y scaleY, ya lo habia pensando, pero no se como aplicarlo; tambien ya había visto esa página que tu me dices, pero no logro entenderlo muy bien.

Espero alguien sepa como hacerlo y me pueda ayudar. Lo más seguro es que yo no sepa buscar bien por la web, pero la verdad no logro encontrar una buena ayuda y explicación.

Por Scarecrow

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 May 2009 03:57 pm
Lo de la escala se aplica de manera sencilla.

Teienes un MC llamemoslo " b" la escala se maneja en porcentajes como el alfa de un objeto 1=100% 0=0% entonces si quieres que b sea mas pequeño le bajas la escala b.scaleY=.5; si solo bajas la escala Y se vera chato tu objeto :P por eso yo siempre lo hago de esta manera b.scaleY=b.scaleX=.5;

Leyendo un poco la documentacion de adobe menciona mucho sobre lo que intentas hacer puedes darte una vueltita :P pero igual te dejo aqui algo.

Código ActionScript :

//Puedes saber el tmaño de la zona de impresion con las propiedades de tu objeto
//PrintJob
myPrintJob.pageHeight;
myPrintJob.pageWidth;

//Puedes saber el tamaño del papel

myPrintJob.paperHeight;
myPrintJob.paperWidth;

//Puedes determinar el margen
margin_height = (myPrintJob.paperHeight - myPrintJob.pageHeight) / 2;
margin_width = (myPrintJob.paperWidth - myPrintJob.pageWidth) / 2;


 //FUENTE: Documentacion de Adobe (es mas util de lo que pensamos)


Espero algo te sirva. Saludos!!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 May 2009 05:08 pm
Después de un par de días, creo que ya entendí un poco como funciona esto. Pero aún NO logro darle solución a mi problema.

Según veo el crear un Rectangle es lo que me ayuda a posicionar mi MovieClip con respecto a los margenes de la página. Entonces hago lo siguiente.

Código :

   var margin_height:Number = (impresor.paperHeight - impresor.pageHeight) / 2;
   var margin_width:Number = (impresor.paperWidth - impresor.pageWidth) / 2;
   impresor.addPage(clip_mc,new Rectangle(margin_height, margin_height, 400, 400));

pero de igual manera la impresión no respeta los márgenes; por otra parte, solo me funciona si pongo los valores de manera
manual y negativos???!!! ¿Porqué negativos?. Sea como sea, la idea es obtener los márgenes de manera automática sin necesidad
de estarlos calculando.

Aquí les pongo mi triste código, espero me expliquen por que no funciona.

Código :

b_btn.addEventListener(MouseEvent.CLICK, imprimi);

function imprimi(e:MouseEvent):void {

   var impresor:PrintJob = new PrintJob();
   impresor.start();

   var margin_height:Number = (impresor.paperHeight - impresor.pageHeight) / 2;
   var margin_width:Number = (impresor.paperWidth - impresor.pageWidth) / 2;

   var oldScaleX:Number = clip_mc.scaleX;
   var oldScaleY:Number = clip_mc.scaleY;
   var newScaleX:Number = impresor.paperWidth/clip_mc.width;
   var newScaleY:Number = impresor.paperHeight/clip_mc.height;

   clip_mc.scaleX = newScaleX;
   clip_mc.scaleY = newScaleY;

   trace("escala X" + newScaleX);
   trace("escala Y" + newScaleY);*/

   trace("margen alto: " + margin_height); //11.5
   trace("margen ancho: " + margin_width); //18
   trace(impresor.orientation);      //portrait   


   //impresor.addPage(clip_mc,new Rectangle(margin_height, margin_height, 400, 400));
   impresor.addPage(clip_mc,new Rectangle(-60, -68, 400, 400));

   impresor.send();      
}


No es que quiera todo en bandeja de plata, solamente necesito que me ayuden a entender todo esto.

PD: Ya leí una y otra vez la ayuda de Adobe.

Por Scarecrow

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Jun 2009 10:12 pm
Si el rectangulo es para posicionar la impresion si le mandas bien los parametros...Mandas margin_height como parametro "x" y margin_height como parametro "y" y como ancho y alto del rectangulo le pones 400*400 es esto correcto para lo que deseas hacer??

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Jun 2014 02:49 pm
ya nadie entra?? yo tengo el mismo problema

Por aln

0 de clabLevel



 

chrome

 

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