Flash CS3で印刷ページの余白を動的に設定する方法
質問
// Iは、長方形を定義し、次の寸法を与えることにより、適切なマージンを取得できます。
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();
}
// U.S。paperは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をページに正しく配置するために機能していません。これはアドビのヘルプが提供するすべてです。また、Googleでさまざまなバリエーションを試しましたが、成功しませんでした。誰でも助けることができますか?
これについての洞察を事前に感謝します。
アニー
解決
あなたが達成しようとしていることは少し不明瞭なので、質問を少し明確にすることができます...私が正しく理解していれば、おそらく大きな紙の真ん中に何かを印刷したいでしょう。
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();
所属していません StackOverflow