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

Post popolari in questo blog

Arrotondamento e troncamento in Java

Eclipse: Shortcuts (scorciatoie) da tastiera

Strutture dati: List, Set, Map

Creare un eseguibile Java