Paketflash.printing
Klassepublic class PrintJob
VererbungPrintJob Inheritance EventDispatcher Inheritance Object

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Mit der PrintJob-Klasse können Sie Inhalt erstellen und eine oder mehrere Seiten ausdrucken. Mit dieser Klasse können Sie sichtbare, dynamische oder externe Inhalte für den Benutzer darstellen, Benutzern ein einzelnes Druckdialogfeld anzeigen sowie nicht skalierte Dokumente so drucken, dass sie den Proportionen der Inhalte entsprechen. Diese Funktion ist insbesondere zum Darstellen und Drucken dynamischer Inhalte, z. B. Datenbankinhalte oder dynamischer Text, nützlich.

Über den PrintJob()-Konstruktor können Sie einen Druckauftrag erstellen.

Wenn das Dokument zusätzlich über Eigenschaften verfügt, die mit PrintJob.start() gefüllt werden, können die Druckereinstellungen des Benutzers gelesen werden, beispielsweise Höhe und Breite der Seite oder Bildausrichtung. Darüber hinaus können Sie das Dokument so konfigurieren, dass dynamische Flash-Inhalte formatiert werden, die für die Druckereinstellungen geeignet sind. Die über PrintJob.start() gefüllten Layouteigenschaften des Benutzers sind schreibgeschützt und können in Flash Player nicht geändert werden.

Hinweis: In ActionScript 3.0 ist ein PrintJob-Objekt nicht auf ein Bild beschränkt (wie dies in früheren Versionen von ActionScript der Fall war). Da im Betriebssystem jedoch Informationen zum Druckstatus angezeigt werden, nachdem der Benutzer im Druckdialogfeld auf die Schaltfläche "OK" geklickt hat, sollten Sie möglichst bald PrintJob.addPage() und PrintJob.send() aufrufen, damit Seiten an die Druckwarteschlange gesendet werden. Durch eine Verzögerung im Bild mit dem PrintJob.send()-Aufruf wird auch der Druckvorgang verzögert.

Darüber hinaus gilt ein Skriptzeitlimit von 15 Sekunden für die folgenden Intervalle:

Wenn bei diesen Intervallen das Limit von 15 Sekunden überschritten wird, wird beim darauf folgenden Aufruf von PrintJob.start() für die PrintJob-Instanz der Wert false zurückgegeben und beim darauf folgenden Aufruf von PrintJob.addPage() für die PrintJob-Instanz in Flash Player zur Laufzeit eine Ausnahme ausgelöst.

Beispiele anzeigen

Siehe auch

Grundlagen des Druckens
Drucken von Seiten


Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  orientation : String
[read-only] Die Bildausrichtung für den Druck.
PrintJob
  pageHeight : int
[read-only] Die Höhe des tatsächlich druckbaren Bereichs der Seite in Punkt.
PrintJob
  pageWidth : int
[read-only] Die Breite des tatsächlich druckbaren Bereichs der Seite in Punkt.
PrintJob
  paperHeight : int
[read-only] Die Gesamthöhe des Papiers in Punkt.
PrintJob
  paperWidth : int
[read-only] Die Gesamtbreite des Papiers in Punkt.
PrintJob
 Inheritedprototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
Object
Öffentliche Methoden
 MethodeDefiniert von
  
Erstellt ein PrintJob-Objekt, mit dem Sie eine oder mehrere Seiten drucken können.
PrintJob
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
EventDispatcher
  
addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Sendet das angegebene Sprite-Objekt als einzelne Seite an die Druckwarteschlange.
PrintJob
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
  
Sendet Seiten in der Druckwarteschlange an den Drucker, nachdem "PrintJob.start()" und "PrintJob.addPage()" erfolgreich ausgeführt wurden.
PrintJob
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
  
