Domanda

// Posso ottenere i margini giusti definendo un rettangolo e dandogli le seguenti dimensioni:

var rect1:Rectangle = new Rectangle(0, 0, 792,612); 

// Quando si preme il pulsante di stampa, il codice seguente viene eseguito utilizzando le dimensioni definite da rect1:

prntCover_btn.addEventListener(MouseEvent.CLICK, printCover);

function printCover(evt:MouseEvent):void {
    front_mc.visible = false;
        var myPrintJob:PrintJob = new PrintJob();
        var options:PrintJobOptions = new PrintJobOptions();
        options.printAsBitmap = true;
        front_mc.scaleX = 1;
        front_mc.scaleY = 1;
        myPrintJob.start();
        myPrintJob.addPage(front_mc, rect1, options);
        myPrintJob.send();

    } 

La carta //U.S. ha una larghezza di 792 = carta da 11,5 pollici. Vorrei utilizzare la dimensione A3, quindi l'ho fatto dopo la riga myPrintJob.start ();

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

Non funziona per posizionare correttamente il mc nella pagina. Questo è tutto l'aiuto di Adobe. Anche su Google e provato diverse varianti ma senza successo. Qualcuno può aiutare?

Grazie in anticipo per qualsiasi approfondimento in merito.

Annie

È stato utile?

Soluzione

Potresti chiarire un po 'la domanda perché non è chiaro cosa stai cercando di ottenere ... se ho capito bene, probabilmente vorrai stampare qualcosa nel mezzo di un foglio più grande.

È possibile ottenere il formato carta scelto dall'utente solo dopo aver chiamato PrintJob.start () quindi dovrai definire il parametro printArea successivamente. Poiché printArea definisce un rettangolo relativo a DisplayObject in fase di stampa, per centrare DisplayObject devi assicurarti che DisplayObject sia al centro del rettangolo;

var myPrintJob:PrintJob = new PrintJob();
var options:PrintJobOptions = new PrintJobOptions();
options.printAsBitmap = true;
front_mc.scaleX = 1;
front_mc.scaleY = 1;
myPrintJob.start();

var marginWidth:Number = (myPrintJob.pageWidth - front_mc.width) / 2;
var marginHeight:Number = (myPrintJob.pageHeight- front_mc.height) / 2;
var rect:Rectangle = new Rectangle(-marginWidth, -marginHeight, myPrintJob.pageWidth, myPrintJob.pageHeight);

myPrintJob.addPage(front_mc, rect1, options);
myPrintJob.send();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top