Pacchettoflash.printing
Classepublic class PrintJob
EreditarietàPrintJob Inheritance EventDispatcher Inheritance Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

La classe PrintJob consente di creare del contenuto e stamparlo su una o più pagine. Questa classe consente di eseguire il rendering del contenuto visibile, dinamico o fuori schermo, visualizza le richieste per gli utenti in una sola finestra di dialogo di stampa e stampa un documento non modificato in scala ma con le stesse proporzioni del contenuto. Questa capacità è particolarmente utile per il rendering e la stampa di contenuto dinamico, come nel caso di database e testo dinamico.

Utilizzare la funzione di costruzione PrintJob() per creare un lavoro di stampa.

Inoltre, è possibile impostare le proprietà con PrintJob.start() per accedere alle impostazioni stampante dell'utente (ad esempio, altezza, larghezza e orientamento) o per configurare il documento in modo che formatti dinamicamente il contenuto Flash in base alle impostazioni della stampante. Le proprietà di layout per l'utente impostate con PrintJob.start() sono di sola lettura e non possono essere modificate da Flash Player.

Nota: ActionScript 3.0 non limita un oggetto PrintJob a un fotogramma singolo (come accadeva nelle versioni precedenti di ActionScript). Tuttavia, siccome le informazioni dello stato di stampa vengono visualizzate dopo che si fa clic sul pulsante OK nella finestra di dialogo di stampa, è necessario chiamare PrintJob.addPage() e PrintJob.send() il più presto possibile per inviare le pagine allo spooler. Se il fotogramma contenente la chiamata PrintJob.send() viene raggiunto in ritardo, il processo di stampa viene ritardato.

Inoltre, un limite di timeout dello script di 15 secondi si applica ai seguenti intervalli:

Se uno di questi intervalli supera il limite di 15 secondi, la successiva chiamata a PrintJob.start() nell'istanza PrintJob restituisce false, e la successiva chiamata a PrintJob.addPage() nell'istanza PrintJob causa la generazione di un'eccezione di runtime da parte di Flash Player.

Vedere gli esempi

Vedere anche

Elementi fondamentali della stampa
Stampa di una pagina


Proprietà pubbliche
 ProprietàDefinito da
 Inheritedconstructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
  orientation: String
[sola lettura] L'orientamento dell'immagine per la stampa.
PrintJob
  pageHeight: int
[sola lettura] L'altezza dell'area stampabile effettiva sulla pagina, espressa in punti.
PrintJob
  pageWidth: int
[sola lettura] La larghezza dell'area stampabile effettiva sulla pagina, espressa in punti.
PrintJob
  paperHeight: int
[sola lettura] L'altezza totale del foglio, espressa in punti.
PrintJob
  paperWidth: int
[sola lettura] La larghezza totale del foglio, espressa in punti.
PrintJob
 Inheritedprototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
Object
Metodi pubblici
 MetodoDefinito da
  
Crea un oggetto PrintJob che può essere utilizzato per stampare una o più pagine.
PrintJob
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento.
EventDispatcher
  
addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
Invia l'oggetto Sprite specificato come pagina singola allo spooler di stampa.
PrintJob
 Inherited
Invia un evento nel flusso di eventi.
EventDispatcher
 Inherited
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento.
EventDispatcher
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Rimuove un listener dall'oggetto EventDispatcher.
EventDispatcher
  
Invia alla stampante le pagine elaborate dallo spooler in seguito all'esito positivo delle chiamate a PrintJob.start() e PrintJob.addPage().
PrintJob
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
  
Visualizza la finestra di dialogo di stampa del sistema operativo, avvia lo spooling e imposta i valori delle proprietà di sola lettura di PrintJob.
PrintJob
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
 Inherited
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato.
EventDispatcher
Eventi
 Evento Riepilogo Definito da
 Inherited Inviato quando Flash Player riceve lo stato di attivazione del sistema operativo e diventa attivo.EventDispatcher
 Inherited Inviato quando Flash Player perde lo stato di attivazione del sistema operativo e sta per diventare inattivo.EventDispatcher
Descrizione delle proprietà
orientationproprietà
orientation:String  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9.

L'orientamento dell'immagine per la stampa. Questa proprietà è un valore della classe PrintJobOrientation ed è disponibile solo in seguito a una chiamata al metodo PrintJob.start().


Implementazione
    public function get orientation():String

Vedere anche

pageHeightproprietà 
pageHeight:int  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9.

L'altezza dell'area stampabile effettiva sulla pagina, espressa in punti. Gli eventuali margini impostati dall'utente vengono ignorati. ed è disponibile solo in seguito a una chiamata al metodo PrintJob.start().


Implementazione
    public function get pageHeight():int

Vedere anche

pageWidthproprietà 
pageWidth:int  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9.