Zeigt das Druckdialogfeld des Betriebssystems an, startet den Spoolvorgang und legt die schreibgeschützten Eigenschaftenwerte für das PrintJob-Objekt fest.
PrintJob
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner vorangegangenen Elementen ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 EreignisÜbersicht Definiert von
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus verliert und inaktiv wird.EventDispatcher
Eigenschaftsdetail
orientationEigenschaft
orientation:String  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9.

Die Bildausrichtung für den Druck. Diese Eigenschaft ist ein Wert der PrintJobOrientation-Klasse. Diese Eigenschaft ist nur nach einem Aufruf der PrintJob.start()-Methode verfügbar.


Implementierung
    public function get orientation():String

Siehe auch

pageHeightEigenschaft 
pageHeight:int  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9.

Die Höhe des tatsächlich druckbaren Bereichs der Seite in Punkt. Alle benutzerdefinierten Randeinstellungen werden ignoriert. Diese Eigenschaft ist nur nach einem Aufruf der PrintJob.start()-Methode verfügbar.


Implementierung
    public function get pageHeight():int

Siehe auch

pageWidthEigenschaft 
pageWidth:int  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9.

Die Breite des tatsächlich druckbaren Bereichs der Seite in Punkt. Alle benutzerdefinierten Randeinstellungen werden ignoriert. Diese Eigenschaft ist nur nach einem Aufruf der PrintJob.start()-Methode verfügbar.


Implementierung
    public function get pageWidth():int

Siehe auch

paperHeightEigenschaft 
paperHeight:int  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9.

Die Gesamthöhe des Papiers in Punkt. Diese Eigenschaft ist nur nach einem Aufruf der PrintJob.start()-Methode verfügbar.


Implementierung
    public function get paperHeight():int
paperWidthEigenschaft 
paperWidth:int  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9.

Die Gesamtbreite des Papiers in Punkt. Diese Eigenschaft ist nur nach einem Aufruf der PrintJob.start()-Methode verfügbar.


Implementierung
    public function get paperWidth():int
Konstruktordetail
PrintJob()Konstruktor
public function PrintJob()

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt ein PrintJob-Objekt, mit dem Sie eine oder mehrere Seiten drucken können. Nach dem Erstellen eines PrintJob-Objekts müssen Sie (in der folgenden Reihenfolge) die Methoden PrintJob.start(), PrintJob.addPage() und anschließend PrintJob.send() verwenden, um den Druckauftrag an den Drucker zu senden.

Sie können beispielsweise den Text für den Platzhalter [params] für die Aufrufe der my_pj.addPage()-Methode durch benutzerdefinierte Parameter ersetzen, wie dies im folgenden Code dargestellt ist:

 // create PrintJob object
 var my_pj:PrintJob = new PrintJob();
  
 // display Print dialog box, but only initiate the print job
 // if start returns successfully.
 if (my_pj.start()) {
  
    // add specified page to print job
    // repeat once for each page to be printed
    try {
      my_pj.addPage([params]);
    }
    catch(e:Error) {
      // handle error 
    }
    try {
      my_pj.addPage([params]);
    }
    catch(e:Error) {
     // handle error 
    }
 
    // send pages from the spooler to the printer, but only if one or more
    // calls to addPage() was successful. You should always check for successful 
    // calls to start() and addPage() before calling send().
    my_pj.send();
 }
 

Es ist nicht möglich, ein zweites PrintJob-Objekt zu erstellen, solange das erste noch aktiv ist. Wenn Sie (durch Aufrufen von new PrintJob()) ein zweites PrintJob-Objekt erstellen möchten, während das erste Objekt noch aktiv ist, wird das zweite PrintJob-Objekt nicht erstellt. Überprüfen Sie daher vor dem Erstellen eines zweiten PrintJob-Objekts den my_pj-Wert.


Auslöser
IllegalOperationError — Löst eine Ausnahme aus, wenn ein anderes PrintJob-Objekt noch aktiv ist.

Siehe auch

Methodendetail
addPage()Methode
public function addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9.

