0

//我可以通过定义一个矩形并给它以下尺寸来获得右边距:

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

//当按下打印按钮时,使用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();

    } 

//USpaper 是 792 = 11.5 英寸宽的纸张。想使用 A3 尺寸,所以我在 myPrintJob.start(); 行之后执行了此操作

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

这无法将 mc 正确放置在页面上。这就是 Adob​​e 帮助提供的全部内容。还谷歌搜索并尝试了不同的变体,但没有成功。任何人都可以帮忙吗?

提前感谢您对此的任何见解。

安妮

4

1 回答 1

2

你可以稍微澄清一下这个问题,因为你想要达到的目标有点不清楚......如果我理解正确,你可能想在一张更大的纸中间打印一些东西。

您只能在调用后才能获得用户选择的纸张尺寸,PrintJob.start()因此您必须在此printArea之后定义参数。由于printArea定义了一个相对于正在打印的 DisplayObject 的矩形,为了使 DisplayObject 居中,您必须确保 DisplayObject 位于矩形的中心;

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();
于 2009-10-29T07:19:15.740 回答