La larghezza dell'area stampabile effettiva sulla pagina, espressa in punti. Gli eventuali margini impostati dall'utente vengono ignorati. ed è disponibile solo in seguito a una chiamata al metodo PrintJob.start().


Implementazione
    public function get pageWidth():int

Vedere anche

paperHeightproprietà 
paperHeight:int  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9.

L'altezza totale del foglio, espressa in punti. ed è disponibile solo in seguito a una chiamata al metodo PrintJob.start().


Implementazione
    public function get paperHeight():int
paperWidthproprietà 
paperWidth:int  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9.

La larghezza totale del foglio, espressa in punti. ed è disponibile solo in seguito a una chiamata al metodo PrintJob.start().


Implementazione
    public function get paperWidth():int
Descrizione della funzione di costruzione
PrintJob()Funzione di costruzione
public function PrintJob()

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Crea un oggetto PrintJob che può essere utilizzato per stampare una o più pagine. Dopo aver creato l'oggetto PrintJob, è necessario utilizzare (nella sequenza seguente) i metodi PrintJob.start(), PrintJob.addPage() e PrintJob.send() per inviare un lavoro di stampa alla stampante.

Ad esempio, è possibile sostituire il testo segnaposto [params] per le chiamate al metodo my_pj.addPage() con parametri personalizzati, come nel codice seguente:

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

Non è possibile creare un secondo oggetto PrintJob mentre il primo è ancora attivo. Se si crea un secondo oggetto PrintJob (mediante una chiamata a new PrintJob()) mentre il primo oggetto PrintJob è ancora attivo, il secondo non viene creato. Per questo motivo, prima di creare un secondo PrintJob verificare la presenza del valore my_pj.


Genera
IllegalOperationError — Genera un'eccezione se un altro oggetto PrintJob è ancora attivo.

Vedere anche

Descrizione dei metodi
addPage()metodo
public function addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9.

Invia l'oggetto Sprite specificato come pagina singola allo spooler di stampa. Prima di utilizzare questo metodo, è necessario creare un oggetto PrintJob e quindi utilizzare PrintJob.start(). In seguito, dopo aver effettuato una o più chiamate a PrintJob.addPage() per un lavoro di stampa, utilizzare PrintJob.send() per inviare alla stampante le pagine elaborate dallo spooler. In altre parole, dopo aver creato l'oggetto PrintJob, utilizzare (nella sequenza seguente) i metodi PrintJob.start(), PrintJob.addPage() e PrintJob.send() per inviare un lavoro di stampa alla stampante. È possibile utilizzare PrintJob.addPage() più volte in seguito a una chiamata singola a PrintJob.start() per stampare più pagine contemporaneamente.

Se PrintJob.addPage() provoca la generazione di un'eccezione da parte di Flash Player (ad esempio se non è stata effettuata una chiamata a PrintJob.start() o se l'utente ha annullato il lavoro di stampa), tutte le successive chiamate a PrintJob.addPage() danno esito negativo. Tuttavia, se le precedenti chiamate a PrintJob.addPage() sono state effettuate correttamente, il comando PrintJob.send() conclusivo invia alla stampante le pagine inserite correttamente nello spool.

Se il lavoro di stampa impiega più di 15 secondi per completare un'operazione PrintJob.addPage(), Flash Player genera un'eccezione alla successiva chiamata a Print.addPage().

Se si passa un valore per il parametro printArea, le coordinate x e y dell'oggetto printArea vengono mappate all'angolo superiore sinistro (coordinate 0,0) dell'area stampabile della pagina. L'area stampabile è descritta dalle proprietà di sola lettura pageHeight e pageWidth impostate da PrintJob.start(). Dal momento che la pagina stampata è allineata all'angolo superiore sinistro dell'area stampabile della pagina, se l'area definita in printArea è superiore all'area stampabile della pagina, la pagina stampata viene troncata sul lato destro e/o inferiore dell'area definita da printArea. Se non si passa un valore per printArea e lo stage è più grande dell'area stampabile, viene applicato lo stesso tipo di troncatura.

Per modificare in scala un oggetto Sprite prima della stampa, impostarne le proprietà (vedere flash.display.DisplayObject.scaleX e flash.display.DisplayObject.scaleY) prima di chiamare questo metodo e impostarle di nuovo sui rispettivi valori originali dopo la stampa. La scala di un oggetto Sprite non ha alcuna relazione con printArea. In altre parole, se si specifica un'area di stampa di 50 x 50 pixel, vengono stampati 2500 pixel. Se si modifica in scala l'oggetto Sprite, vengono stampati gli stessi 2500 pixel ma l'oggetto viene stampato nelle dimensioni modificate in scala.

La funzione di stampa di Flash Player supporta le stampanti PostScript e non PostScript. Le stampanti non PostScript convertono la grafica vettoriale in bitmap.