Sendet das angegebene Sprite-Objekt als einzelne Seite an die Druckwarteschlange. Vor der Verwendung dieser Methode müssen Sie ein PrintJob-Objekt erstellen und dann PrintJob.start() verwenden. Senden Sie nach dem einmaligen oder mehrfachen Aufrufen von PrintJob.addPage() für einen Druckauftrag anschließend die Seiten in der Druckwarteschlange mithilfe von PrintJob.send() an den Drucker. Mit anderen Worten: Nach dem Erstellen eines PrintJob-Objekts verwenden Sie (in der folgenden Reihenfolge) die Methoden PrintJob.start(), PrintJob.addPage() und PrintJob.send(), um den Druckauftrag an den Drucker zu senden. Um mehrere Seiten gleichzeitig zu drucken, können Sie PrintJob.addPage() nach einem einmaligen Aufruf von PrintJob.start() mehrfach verwenden.

Wenn durch PrintJob.addPage() eine Ausnahme in Flash Player ausgelöst wird (z. B. wenn PrintJob.start() nicht aufgerufen wurde oder der Benutzer den Druckauftrag abgebrochen hat), schlagen alle nachfolgenden Aufrufe von PrintJob.addPage() fehl. Wenn vorherige Aufrufe von PrintJob.addPage() jedoch erfolgreich waren, sendet der abschließende Befehl PrintJob.send() alle Seiten in der Warteschlange an den Drucker.

Wenn der PrintJob.addPage()-Vorgang im Druckauftrag 15 Sekunden überschreitet, wird beim nächsten Aufruf von Print.addPage() eine Ausnahme in Flash Player ausgelöst.

Wenn Sie einen Wert für den printArea-Parameter übergeben, werden die Koordinaten xund y des printArea-Objekts relativ zur oberen linken Ecke (Koordinaten 0,0) des druckbaren Seitenbereichs festgelegt. Der druckbare Bereich wird anhand der schreibgeschützten Eigenschaften pageHeight und pageWidth angegeben, die durch PrintJob.start() festgelegt werden. Da die Ausrichtung des Ausdrucks an der oberen linken Ecke des druckbaren Bereichs der Seite erfolgt, wird er gegebenenfalls rechts und/oder unten in dem durch printArea definierten Bereich zugeschnitten, wenn der in printArea festgelegte Bereich größer ist als der druckbare Bereich der Seite. Wenn Sie für printArea keinen Wert übergeben und die Bühne größer als der druckbare Bereich ist, wird der Ausdruck auch zugeschnitten.

Wenn Sie ein Sprite-Objekt vor dem Drucken skalieren möchten, legen Sie die Skaliereigenschaften (siehe flash.display.DisplayObject.scaleX und flash.display.DisplayObject.scaleY) fest, bevor Sie diese Methode aufrufen, und setzen sie danach auf ihre ursprünglichen Werte zurück. Die Skalierung eines Sprite-Objekts hat keinen Bezug auf printArea. Wenn Sie beispielsweise einen Druckbereich mit der Größe 50 x 50 Pixel festlegen, werden 2500 Pixel gedruckt. Wenn Sie das Sprite-Objekt skalieren, werden dieselben 2500 Pixel in der skalierten Größe gedruckt.

Die Druckfunktion im Flash Player unterstützt PostScript- und Nicht-PostScript-Drucker. Bei Nicht-PostScript-Druckern werden die Vektoren in Bitmaps umgewandelt.

Parameter

sprite:Sprite — Der Instanzname des zu druckenden Sprite-Objekts.
 
printArea:Rectangle (default = null) — Ein Rectangle-Objekt, das den Druckbereich angibt.

Die Breite und Höhe eines Rechtecks werden in Pixel angegeben. Bei Druckern wird die Druckmaßeinheit Punkt verwendet. Punkt ist eine feste Größe (1/72 Zoll), die Größe eines Pixels richtet sich jedoch nach der jeweiligen Auflösung des Bildschirms. Der Umrechnungsfaktor zwischen Pixel und Punkt hängt daher von den Druckereinstellungen und davon ab, ob der Sprite skaliert ist. Ein nicht skalierter Sprite mit einer Breite von 72 Pixel wird mit einer Breite von 1 Zoll gedruckt. Dabei entspricht ein Punkt einem Pixel, unabhängig von der Bildschirmauflösung.

