列印範例:縮放、裁切和回應
Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本
這某些情況下,您可能會想要在列印時調整顯示物件的大小 (或其他屬性),以便就顯示物件在螢幕上顯示與列印在紙張上之間的差異進行調整。當您先調整顯示物件的屬性再進行列印時 (例如,使用
scaleX
和
scaleY
屬性),請注意,如果物件在縮放後大於所定義的列印區域矩形,則物件會遭到裁切。您可能也要在列印頁面之後重設這些屬性。
下列程式碼將對
txt
顯示物件 (不包括綠色方塊背景) 的尺寸進行縮放,結果造成文字欄位以指定的矩形尺寸被裁切。在列印之後,文字欄位會還原成在螢幕上顯示的原始大小。如果使用者從作業系統的「列印」對話方塊取消列印工作,Flash 執行階段中的內容也會隨之變更,以提示使用者列印工作已經取消。
package
{
import flash.printing.PrintJob;
import flash.display.Sprite;
import flash.text.TextField;
import flash.display.Stage;
import flash.geom.Rectangle;
public class PrintScaleExample extends Sprite
{
private var bg:Sprite;
private var txt:TextField;
public function PrintScaleExample():void
{
init();
draw();
printPage();
}
private function printPage():void
{
var pj:PrintJob = new PrintJob();
txt.scaleX = 3;
txt.scaleY = 2;
if (pj.start())
{
trace(">> pj.orientation: " + pj.orientation);
trace(">> pj.pageWidth: " + pj.pageWidth);
trace(">> pj.pageHeight: " + pj.pageHeight);
trace(">> pj.paperWidth: " + pj.paperWidth);
trace(">> pj.paperHeight: " + pj.paperHeight);
try
{
pj.addPage(this, new Rectangle(0, 0, 100, 100));
}
catch (error:Error)
{
// Do nothing.
}
pj.send();
}
else
{
txt.text = "Print job canceled";
}
// Reset the txt scale properties.
txt.scaleX = 1;
txt.scaleY = 1;
}
private function init():void
{
bg = new Sprite();
bg.graphics.beginFill(0x00FF00);
bg.graphics.drawRect(0, 0, 100, 200);
bg.graphics.endFill();
txt = new TextField();
txt.border = true;
txt.text = "Hello World";
}
private function draw():void
{
addChild(bg);
addChild(txt);
txt.x = 50;
txt.y = 50;
}
}
}
|
|
|