Parametri

sprite:Sprite — Il nome dell'istanza dell'oggetto Sprite da stampare.
 
printArea:Rectangle (default = null) — Un oggetto Rectangle che specifica l'area da stampare.

La larghezza e l'altezza del rettangolo sono espresse in pixel. L'unità di misura di stampa utilizzata da una stampante è il punto. I punti hanno dimensioni fisiche fisse (1/72 di pollice), mentre le dimensioni di un pixel dipendono dalla risoluzione specifica dello schermo. Il tasso di conversione tra pixel e punti varia a seconda delle impostazioni della stampante e se l'oggetto Sprite è stato modificato in scala. Un oggetto sprite non modificato in scala largo 72 pixel verrà stampato con una larghezza di un pollice, con un punto equivalente a un pixel, indipendentemente dalla risoluzione dello schermo.

È possibile utilizzare le seguenti equivalenze per convertire pollici o centimetri in twip o punti (un twip corrisponde a 1/20 di punto):

  • 1 punto = 1/72 di pollice = 20 twip
  • 1 pollice = 72 punti = 1440 twip
  • 1 cm = 567 twip

Se si omette il parametro printArea oppure se questo viene passato in modo non corretto, viene stampata l'intera area di sprite.

Se non si desidera specificare un valore per printArea ma un valore per options o frameNum, passare null per printArea.

 
options:PrintJobOptions (default = null) — Un parametro opzionale che specifica se stampare un'immagine vettoriale o una bitmap. Il valore predefinito è null, che rappresenta una richiesta di stampa vettoriale. Per stampare sprite come bitmap, impostare la proprietà printAsBitmap dell'oggetto PrintJobOptions su true. Per decidere se impostare printAsBitmap su true, ricordare quanto segue:
  • Se il contenuto da stampare include un'immagine bitmap, impostare printAsBitmap su true per mantenere gli effetti di colore e di trasparenza alfa.
  • Se nel contenuto non sono presenti immagini bitmap, omettere questo parametro per stampare il contenuto in formato vettoriale con una qualità migliore.

Se si omette options o se il parametro non viene passato correttamente, viene utilizzata la stampa vettoriale. Se non si desidera specificare un valore per options ma un valore per frameNumber, passare null per options.

 
frameNum:int (default = 0)Un numero che consente di specificare quale fotogramma stampare; se si passa frameNum, non viene richiamato il codice ActionScript di quel fotogramma. Se si omette questo parametro, viene stampato il fotogramma corrente in sprite.

Nota: se in precedenza sono stati utilizzati print(), printAsBitmap(), printAsBitmapNum() o printNum() per stampare da Flash, è possibile che sia stata usata un'etichetta di fotogramma #p su più fotogrammi per specificare le pagine da stampare. Per utilizzare PrintJob.addPage() per stampare più fotogrammi, è necessario utilizzare il metodo PrintJob.addPage() per ciascun fotogramma; le etichette di fotogramma #p vengono ignorate. Per un esempio dell'esecuzione di questa operazione a livello di codice, consultare la sezione Esempio.


Genera
Error — Genera un'eccezione se non è stata effettuata una chiamata a PrintJob.start() oppure se l'utente ha annullato il lavoro di stampa.

Vedere anche

send()metodo 
public function send():void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9.

Invia alla stampante le pagine elaborate dallo spooler in seguito all'esito positivo delle chiamate a PrintJob.start() e PrintJob.addPage(). Le chiamate a PrintJob.send() non vengono eseguite correttamente se la chiamata a PrintJob.start() fallisce oppure se PrintJob.addpage() genera un'eccezione. Per questo motivo, prima di chiamare PrintJob.send(), è necessario verificare che PrintJob.start() restituisca true e rilevare eventuali eccezioni di PrintJob.addpage(). Ad esempio:

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

Vedere anche

start()metodo 
public function start():Boolean

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9.

Visualizza la finestra di dialogo di stampa del sistema operativo, avvia lo spooling e imposta i valori delle proprietà di sola lettura di PrintJob. Questa finestra di dialogo consente all'utente di modificare le impostazioni di stampa. Quando il metodo PrintJob.start() restituisce un valore corretto (l'utente fa clic su OK nella finestra di dialogo di stampa), vengono specificate le seguenti proprietà di sola lettura, che rappresentano le impostazioni di stampa dell'utente:

ProprietàTipoUnitàNote
PrintJob.paperHeightNumberPuntiAltezza totale del foglio.
PrintJob.paperWidthNumberPuntiLarghezza totale del foglio.
PrintJob.pageHeightNumberPuntiAltezza dell'area di stampa effettiva della pagina; i margini impostati dall'utente vengono ignorati.
PrintJob.pageWidthNumberPuntiLarghezza dell'area di stampa effettiva della pagina; i margini impostati dall'utente vengono ignorati.
PrintJob.orientationString"portrait" (flash.printing.PrintJobOrientation.PORTRAIT) o "landscape" (flash.printing.PrintJobOrientation.LANDSCAPE).