Mit folgenden Gleichungen können Sie Zoll- oder Zentimeterangaben in Twips oder Punkt umrechnen (ein Twip ist 1/20 Punkt):

  • 1 Punkt = 1/72 Zoll = 20 Twip
  • 1 Zoll = 72 Punkt = 1440 Twip
  • 1 cm = 567 Twip

Wenn Sie den Parameter printArea weglassen oder falsch übergeben, wird der gesamte Bereich von sprite gedruckt.

Wenn Sie keinen Wert für printArea angeben möchten, aber options oder frameNum mit einem Wert belegen wollen, übergeben Sie den Wert null für printArea.

 
options:PrintJobOptions (default = null) — Ein optionaler Parameter, der angibt, ob der Ausdruck als Vektor oder Bitmap erfolgt. Der Standardwert ist null, dabei erfolgt der Ausdruck im Vektorformat. Wenn Sie sprite als Bitmap drucken möchten, setzen Sie die printAsBitmap-Eigenschaft des PrintJobOptions-Objekts auf true. Wenn Sie printAsBitmap auf true setzen, beachten Sie folgende Hinweise:
  • Wenn der zu druckende Inhalt ein Bitmapbild enthält, setzen Sie die printAsBitmap-Eigenschaft auf true, um Alphatransparenz und Farbeffekte einzuschließen.
  • Verwenden Sie diesen Parameter nicht, wenn der Inhalt keine Bitmapbilder enthält. Dadurch wird der Inhalt im Vektorformat mit einer höheren Qualität gedruckt.

Wenn Sie options auslassen oder fehlerhaft übergeben, erfolgt der Ausdruck im Vektorformat. Wenn Sie keinen Wert für options angeben möchten, aber frameNumber mit einem Wert belegen wollen, übergeben Sie den Wert null für options.

 
frameNum:int (default = 0)Eine optionale Zahl, mit der Sie das zu druckende Bild angeben können. Das Übergeben von frameNum führt nicht dazu, dass ActionScript bei diesem Bild aufgerufen wird. Wenn Sie diesen Parameter auslassen, wird das aktuelle Bild in sprite ausgedruckt.

Hinweis: Wenn Sie zuletzt print(), printAsBitmap(), printAsBitmapNum() oder printNum() verwendet haben, um aus Flash zu drucken, haben Sie möglicherweise die Bildbezeichnung #pauf mehrere Bilder angewendet, um zu bestimmen, welche Seiten gedruckt werden sollen. Wenn Sie PrintJob.addPage() zum Drucken mehrerer Bilder verwenden, müssen Sie für jedes Bild die Methode PrintJob.addPage() verwenden. Die Bildbezeichnung #p wird ignoriert. Eine Möglichkeit, dies programmgesteuert vornehmen zu lassen, wird im Beispielabschnitt beschrieben.


Auslöser
Error — Löst eine Ausnahme aus, wenn PrintJob.start() nicht aufgerufen wurde oder der Benutzer den Druckauftrag abgebrochen hat.

Siehe auch

send()Methode 
public function send():void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9.

Sendet Seiten in der Druckwarteschlange an den Drucker, nachdem PrintJob.start() und PrintJob.addPage() erfolgreich ausgeführt wurden. Aufrufe von PrintJob.send() sind nicht erfolgreich, wenn der Aufruf von PrintJob.start() fehlschlägt oder wenn PrintJob.addpage() eine Ausnahme auslöst. Überprüfen Sie daher, ob PrintJob.start() den Wert true zurückgibt, und erfassen Sie alle PrintJob.addpage()-Ausnahmen vor dem Aufrufen von PrintJob.send(). Beispiel:

  var my_pj:PrintJob = new PrintJob();
  if (my_pj.start()) {
  try {
      my_pj.addPage([params]);
   }
    catch(e:Error) {
      // handle error 
   }
      my_pj.send();
  }
  

