Packageflash.printing
Classepublic class PrintJob
HéritagePrintJob Inheritance EventDispatcher Inheritance Object

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

La classe PrintJob permet de créer un contenu et de l'imprimer sur une ou plusieurs pages. Elle vous permet d’effectuer le rendu du contenu visible, dynamique ou hors écran du point de vue de l’utilisateur, de proposer à celui-ci une boîte de dialogue d’impression unique et d’imprimer un document non redimensionné dans des proportions correspondant au contenu. Cette fonctionnalité est particulièrement utile pour rendre et imprimer le contenu dynamique, par exemple le contenu et le texte dynamique d'une base de données.

Utilisez le constructeur PrintJob() pour créer une tâche d’impression.

En outre, une fois les propriétés remplies par PrintJob.start(), votre document peut lire les réglages d'impression de l'utilisateur, tels que la hauteur, la largeur et l'orientation de la page ; vous pouvez également configurer votre document afin de mettre en forme dynamiquement le contenu Flash en fonction des réglages de l'imprimante. Les propriétés de disposition utilisateur remplies par PrintJob.start() sont en lecture seule et ne peuvent pas être modifiées par Flash Player.

Remarque : à l’inverse des versions précédentes, ActionScript 3 0 ne limite pas un objet PrintJob à une image unique. Toutefois, dans la mesure où le système d’exploitation affiche des informations sur l’état de l’impression dès que l'utilisateur clique sur le bouton OK de la boîte de dialogue d’impression, il est conseillé d'appeler PrintJob.addPage() et PrintJob.send() dès que possible pour envoyer les pages au spouleur. Si l’accès à l’image contenant l’appel PrintJob.send() est soumis à un délai, le processus d’impression est également retardé.

En outre, un délai d’expiration du script de 15 secondes s’applique aux intervalles suivants :

Si l’un des intervalles précédents excède 15 secondes, l’appel suivant de la méthode PrintJob.start() pour l’occurrence de PrintJob renvoie false, et l’appel suivant de la méthode PrintJob.addPage() pour l’occurrence de PrintJob provoque une exception d’exécution par Flash Player.

Consulter les exemples

Voir aussi

Principes de base de l'impression
Impression d'une page


Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
  orientation : String
[lecture-seule] Orientation de l'image à imprimer.
PrintJob
  pageHeight : int
[lecture-seule] Hauteur de la zone imprimable réelle de la page, en points.
PrintJob
  pageWidth : int
[lecture-seule] Largeur de la zone imprimable réelle de la page, en points.
PrintJob
  paperHeight : int
[lecture-seule] Hauteur totale du papier, en points.
PrintJob
  paperWidth : int
[lecture-seule] Largeur totale du papier, en points.
PrintJob
 Inheritedprototype : Object
[static] Référence à l’objet prototype d’un objet de classe ou fonction.
Object
Méthodes publiques
 MéthodeDéfini par
  
Crée un objet PrintJob permettant d'imprimer une ou plusieurs pages.
PrintJob
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement.
EventDispatcher
  
addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Envoie l’objet Sprite spécifié en tant que page unique au spouleur d'impression.
PrintJob
 Inherited
Distribue un événement dans le flux d’événements.
EventDispatcher
 Inherited
Vérifie si des écouteurs sont enregistrés auprès de l'objet EventDispatcher pour un type spécifique d’événement.
EventDispatcher
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l'objet spécifié en tant que paramètre.
Object
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Supprime un écouteur de l’objet EventDispatcher.
EventDispatcher
  
Envoie les pages mises en file d’attente à l’imprimante une fois que PrintJob.start() et PrintJob.addPage() ont abouti.
PrintJob
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
  
Affiche la boîte de dialogue d’impression du système d’exploitation, démarre la mise en file d’attente et définit les valeurs des propriétés en lecture seule de l’objet PrintJob.
PrintJob
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
 Inherited
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié.
EventDispatcher
Evénements
 Evénement Synthèse Défini par
 Inherited Distribué lorsque Flash Player a le focus du système d’exploitation et devient actif.EventDispatcher
 Inherited Distribué lorsque Flash Player perd le focus du système d’exploitation et devient inactif.EventDispatcher
