Как динамически установить поля печати страницы во Flash CS3 - PullRequest
0 голосов
/ 29 октября 2009

// Я могу получить правильные поля, определив прямоугольник и присвоив ему следующие размеры:

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. Также гуглил и пробовал разные варианты, но безуспешно. Кто-нибудь может помочь?

Заранее спасибо за понимание этого.

Энни

1 Ответ

2 голосов
/ 29 октября 2009

Вы могли бы немного уточнить вопрос, потому что немного неясно, чего вы пытаетесь достичь ... если я правильно понял, вы, вероятно, захотите напечатать что-то в середине более крупной статьи.

Размер бумаги, выбранный пользователем, можно получить только после вызова 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...