Siehe auch

start()Methode 
public function start():Boolean

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9.

Zeigt das Druckdialogfeld des Betriebssystems an, startet den Spoolvorgang und legt die schreibgeschützten Eigenschaftenwerte für das PrintJob-Objekt fest. Der Benutzer kann die Druckeinstellungen im Druckdialogfeld ändern. Wenn die PrintJob.start()-Methode erfolgreich zurückgegeben wird (der Benutzer klickt im Druckdialogfeld auf "OK"), sind die folgenden schreibgeschützten Eigenschaften angegeben, welche die aktuellen Druckeinstellungen des Benutzers darstellen.

EigenschaftTypEinheitenHinweis
PrintJob.paperHeightNumberPunktGesamthöhe des Papiers
PrintJob.paperWidthNumberPunktGesamtbreite des Papiers
PrintJob.pageHeightNumberPunktHöhe des tatsächlich druckbaren Seitenbereichs. Benutzerdefinierte Ränder werden ignoriert.
PrintJob.pageWidthNumberPunktBreite des tatsächlich druckbaren Seitenbereichs. Benutzerdefinierte Ränder werden ignoriert.
PrintJob.orientationString"portrait" (flash.printing.PrintJobOrientation.PORTRAIT) oder "landscape" (flash.printing.PrintJobOrientation.LANDSCAPE).

Hinweis: Wenn der Benutzer das Druckdialogfeld durch "Abbrechen" schließt, werden die Eigenschaften nicht eingetragen.

Wenn der Benutzer im Dialogfeld "Drucken" auf "OK" klickt, beginnt der Player damit, den Druckauftrag an die Druckwarteschlange des Betriebssystems zu übergeben. Da im Betriebssystem dann Informationen zum Druckstatus angezeigt werden, sollten Sie möglichst bald PrintJob.addPage() und PrintJob.send() aufrufen, damit Seiten an die Druckwarteschlange gesendet werden. Sie können die schreibgeschützten, mit dieser Methode angegebenen Eigenschaften für Höhe, Breite und Ausrichtung zum Formatieren des Ausdrucks verwenden.

Überprüfen Sie zunächst, ob diese Methode true zurückgibt (nachdem der Benutzer im Druckdialogfeld des Betriebssystems auf "OK" geklickt hat), und rufen Sie erst dann PrintJob.addPage() und PrintJob.send() auf:

  var my_pj:PrintJob = new PrintJob();
     if(my_pj.start()) {
       // Hier addPage()- und send()-Anweisung einfügen 
     }
  

Wenn eines der folgenden Intervalle bei der angegebenen Instanz des Druckauftrags ein Zeitlimit von 15 Sekunden überschreitet, wird beim darauf folgenden Aufruf von PrintJob.start() der Wert false zurückgegeben.

Rückgabewerte
Boolean — Der Wert true, wenn der Benutzer im angezeigten Druckdialogfeld auf "OK" klickt. false, wenn der Benutzer auf "Abbrechen" klickt oder ein Fehler auftritt.

Siehe auch

Beispiele Verwendung von Beispielen
PrintJobExample.as

