//我可以通过定义一个矩形并给它以下尺寸来获得正确的边距:
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();
}
//美国纸是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放在页面上。这是Adobe提供的所有帮助。谷歌搜索并尝试了不同的变化,但没有成功。有人可以帮忙吗?
提前感谢您对此的任何见解。
安妮
答案 0 :(得分: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();