Comment définir de manière dynamique les marges des pages d'impression dans Flash CS3

StackOverflow https://stackoverflow.com/questions/1642008

  •  10-07-2019
  •  | 
  •  

Question

// Je peux obtenir les bonnes marges en définissant un rectangle et en lui donnant les dimensions suivantes:

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

// Lorsque le bouton d'impression est activé, le code suivant s'exécute en utilisant les dimensions définies par 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();

    } 

// Le papier US correspond à 792 = papier de 11,5 pouces de largeur. Voudrais utiliser le format A3, donc je l’ai fait après la ligne myPrintJob.start ();

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

Cela ne fonctionne pas pour placer le mc correctement sur la page. C'est tout ce que l'aide d'Adobe fournit. Également googlé et essayé différentes variantes mais sans succès. Quelqu'un peut-il aider?

Merci d'avance pour tout aperçu de ceci.

Annie

Était-ce utile?

La solution

Vous pourriez clarifier un peu la question parce que vous ne comprenez pas très bien ce que vous essayez d’obtenir. Si j’ai bien compris, vous souhaitez probablement imprimer quelque chose au milieu d’un document plus volumineux.

Vous pouvez obtenir le format de papier choisi par l'utilisateur uniquement après avoir appelé PrintJob.start () vous devrez donc définir le paramètre printArea par la suite. Comme printArea définit un rectangle par rapport à l'objet DisplayObject en cours d'impression, vous devez vous assurer que l'objet DisplayObject se trouve bien au centre de ce dernier;

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();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top