如何动态地设置在Flash CS3的打印页边距(How to dynamically set pri

2019-09-02 03:31发布

//我可以通过定义一个矩形,并给它下面的尺寸得到正确的边距:

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英寸宽的纸。 想,所以我做这行myPrintJob.start()后使用A3尺寸;

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

这是不工作正确地放置在MC中的页面上。 这是所有的Adobe帮助提供。 另外一派,尝试了不同的变化,但没有成功。 任何人都可以帮忙吗?

感谢您事先的任何洞察到这一点。

安妮

Answer 1:

你可以澄清这个问题一点,因为它是一个有点不清楚你想达到什么目的?如果我理解正确的话,你可能会在一个更大的纸张中间要打印的东西。

你可以得到用户只能调用后选择纸张大小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();


文章来源: How to dynamically set print page margins in Flash CS3