Im folgenden Beispiel wird mithilfe der PrintJobExample-Klasse ein kleines Dokument erstellt und an den Drucker gesendet. Dies wird in den folgenden Schritten erreicht:
  1. Deklarieren Sie zwei Variablen vom Typ "Sprite" mit den Namen sheet1 und sheet2.
  2. Rufen Sie danach init() auf, womit sowohl sheet1 als auch sheet2 eine neue Sprite-Instanz zugewiesen wird. Anschließend wird createSheet() mithilfe von anderen Argumenten aufgerufen.
  3. createSheet() bewirkt Folgendes:
    1. Mithilfe des übergebenen Sprite-Objekts wird bei x = 0 und y = 0 ein Rechteck gezeichnet, und zwar mit einer Breite von 100 Pixel und einer Höhe von 200 Pixel, einem hellgrauen Hintergrund und einem schwarzen Rand mit einer Breite von 1 Pixel.
    2. Es wird ein neues TextField-Objekt mit dem Namen txt erstellt. Es weist die gleichen Abmessungen wie das Sprite-Objekt auf, die wordWrap-Eigenschaft ist auf true gesetzt, und die text-Eigenschaft ist auf den String gesetzt, der als Argument an createSheet() übergeben wurde.
    3. Wenn das übergebene Object-Argument nicht null ist, wird eine neue Sprite-Instanz mit dem Namen img erstellt. Mithilfe dieser Sprite-Instanz und der Koordinaten- und Abmessungseigenschaften des übergebenen "Object" wird ein weißes Rechteck gezeichnet. Das weiße Rechteck wird zur Anzeigeliste des Sprite-Objekts mithilfe von addChild() hinzugefügt.
    4. Das TextField-Objekt mit dem Namen txt wird zur Anzeigeliste des Sprite-Objekts mithilfe von addChild() hinzugefügt.
  4. Im Konstruktor wird die aktivierte Druckmethode (nicht auskommentiert) aufgerufen. Da sich die Methoden sehr ähneln, wird printOnePerPage() unten beschrieben.
  5. printOnePerPage() bewirkt Folgendes:
    1. Deklariert ein neues PrintJob-Objekt mit dem Namen pj und pagesToPrint als "uint".
    2. Öffnet das Druckdialogfeld des Betriebssystems, und wartet darauf, dass der Benutzer auf OK klickt.
    3. Überprüft die Ausrichtung und falls "Querformat" gewählt wurde, wird ein Fehler ausgegeben und der Vorgang beendet.
    4. Stellt die Höhe und Breite der Seite für sheet1 und sheet2 ein.
    5. Sendet sheet1 und sheet2 mithilfe von addPage() an die Druckwarteschlange.
    6. Wenn die Zahl der zu druckenden Seiten größer 0 ist, werden alle Seiten in der Druckwarteschlange gedruckt.
  6. Die draw()-Methode wird aufgerufen, mit der die Größe der beiden Sprite-Eigenschaften geändert wird, sodass es auf die Bühne passt. Außerdem wird sheet2 verschoben, und zwar an eine Position unmittelbar rechts nebensheet1.

Hinweis: Der Konstruktor bietet drei Druckmethoden zur Auswahl an: ein Blatt pro Seite, zwei Blätter pro Seite oder Drucken auf die obere Hälfte der Seite. Dieses Beispiel kann nur korrekt ausgeführt werden, wenn zwei der Druckmethoden mithilfe von Code-Kommentaren deaktiviert wurden. Das Beispiel wurde so eingerichtet, dass printOnePerPage() aufgerufen wird.