Nota: se l'utente esce dalla finestra di dialogo di stampa facendo clic su Annulla, le proprietà non vengono specificate.

Dopo che l'utente ha fatto clic su OK nella finestra di dialogo Stampa, Flash Player inizia l'esecuzione dello spooling sul sistema operativo di un lavoro di stampa. Poiché iniziano ad essere visualizzate le informazioni sull'avanzamento della stampa, è necessario eseguire le chiamate a PrintJob.addPage() e PrintJob.send() il più presto possibile per inviare le pagine allo spooler. Per formattare la pagina stampata, è possibile utilizzare le proprietà di sola lettura relative all'altezza, alla larghezza e all'orientamento che vengono completate da questo metodo.

Verificare che il metodo restituisca true (quando l'utente fa clic su OK nella finestra di stampa del sistema operativo) prima di qualsiasi chiamata successiva a PrintJob.addPage() e PrintJob.send():

  var my_pj:PrintJob = new PrintJob();
     if(my_pj.start()) {
       // inserire qui le istruzioni addPage() e send() 
     }
  

Per l'istanza PrintJob specificata, se uno dei seguenti intervalli dura più di 15 secondi, la chiamata successiva a PrintJob.start() restituisce false:

Restituisce
Boolean — Un valore true se l'utente fa clic su OK quando viene visualizzata la finestra di stampa; false se l'utente fa clic su Annulla o se si verifica un errore.

Vedere anche

Esempi Come utilizzare gli esempi
PrintJobExample.as

Nell'esempio seguente viene utilizzata la classe PrintJobExample per creare un documento di piccole dimensioni e inviarlo quindi alla stampante. Questa operazione viene eseguita mediante la procedura seguente:
  1. Dichiarare due variabili del tipo Sprite denominate sheet1 e sheet2.
  2. Chiamare init(), che assegna una nuova istanza Sprite sia a sheet1 e sheet2 e quindi chiama createSheet() utilizzando argomenti diversi.
  3. createSheet() consente di eseguire le seguenti operazioni:
    1. L'oggetto Sprite passato viene utilizzato per disegnare un rettangolo con uno sfondo grigio chiaro, un bordo nero di un pixel e una larghezza di 100 pixel e un'altezza di 200 pixel con x = 0, y = 0.
    2. Viene creato un nuovo oggetto TextField denominato txt con le stesse dimensioni di Sprite, la proprietà wordWrap impostata su true e la proprietà di testo impostata sul parametro String passato come argomento a createSheet().
    3. Se l'argomento Object passato non è null, creare una nuova istanza Sprite denominata img che viene utilizzata per disegnare un rettangolo con le proprietà di coordinate e dimensioni dell'argomento Object passato. Il rettangolo bianco viene aggiunto all'elenco di visualizzazione dell'oggetto Sprite utilizzando addChild().
    4. L'oggetto TextField txt viene aggiunto all'elenco di visualizzazione dell'oggetto Sprite utilizzando addChild().
  4. Nella funzione di costruzione viene chiamato il metodo di stampa attivato (non impostato come commento). Poiché i metodi sono molto simili, printOnePerPage() è descritto di seguito.
  5. printOnePerPage() consente di eseguire le seguenti operazioni:
    1. Dichiarare un nuovo oggetto PrintJob denominato pj e pagesToPrint come uint.
    2. Aprire la finestra di dialogo relativa alla stampa nativa del sistema operativo e attendere che l'utente faccia clic su OK.
    3. Verificare l'orientamento e se è selezionato Landscape (orizzontale), generare un errore e uscire.
    4. Impostare l'altezza e la larghezza della pagina per sheet1 e sheet2.
    5. Inviare sheet1 e sheet2 allo spooler di stampa utilizzando addPage().
    6. Se il numero di pagine da stampare è > 0, stampare tutte le pagine elaborate dallo spooler.
  6. Viene chiamato il metodo draw(), che ridimensiona le due proprietà Sprite per adattarle allo stage e riposiziona sheet2 in modo che si trovi immediatamente a destra di sheet1.

Nota: la funzione di costruzione è impostata in modo che sia possibile selezionare uno dei tre metodi di stampa (un foglio per pagina, due fogli per pagina o stampa nella metà superiore della pagina), in base alle preferenze. Questo esempio non funzionerà correttamente, a meno che non vengano disattivati due metodi di stampa specifici utilizzando commenti nel codice. L'esempio è impostato in modo che venga chiamato printOnePerPage().

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




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/flash/printing/PrintJob.html