Stampare un file su carta
DOMANDA:
Come si manda in stampa un file in Java?
RISPOSTA:
Ci sono diversi modi per stampare un file su carta direttamente da Java. Vediamo quello più veloce ed immediato grazie alla classe java.awt.Desktop introdotta a partire da Java 6:
package stampa;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import javax.print.PrintException;
public class StampaFile {
public static void main(String[] args) throws PrintException, IOException {
if(!java.awt.Desktop.isDesktopSupported()) {
System.out.println("Funzione non supportata!");
return;
}
try {
Desktop desk = java.awt.Desktop.getDesktop();
// mando in stampa il file
desk.print(new File("C:\\prova.pdf"));
} catch (NullPointerException | IllegalArgumentException | UnsupportedOperationException |
IOException | SecurityException ex) {
ex.printStackTrace();
}
}
}
Eseguendo questa classe invierete direttamente il file alla stampante senza dover confermare nulla, nemmeno nella finestra di dialogo.
E' importante precisare che tale metodo di stampa è estremamente semplice perché demanda tutto al gestore predefinito del file del Sistema Operativo. Nel nostro caso, se non avessimo un gestore per i file PDF (come ad esempio Adobe Reader) riceveremmo un'eccezione. Stesso dicasi per la stampante: è necessario averne impostata una predefinita.
Un'ulteriore limitazione di questo metodo è l'impossibilità di gestire e regolare le diverse impostazioni di stampa.

Commenti
Posta un commento