Yazdırma örneği: Ölçekleme, kırpma ve yanıtlama

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

Bazı durumlarda, görüntüleme nesnesinin ekranda görüntülenme şekli ile kağıda yazdırıldığında görüntülenme şekli arasındaki farkları birbirine uygun hale getirmek için, görüntüleme nesnesini yazdırırken nesnenin boyutunu (veya diğer özelliklerini) ayarlamak isteyebilirsiniz. Yazdırma işleminden önce görüntüleme nesnesinin özelliklerini ayarlarken (örneğin, scaleX ve scaleY özelliklerini kullanarak), nesne, yazdırma alanı için tanımlanmış dikdörtgenden daha büyük olacak şekilde ölçeklenirse, nesnenin kırpılacağını unutmayın. Sayfalar yazdırıldıktan sonra özellikleri sıfırlamak isteyebilirsiniz.

Aşağıdaki kod, txt görüntüleme nesnesinin (yeşil arka plan kutusunun değil) boyutlarını ölçekler ve metin alanı, belirtilen dikdörtgenin boyutlarına göre kırpılır. Yazdırma işleminden sonra, metin alanı ekranda görüntülendiği orijinal boyutuna geri döner. Kullanıcı, işletim sisteminin Yazdır iletişim kutusundan yazdırma işini iptal ederse, Flash çalışma zamanındaki içerik, işin iptal edildiğini kullanıcıya bildirmek için değişir.

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; 
        } 
    } 
}