Beispiel: Skalieren, Zuschneiden und Anpassen

Bei Bedarf können Sie die Größe (oder andere Eigenschaften) eines Anzeigeobjekts beim Drucken anpassen, um so Unterschiede zwischen der Darstellung auf dem Bildschirm und in der Druckversion auf Papier auszugleichen. Beim Anpassen der Eigenschaften eines Anzeigeobjekts vor dem Drucken (z. B. mit den Eigenschaften scaleX und scaleY) müssen Sie beachten, dass das Objekt zugeschnitten wird, wenn es größer als das für den Druckbereich festgelegte Rectangle-Objekt ist. Es empfiehlt sich außerdem, die geänderten Eigenschaften nach dem Drucken der Seiten wieder zurückzusetzen.

Mit dem folgenden Code werden die Abmessungen des Anzeigeobjekts txt (jedoch nicht des grünen Feldhintergrunds) skaliert. Das Textfeld wird entsprechend den Abmessungen des angegebenen Rectangle-Objekts zugeschnitten. Nach dem Drucken wird das Textfeld für die Anzeige auf dem Bildschirm auf die ursprüngliche Größe zurückgesetzt. Wenn der Benutzer den Druckauftrag im Druckdialogfeld des Betriebssystems abbricht, ändert sich der in Flash Player angezeigt Inhalt, um den Benutzer darüber zu informieren, dass der Druckauftrag abgebrochen wurde.

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)
                {
                    // Keine Aktion
                }
                pj.send();
            }
            else
            {
                txt.text = "Print job canceled";
            }
            // Textskalierungseigenschaften zurücksetzen
            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;
        }
    }
}

Flash CS3

 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00000336.html