Détails des propriétés
orientationpropriété
orientation:String  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9.

Orientation de l'image à imprimer. Cette propriété est une valeur de la classe PrintJobOrientation. Elle n’est disponible qu’après l’exécution d’un appel de la méthode PrintJob.start().


Implémentation
    public function get orientation():String

Voir aussi

pageHeightpropriété 
pageHeight:int  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9.

Hauteur de la zone imprimable réelle de la page, en points. Les marges éventuellement définies par l'utilisateur sont ignorées. Cette propriété n’est disponible qu’après l’exécution d’un appel de la méthode PrintJob.start().


Implémentation
    public function get pageHeight():int

Voir aussi

pageWidthpropriété 
pageWidth:int  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9.

Largeur de la zone imprimable réelle de la page, en points. Les marges éventuellement définies par l'utilisateur sont ignorées. Cette propriété n’est disponible qu’après l’exécution d’un appel de la méthode PrintJob.start().


Implémentation
    public function get pageWidth():int

Voir aussi

paperHeightpropriété 
paperHeight:int  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9.

Hauteur totale du papier, en points. Elle n’est disponible qu’après l’exécution d’un appel de la méthode PrintJob.start().


Implémentation
    public function get paperHeight():int
paperWidthpropriété 
paperWidth:int  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9.

Largeur totale du papier, en points. Elle n’est disponible qu’après l’exécution d’un appel de la méthode PrintJob.start().


Implémentation
    public function get paperWidth():int
Détails du constructeur
PrintJob()Constructeur
public function PrintJob()

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Crée un objet PrintJob permettant d'imprimer une ou plusieurs pages. Après avoir créé un objet PrintJob, vous devez utiliser (dans l’ordre spécifié) les méthodes PrintJob.start(), PrintJob.addPage() et PrintJob.send() pour envoyer la tâche d’impression à l’imprimante.

Vous pouvez, par exemple, remplacer l’espace réservé texte [params] associé aux appels de la méthode my_pj.addPage() par des paramètres personnalisés, comme indiqué dans le code ci-dessous :

 // 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();
 }
 

Vous ne pouvez pas créer un deuxième objet PrintJob si le premier est toujours actif. Si vous créez un deuxième objet PrintJob (en appelant new PrintJob()) tandis que le premier objet PrintJob est toujours actif, le deuxième objet PrintJob ne sera pas créé. Il est donc recommandé de vérifier la valeur de my_pj avant de créer un deuxième objet PrintJob.


Lance
IllegalOperationError — Renvoie une exception si un autre objet PrintJob est encore actif.

Voir aussi

Détails des méthodes
addPage()méthode
public function addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9.

Envoie l’objet Sprite spécifié en tant que page unique au spouleur d'impression. Avant d’utiliser cette méthode, vous devez créer un objet PrintJob, puis utiliser PrintJob.start(). Après avoir appelé une ou plusieurs fois PrintJob.addPage() pour une tâche d'impression, utilisez PrintJob.send() pour envoyer à l'imprimante les pages mises en file d'attente. En d’autres termes, après avoir créé un objet PrintJob, utilisez (dans l’ordre spécifié) PrintJob.start(), PrintJob.addPage(), puis PrintJob.send() pour envoyer la tâche d’impression à l’imprimante. Vous pouvez utiliser plusieurs fois PrintJob.addPage() après avoir appelé une seule fois PrintJob.start() pour imprimer immédiatement plusieurs pages.