package {
    import flash.printing.PrintJob;
    import flash.printing.PrintJobOrientation;
    import flash.display.Stage;
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.geom.Rectangle;
       
    public class PrintJobExample extends Sprite {
        private var sheet1:Sprite;
        private var sheet2:Sprite;
           
        public function PrintJobExample() {
            init();
            printOnePerPage();
//            printTwoPerPage();
//            printTopHalf();
            draw();
        }
        
        private function init():void {
            sheet1 = new Sprite();
            createSheet(sheet1, "Once upon a time...", {x:10, y:50, width:80, height:130});

            sheet2 = new Sprite();
            createSheet(sheet2, "There was a great story to tell, and it ended quickly.\n\nThe end.", null);
        }
        
        private function createSheet(sheet:Sprite, str:String, imgValue:Object):void {
            sheet.graphics.beginFill(0xEEEEEE);
            sheet.graphics.lineStyle(1, 0x000000);
            sheet.graphics.drawRect(0, 0, 100, 200);
            sheet.graphics.endFill();
            
            var txt:TextField = new TextField();
            txt.height = 200;
            txt.width = 100;
            txt.wordWrap = true;
            txt.text = str;
            
            if(imgValue != null) {
                var img:Sprite = new Sprite();
                img.graphics.beginFill(0xFFFFFF);
                img.graphics.drawRect(imgValue.x, imgValue.y, imgValue.width, imgValue.height);
                img.graphics.endFill();
                sheet.addChild(img);
            }
            sheet.addChild(txt);
        }
        
        private function printOnePerPage():void {
            var pj:PrintJob = new PrintJob();
            var pagesToPrint:uint = 0;
            if(pj.start()) {                
                if(pj.orientation == PrintJobOrientation.LANDSCAPE) {    
                    throw new Error("Without embedding fonts you must print one sheet per page with an orientation of portrait.");
                }
                
                sheet1.height = pj.pageHeight;
                sheet1.width = pj.pageWidth;
                sheet2.height = pj.pageHeight;
                sheet2.width = pj.pageWidth;

                try {
                    pj.addPage(sheet1);
                    pagesToPrint++;
                }
                catch(e:Error) {
                    // do nothing
                }

                try {
                    pj.addPage(sheet2);
                    pagesToPrint++;
                }
                catch(e:Error) {
                    // do nothing
                }

                if(pagesToPrint > 0) {
                    pj.send();
                }
            }
        }
        
        private function printTwoPerPage():void {
            var pj:PrintJob = new PrintJob();
            var pagesToPrint:uint = 0;
            if(pj.start()) {                
                if(pj.orientation == PrintJobOrientation.PORTRAIT) {
                    throw new Error("Without embedding fonts you must print two sheets per page with an orientation of landscape.");
                }
                
                sheet1.height = pj.pageHeight;
                sheet1.width = pj.pageWidth/2;
                sheet2.height = pj.pageHeight;
                sheet2.width = pj.pageWidth/2;

                var sheets:Sprite = new Sprite();
                sheets.addChild(sheet1);
                sheets.addChild(sheet2);
                sheets.getChildAt(1).x = sheets.getChildAt(0).width;
                try {
                    pj.addPage(sheets);
                    pagesToPrint++;
                }
                catch(e:Error) {
                    // do nothing
                }

                if(pagesToPrint > 0) {
                    pj.send();
                }
            }
        }

        private function printTopHalf():void {
            var pj:PrintJob = new PrintJob();
            var pagesToPrint:uint = 0;
            if(pj.start()) {                
                if(pj.orientation == PrintJobOrientation.PORTRAIT) {
                    throw new Error("Without embedding fonts you must print the top half with an orientation of landscape.");
                }
                
                sheet1.height = pj.pageHeight;
                sheet1.width = pj.pageWidth/2;
                sheet2.height = pj.pageHeight;
                sheet2.width = pj.pageWidth/2;

                var sheets:Sprite = new Sprite();
                sheets.addChild(sheet1);
                sheets.addChild(sheet2);
                sheets.getChildAt(1).x = sheets.getChildAt(0).width;
                try {
                    pj.addPage(sheets, new Rectangle(0, 0, sheets.width, sheets.height/2));
                    pagesToPrint++;
                }
                catch(e:Error) {
                    // do nothing
                }

                if(pagesToPrint > 0) {
                    pj.send();
                }
            }
        }


        private function draw():void {
            var sheetWidth:Number = this.stage.stageWidth/2;
            var sheetHeight:Number = this.stage.stageHeight;
            
            addChild(sheet1);
            sheet1.width = sheetWidth;
            sheet1.height = sheetHeight;
            
            addChild(sheet2);
            sheet2.width = sheetWidth;
            sheet2.height = sheetHeight;
            sheet2.x = sheet1.width;
        }        
    }
}




 

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

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/printing/PrintJob.html