| Pacchetto | flash.printing |
| Classe | public class PrintJob |
| Ereditarietà | PrintJob EventDispatcher Object |
| Versione linguaggio: | ActionScript 3.0 |
| Versione lettore: | Flash Player 9 |
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:
PrintJob.start() e il primo PrintJob.addPage()PrintJob.addPage() e il successivo PrintJob.addPage()PrintJob.addPage() e PrintJob.send()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 anche
| Proprietà | Definito da | ||
|---|---|---|---|
![]() | constructor: 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 | ||
![]() | prototype: Object
[statico]
Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
| Object | |
| Metodo | Definito da | ||
|---|---|---|---|
|
PrintJob()
Crea un oggetto PrintJob che può essere utilizzato per stampare una o più pagine.
| PrintJob | ||
![]() |
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 | ||
![]() |
Invia un evento nel flusso di eventi.
| EventDispatcher | |
![]() |
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento.
| EventDispatcher | |
![]() |
Indica se per un oggetto è definita una proprietà specifica.
| Object | |
![]() |
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
| Object | |
![]() |
Indica se la proprietà specificata esiste ed è enumerabile.
| Object | |
![]() |
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 | ||
![]() |
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 | ||
![]() |
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
| Object | |
![]() |
Restituisce il valore di base dell'oggetto specificato.
| Object | |
![]() |
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato.
| EventDispatcher | |
| orientation | proprietà |
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().
public function get orientation():String
Vedere anche
| pageHeight | proprietà |
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().
public function get pageHeight():int
Vedere anche
| pageWidth | proprietà |
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().
public function get pageWidth():int
Vedere anche
| paperHeight | proprietà |
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().
public function get paperHeight():int
| paperWidth | proprietà |
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().
public function get paperWidth():int
| 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.
IllegalOperationError — Genera un'eccezione se un altro oggetto PrintJob è ancora attivo.
|
Vedere anche
| 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):
Se si omette il parametro Se non si desidera specificare un valore per |
|
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 si omette |
|
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 |
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à | Tipo | Unità | Note |
|---|---|---|---|
PrintJob.paperHeight | Number | Punti | Altezza totale del foglio. |
PrintJob.paperWidth | Number | Punti | Larghezza totale del foglio. |
PrintJob.pageHeight | Number | Punti | Altezza dell'area di stampa effettiva della pagina; i margini impostati dall'utente vengono ignorati. |
PrintJob.pageWidth | Number | Punti | Larghezza dell'area di stampa effettiva della pagina; i margini impostati dall'utente vengono ignorati. |
PrintJob.orientation | String | "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:
PrintJob.start() e il primo PrintJob.addPage()PrintJob.addPage() e il successivo PrintJob.addPage()PrintJob.addPage() e PrintJob.send()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
PrintJobExample per creare un documento di piccole dimensioni e inviarlo quindi alla stampante. Questa operazione viene eseguita mediante la procedura seguente:
sheet1 e sheet2.init(), che assegna una nuova istanza Sprite sia a sheet1 e sheet2 e quindi chiama createSheet() utilizzando argomenti diversi.createSheet() consente di eseguire le seguenti operazioni:
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().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().txt viene aggiunto all'elenco di visualizzazione dell'oggetto Sprite utilizzando addChild().printOnePerPage() è descritto di seguito.printOnePerPage() consente di eseguire le seguenti operazioni:
pj e pagesToPrint come uint.OK.sheet1 e sheet2.sheet1 e sheet2 allo spooler di stampa utilizzando addPage().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