Si PrintJob.addPage() entraîne le renvoi d’une exception par Flash Player (par exemple, si vous n'avez pas appelé PrintJob.start() ou si l'utilisateur a annulé la tâche d'impression), les prochains appels de PrintJob.addPage() échoueront. Cependant, si les appels précédents de PrintJob.addPage() ont réussi, la commande finale de PrintJob.send() envoie les pages correctement mises en file d'attente vers l'imprimante.

Si la tâche d’impression met plus de 15 secondes à exécuter une opération PrintJob.addPage(), Flash Player renvoie une exception au prochain appel de Print.addPage().

Si vous avez transmis une valeur pour le paramètre printArea, les coordonnées x et y de l’objet printArea établissent une correspondance avec le coin supérieur gauche (coordonnées 0,0) de la zone imprimable sur la page. La zone imprimable est décrite par les propriétés pageHeight et pageWidth en lecture seule qui sont définies par PrintJob.start(). Dans la mesure où elle s'aligne sur le coin supérieur gauche de la zone imprimable sur la page, l'impression est recadrée sur la droite et/ou le bas de la zone définie par printArea si la taille de cette zone printArea est supérieure à celle de la zone imprimable sur la page. Si vous ne transmettez pas de valeur pour printArea et si la taille de la scène est supérieure à celle de la zone imprimable, le même type de découpage est effectué.

Si vous souhaitez redimensionner un objet Sprite avant de l'imprimer, définissez ses propriétés d’échelle (voir flash.display.DisplayObject.scaleX et flash.display.DisplayObject.scaleY) avant d'appeler cette méthode, puis restaurez leur valeur d'origine après l’impression. L'échelle d'un objet Sprite ne dépend pas de printArea. Autrement dit, si vous spécifiez une zone d'impression dont la taille est 50 x 50 pixels, 2 500 pixels sont imprimés. Si vous redimensionnez l’objet Sprite, les 2 500 pixels sont imprimés, mais l’objet est imprimé à l'échelle retenue.

La fonction d'impression de Flash Player prend en charge les imprimantes PostScript et non PostScript. Les imprimantes non PostScript convertissent les vecteurs en bitmaps.

Paramètres

sprite:Sprite — Nom de l’occurrence du sprite à imprimer.
 
printArea:Rectangle (default = null) — Objet Rectangle qui spécifie la zone à imprimer.

La largeur et la hauteur d’un rectangle correspondent à des valeurs de pixel. Une imprimante utilise les points en tant qu'unités de mesure. Les points ont une taille physique fixe (1/72ème de pouce), mais la taille d’un pixel à l’écran varie selon la résolution de ce dernier. De ce fait, le taux de conversion entre les pixels et les points dépend de la configuration de l'imprimante et du redimensionnement éventuel du sprite. Un sprite non redimensionné d’une largeur de 72 pixels mesure un pouce (2,54 cm) de large lorsqu'il est imprimé, sachant qu'un point correspond à un pixel quelle que soit la résolution de l'écran.

Vous pouvez utiliser les équivalences suivantes pour convertir les pouces ou les centimètres en twips ou points (un twip correspond à 1/20ème de point) :

  • 1 point = 1/72ème de pouce = 20 twips
  • 1 pouce = 72 points = 1 440 twips
  • 1 cm = 567 twips

Si vous omettez le paramètre printArea ou s'il est transmis de façon incorrecte, toute la zone du sprite est imprimée.

Si vous ne souhaitez pas spécifier de valeur pour printArea mais en spécifier une pour options ou frameNum, transmettez null pour printArea.

 
options:PrintJobOptions (default = null) — Paramètre facultatif qui spécifie une impression sous forme de vecteur ou de bitmap. La valeur par défaut est null, ce qui représente une demande d'impression vectorielle. Pour imprimer le sprite sous forme de bitmap, réglez la propriété printAsBitmap de l’objet PrintJobOptions sur true. Tenez compte des suggestions suivantes pour décider s’il est judicieux de régler printAsBitmap sur true :
  • Si le contenu à imprimer comprend une image bitmap, réglez printAsBitmap sur true pour inclure tout effet de transparence alpha et de couleur.
  • Si le contenu ne comporte pas d'images bitmap, omettez ce paramètre pour imprimer le contenu au format vectoriel qui est de qualité supérieure.

Si options est omis ou transmis de façon incorrecte, l'impression vectorielle s'applique. Si vous ne souhaitez pas spécifier de valeur pour options mais que vous voulez spécifier une valeur pour frameNumber, transmettez null pour options.

 
frameNum:int (default = 0)Nombre facultatif qui permet de spécifier quelle image imprimer. Le fait de transmettre frameNum n'entraîne pas l'appel d'ActionScript sur cette image. Si vous omettez ce paramètre, l'image active du sprite est imprimée.

Remarque : si vous avez précédemment utilisé print(), printAsBitmap(), printAsBitmapNum() ou printNum() pour imprimer à partir de Flash, vous avez peut-être utilisé une étiquette d'image #p sur plusieurs images pour spécifier les pages à imprimer. Pour utiliser PrintJob.addPage() afin d'imprimer plusieurs images, vous devez utiliser une méthode PrintJob.addPage() par image ; les étiquettes d'image #p sont ignorées. Pour savoir comment procéder par programmation, consultez la section Exemple.


Lance
Error — Renvoie une exception si vous n'avez pas appelé PrintJob.start() ou si l’utilisateur a annulé la tâche d’impression.

Voir aussi

send()méthode 
public function send():void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9.

Envoie les pages mises en file d’attente à l’imprimante une fois que PrintJob.start() et PrintJob.addPage() ont abouti. Les appels de PrintJob.send() échouent si l'appel de PrintJob.start() échoue ou si PrintJob.addpage() renvoie une exception. Vous devez donc vérifier que PrintJob.start() renvoie true et repérer toute exception PrintJob.addpage() avant d’appeler PrintJob.send(). Exemple :

  var my_pj:PrintJob = new PrintJob();
    if (my_pj.start()) {
    try {
      my_pj.addPage([params]);
   }
    catch(e:Error) {
      // gérez l'erreur 
   }
      my_pj.send();
  }
  

Voir aussi

start()méthode 
public function start():Boolean

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9.

Affiche la boîte de dialogue d’impression du système d’exploitation, démarre la mise en file d’attente et définit les valeurs des propriétés en lecture seule de l’objet PrintJob. La boîte de dialogue d'impression permet à l'utilisateur de modifier les réglages d'impression. Lorsque le retour de la méthode PrintJob.start() est correct (l’utilisateur clique sur OK dans la boîte de dialogue d’impression), les propriétés en lecture seule suivantes, qui représentent les réglages d'impression en cours de l'utilisateur, sont renseignées :

PropriétéType[MULTIBYTE]UnitsRemarques
PrintJob.paperHeightNombrePointsHauteur totale du papier.
PrintJob.paperWidthNombrePointsLargeur totale du papier.
PrintJob.pageHeightNombrePointsHauteur de la zone imprimable réelle de la page. Les marges éventuellement définies par l'utilisateur sont ignorées.
PrintJob.pageWidthNombrePointsLargeur de la zone imprimable réelle de la page. Les marges éventuellement définies par l'utilisateur sont ignorées.
PrintJob.orientationChaîne"portrait" (flash.printing.PrintJobOrientation.PORTRAIT) ou "paysage" (flash.printing.PrintJobOrientation.LANDSCAPE).

Remarque : si l’utilisateur annule la boîte de dialogue d'impression, les propriétés ne sont pas renseignées.

Une fois que l'utilisateur a cliqué sur OK dans la boîte de dialogue d’impression, le lecteur démarre le processus de mise en attente d’une tâche d'impression dans le système d'exploitation. Dans la mesure où le système d’exploitation commence alors à afficher des informations sur le déroulement de l’impression, il est conseillé d'appeler PrintJob.addPage() et PrintJob.send() dès que possible pour envoyer les pages au spouleur. Vous pouvez utiliser les propriétés en lecture seule height, width et orientation qui sont renseignées par cette méthode pour mettre en forme l'impression.

Vérifiez que cette méthode renvoie la valeur true (lorsque l'utilisateur clique sur OK dans la boîte de dialogue d’impression du système d'exploitation) avant d'appeler à nouveau PrintJob.addPage() et PrintJob.send() :

  var my_pj:PrintJob = new PrintJob();
     if(my_pj.start()) {
       //  instructions addPage() et send() ici 
     }
  

Si l’un des intervalles suivants dure plus de 15 secondes pour l’occurrence de la tâche d’impression spécifiée, le prochain appel de PrintJob.start() renvoie false :

Valeur renvoyée
Boolean — Renvoie true si l'utilisateur clique sur OK lorsque la boîte de dialogue d'impression s’affiche, false s’il clique sur Annuler ou si une erreur se produit.

Voir aussi

Exemples Utilisation des exemples
PrintJobExample.as

L'exemple suivant utilise la classe PrintJobExample pour créer un petit document qui est ensuite envoyé à l'imprimante. Cette opération se déroule selon la procédure suivante :
  1. Deux variables de type Sprite, nommées sheet1 et sheet2, sont déclarées.
  2. init() est appelé pour attribuer une nouvelle occurrence de Sprite à sheet1 et sheet2, et pour appeler ensuite createSheet() au moyen de différents arguments.
  3. createSheet() produit le résultat suivant :
    1. L'objet Sprite transmis est utilisé pour dessiner un rectangle d'une largeur de 100 pixels pour une hauteur de 200 pixels (x = 0 et y = 0), avec un arrière-plan de couleur gris clair et une bordure noire d'un pixel d'épaisseur.
    2. Un nouvel objet TextField, nommé txt, est créé en utilisant les dimensions du Sprite ; la propriété wordWrap est définie sur true et la propriété text est définie sur le Sprite transmis comme argument à createSheet().
    3. Si la valeur de l'argument Object transmis n'est pas null, créez une nouvelle occurrence du Sprite nommée img et utilisée pour dessiner un rectangle blanc à l'aide des propriétés de dimension et de coordonnée de l'objet transmis. Le rectangle blanc est ajouté à la liste d'affichage de l'objet Sprite par le biais de addChild().
    4. L'objet TextField txt est ajouté à la liste d'affichage de l'objet Sprite au moyen de addChild().
  4. Au niveau du constructeur, la méthode d'impression qui est activée (pas commentée) est appelée. En raison de la similitude des méthodes, seule printOnePerPage() est décrite ci-dessous.
  5. printOnePerPage() produit le résultat suivant :
    1. Déclaration d'un nouvel objet PrintJob, nommé pj, et de pagesToPrint en tant que uint.
    2. Ouverture de la boîte de dialogue d'impression native du système d'exploitation et attente que l'utilisateur clique sur OK.
    3. Vérification de l'orientation et si l'option Paysage est sélectionnée, renvoi d'une erreur et fermeture.
    4. Définition de la hauteur et de la largeur de la page pour sheet1 et sheet2.
    5. Envoi de sheet1 et sheet2 au spouleur d'impression par le biais de addPage().
    6. Si le nombre de pages à imprimer est > 0, impression de toutes les pages spoulées.
  6. La méthode draw() est appelée, redimensionnement des deux propriétés Sprite pour les intégrer à la scène avec un repositionnement de sheet2 pour qu'elle se situe juste à droite de sheet1.

Remarque : le constructeur est configuré de telle manière que l'une des trois méthodes d'impression (une feuille par page, deux feuilles par page ou impression dans la moitié supérieure de la page) peut être sélectionnée en fonction d'une préférence. Cet exemple ne s'exécutera pas correctement à moins que précisément deux des méthodes d'impression ne soient désactivées au moyen de commentaires de code. L'exemple est conçu pour que printOnePerPage() soit appelée.

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




 

M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire

Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/printing/PrintJob.html