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