|
Con l'introduzione dell' API Java Print Service (JPS) si è fatto un notevole progresso per quanto riguarda il processo di gestione della stampa con la piattaforma Java, creando una struttura di supporto efficace per le applicazioni che intendono gestire tale processo. L'API Java Print Service, introdotta con la versione 1.4 del JDK, ha il compito supportare tutte le funzionalità di stampa su ogni piattaforma Java, comprese quelle piattaforme che richiedono gli small footprint devices, come i Personal Digital Assistance (PDA), ossia quei dispositivi che richiedono poche risorse di sistema (RAM e dischi) pur assicurando buone prestazioni su pc di basso costo. Oltre a soddisfare le caratteristiche di stampa già presenti nell'API Java 2D (java.awt.print), introduce i seguenti miglioramenti: l'implementazione delle specifiche del protocollo IPP (Internet Printing Protocol), dove vengono specificati gli attributi standard supportati, precisati nelle Specifiche IETF RFC 2911 Internet Printing Protocol ver. 1.1: Model and Semantics; la possibilità da parte delle applicazioni di estendere gli attributi inclusi nell'API JPS; terze parti possono inserire i propri servizi di stampa grazie a Service Provider Interface (SPI) come definito dalle specifiche contenute nel file SPI JAR; cercare e selezionare stampanti in base a precise caratteristiche e specificando le proprietà direttamente nel processo di stampa. In questo articolo con il termine servizi di stampa si intende un'interfaccia che rappresenta una specifica stampante alla quale l'applicazione, una volta impostati gli attributi voluti, delega il compito di stampare. I packages che compongono l'API Java Print Service sono quattro. Vediamo adesso una breve descrizione di questi singoli elementi, che ci aiuterà a costruirci il modello mentale di come in JPS sono suddivisi i compiti. Approfondiremo più avanti ogni singolo package, analizzando le singole parti del codice di esempio utilizzato per effettuare la stampa di un file in un formato comunemente utilizzato. Il listato completo del codice è riportato alla fine dell'articolo. javax.print Individua i servizi di stampa che hanno la capacità di soddisfare le richieste dell'applicazione; Specifica il formato dei dati da stampare; Crea lavori di stampa per un servizio di stampa; Invia i dati di stampa ad una stampante o ad un flusso. javax.print.attribute Fornisce classi e interfacce che descrivono i tipi degli attributi supportati da JPS e come possono essere valorizzati.
javax.print.attribute.standard
Contiene le classi che definiscono tutti gli attributi standard supportati da JPS.
javax.print.event
Comprende le classi e le interfacce che consentono di monitorare i servizi di stampa e lo stato di avanzamento di uno specifico lavoro.
Un'applicazione che utilizza l'API Java Print Service effettua le seguenti operazioni per processare una richiesta di stampa:
Specifica il formato del documento. Cioè ottiene un appropriato DocFlavor, vale a dire una classe che definisce i dati della stampa.
Specifica gli attributi di stampa, generando ed impostando un AttributeSet. Un AttributeSet incapsula una collezione di attributi che descrivono le proprietà richieste al servizio di stampa come il numero di copie, l'orientamento, ecc.
Localizza un servizio di stampa che può trattare la richiesta di stampa, così come specificata dal DocFlavor e dall'insieme degli attributi.
Genera un lavoro di stampa per il servizio di stampa.
Richiama il metodo Print del servizio di stampa.
Vediamo ora più dettagliatamente queste operazioni.
|