Pergunta

// posso obter as margens direita através da definição de um retângulo e dando-lhe as seguintes dimensões:

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

// Quando o botão de impressão for pressionado os seguintes executa código usando as dimensões definidas pelo 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();

    } 

// U.S.paper é papel largo 792 = 11,5 polegadas. Gostaria de usar tamanho A3 então eu fiz isso depois do myPrintJob.start linha ();

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

Isto não está trabalhando para colocar o mc corretamente na página. Esta é toda a ajuda Adobe fornece. Também pesquisei e tentei diferentes variações, mas sem sucesso. Alguém pode ajudar?

Agradecemos antecipadamente por qualquer visão sobre isso.

Annie

Foi útil?

Solução

Você poderia esclarecer a questão um pouco, porque é um pouco claro o que você está tentando alcançar ... se eu entendi corretamente, você provavelmente vai querer imprimir algo no meio de um papel maior.

Você pode obter o tamanho do papel que o usuário escolheu somente após chamar PrintJob.start() assim você terá que definir o parâmetro printArea depois disso. Como o printArea define um retângulo em relação ao DisplayObject que está sendo impresso, a fim de centralizar a DisplayObject você tem que ter certeza que o DisplayObject está no centro do rectângulo;

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();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top