Frage

//Ich kann die richtigen Ränder erhalten, indem ich ein Rechteck definiere und ihm die folgenden Abmessungen gebe:

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

//Wenn die Schaltfläche „Drucken“ gedrückt wird, wird der folgende Code mit den durch rect1 definierten Dimensionen ausgeführt:

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();

    } 

//US-Papier ist 792 = 11,5 Zoll breites Papier.Ich möchte die Größe A3 verwenden, also habe ich dies nach der Zeile myPrintJob.start(); getan.

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

Dies funktioniert nicht, um den MC korrekt auf der Seite zu platzieren.Dies ist alles, was die Adobe-Hilfe bietet.Habe auch gegoogelt und verschiedene Varianten ausprobiert, aber kein Erfolg.Kann jemand helfen?

Vielen Dank im Voraus für jeden Einblick in dieses Thema.

Annie

War es hilfreich?

Lösung

Sie könnten die Frage etwas präzisieren, da etwas unklar ist, was Sie erreichen möchten ...Wenn ich es richtig verstanden habe, möchten Sie wahrscheinlich etwas in die Mitte eines größeren Papiers drucken.

Das vom Benutzer gewählte Papierformat erhalten Sie erst nach einem Anruf PrintJob.start() Sie müssen also das definieren printArea Parameter danach.Als die printArea Definiert ein Rechteck relativ zum zu druckenden DisplayObject. Um das DisplayObject zu zentrieren, müssen Sie sicherstellen, dass sich das DisplayObject in der Mitte des Rechtecks ​​befindet.

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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top