Tecniche di stampa avanzate

Adobe AIR 2 e versioni successive

A partire da Adobe AIR 2, la classe PrintJob dispone di proprietà e metodi aggiuntivi, inoltre sono supportate tre ulteriori classi: PrintUIOptions, PaperSize e PrintMethod. Queste modifiche consentono flussi di lavoro stampante aggiuntivi e forniscono agli autori maggiore controllo sul processo di stampa. Le modifiche includono:

  • Finestre di dialogo di impostazione della pagina: è possibile visualizzare finestre di dialogo di impostazione pagina standard e personalizzate. L'utente può impostare intervalli pagina, formato carta, orientamento e proporzioni prima della stampa.

  • Visualizzazione stampa: è possibile creare una modalità di visualizzazione che mostra in modo preciso il formato carta, i margini e la posizione del contenuto sulla pagina.

  • Stampa limitata: gli autori possono limitare le opzioni di stampa, ad esempio l'intervallo delle pagine stampabili.

  • Opzioni di qualità: gli autori possono modificare la qualità di stampa per un documento e consentire all'utente di selezionare opzioni di risoluzione e colore.

  • Sessioni di stampa multiple: è possibile ora utilizzare una singola istanza PrintJob per più sessioni di stampa. Le applicazioni possono fornire impostazioni uniformi ogni volta che vengono visualizzate le finestre di dialogo di impostazione pagina e di stampa.

Modifiche del flusso di lavoro di stampa

Il nuovo flusso di lavoro di stampa comprende i passaggi seguenti:

  • new PrintJob() : crea un'istanza PrintJob (o riutilizza un'istanza esistente). Prima dell'avvio del lavoro di stampa o durante la stampa, sono disponibili molte nuove proprietà e metodi PrintJob, ad esempio selectPaperSize() .

  • PrintJob.showPageSetupDialog() : (facoltativo) consente di visualizzare la finestra di dialogo di impostazione pagina senza avviare un lavoro di stampa.

  • PrintJob.start() o PrintJob.start2() : oltre al metodo start() esistente, il nuovo metodo start2() è utilizzato per iniziare il processo di spooling di stampa. Il metodo start2() consente di scegliere se visualizzare la finestra di dialogo Stampa ed eventualmente personalizzarla.

  • PrintJob.addPage() : consente di aggiungere contenuto al lavoro di stampa. Invariato rispetto al processo esistente.

  • PrintJob.send() o PrintJob.terminate() : consente di inviare le pagine alla stampante selezionata o di terminare il lavoro di stampa senza inviare. I lavori di stampa vengono terminati in risposta a un errore. Se un'istanza PrintJob è terminata, può ancora essere riutilizzata. Anche se il lavoro di stampa è inviato alla stampante o terminato, le impostazioni di stampa correnti vengono mantenute quando riutilizzate l'istanza PrintJob.

Finestra di dialogo Imposta pagina

Il metodo showPageSetupDialog() visualizza la finestra di dialogo Imposta pagina, se supportata dall'ambiente corrente. Controllare sempre la proprietà supportsPageSetupDialog prima di chiamare questo metodo. Di seguito è riportato un esempio:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
//check for static property supportsPageSetupDialog of PrintJob class 
if (PrintJob.supportsPageSetupDialog) { 
    myPrintJob.showPageSetupDialog(); 
}

Il metodo può essere chiamato con una proprietà della classe PrintUIOptions per controllare le opzioni visualizzate nella finestra di dialogo Imposta pagina. È possibile impostare i numeri pagina min e max. Nell'esempio seguente la stampa viene limitata alle prime tre pagine:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
if (PrintJob.supportsPageSetupDialog) { 
    var uiOpt:PrintUIOptions = new PrintUIOptions(); 
    uiOpt.minPage = 1; 
    uiOpt.maxPage = 3; 
    myPrintJob.showPageSetupDialog(uiOpt); 
}

Modifica delle impostazioni di stampa

Le impostazioni per un'istanza PrintJob possono essere modificate in qualsiasi momento dopo che è stata creata. Questo include la modifica delle impostazioni tra le chiamate addPage() e dopo che un lavoro di stampa è stato inviato o terminato. Alcune impostazioni, ad esempio la proprietà printer , vengono applicate all'intero lavoro di stampa, non alle singole pagine. Tali impostazioni devono essere impostate prima di una chiamata a start() o start2() .

Il metodo selectPaperSize() può essere chiamato per impostare il formato carta predefinito nelle finestre di dialogo Imposta pagina e Stampa. Inoltre, può essere chiamato durante un lavoro di stampa per impostare il formato carta per un intervallo di pagine. La chiamata viene eseguita utilizzando le costanti definite nella classe PaperSize , come nell'esempio mostrato, che consente di selezionare il formato busta numero 10:

import flash.printing.PrintJob; 
import flash.printing.PaperSize; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.selectPaperSize(PaperSize.ENV_10);

Utilizzate la proprietà printer per ottenere o impostare il nome della stampante per il lavoro di stampa corrente. Per impostazione predefinita, questa proprietà è impostata sul nome della stampante predefinita. La proprietà printer è null se non è disponibile nessuna stampante o se il sistema non supporta la stampa. Per modificare la stampante, ottenete innanzitutto l'elenco delle stampanti disponibili utilizzando la proprietà printers . Tale proprietà è un vettore i cui elementi stringa sono nomi di stampante disponibili. Impostate la proprietà printer su uno di questi valori stringa per rendere la stampante quella attiva. La proprietà printer di un lavoro di stampa attivo non può essere modificata. Eventuali tentativi di modifica dopo una chiamata a start() o start2() e prima che il lavoro sia inviato o terminato non vanno a buon fine. Di seguito è riportato un esempio di impostazione della proprietà:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.printer = "HP_LaserJet_1"; 
myPrintJob.start();

La proprietà copies ottiene il valore per il numero di copie impostato nella finestra di dialogo Stampa del sistema operativo. Le proprietà firstPage e lastPage ottengono l'intervallo pagine. La proprietà orientation consente di ottenere l'impostazione orientamento pagina. Queste proprietà possono essere impostate per ignorare i valori della finestra di dialogo Stampa. Nell'esempio seguente vengono impostate queste proprietà:

import flash.printing.PrintJob; 
import flash.printing.PrintJobOrientation; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.copies = 3; 
myPrintJob.firstPage = 1; 
myPrintJob.lastPage = 3; 
myPrintJob.orientation = PrintJobOrientation.LANDSCAPE;

Le impostazioni di sola lettura seguenti associate con PrintJob forniscono informazioni utili sull'impostazione stampante corrente:

  • paperArea : i limiti rettangolari del supporto stampante, in punti.

  • printableArea : i limiti rettangolari dell'area stampabile, in punti.

  • maxPixelsPerInch : la risoluzione fisica della stampante corrente, in pixel per pollice.

  • isColor : la capacità della stampante corrente di stampare a colori (restituisce true se la stampante corrente può stampare a colori).

Vedete Esempio di stampa: impostazione pagina e opzioni di stampa .