Eh eh certo, hai perfettamente ragione. La classe che ho implementato:
codice:
public static void stampaPdf(String file){
DocFlavor flavor = DocFlavor.INPUT_STREAM.PDF; //se dovete stampare un file diverso dal pdf, sceglietelo qui e modificate l'estensione più sotto
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add(MediaSizeName.ISO_A4);//formato carta
aset.add(Finishings.STAPLE);
/* locate a print service that can handle it */
PrintService[] pservices =
(PrintService[]) PrintServiceLookup.lookupPrintServices(flavor, aset);
if (pservices.length > 0) {
//System.out.println("selected printer " + pservices[0].getName());
/* create a print job for the chosen service */
DocPrintJob pj = pservices[0].createPrintJob();
try {
/*
* Create a Doc object to hold the print data.
* Since the data is postscript located in a disk file,
* an input stream needs to be obtained
* BasicDoc is a useful implementation that will if requested
* close the stream when printing is completed.
*/
FileInputStream fis = new FileInputStream(file+".pdf");//modificate l'estensione se il file non è un pdf
Doc doc = new SimpleDoc(fis, flavor, null);
/* print the doc as specified */
pj.print(doc, aset);
} catch (IOException ie) {
System.err.println(ie);
} catch (PrintException e) {
System.err.println(e);
}
}
}
L'altra cosa strana che ho notato, sempre da quando la stampa non parte più, è che se creo un oggetto Image del genere:
codice:
Image jpg = Image.getInstance("logo_zeus.png");
inizialmente l'immagine veniva cercata e trovata nella cartella principale del progetto, mentre ora (ma SOLO se eseguo il file jar fuori da NetBeans) viene cercata nella cartella principale dell'utente del pc (nel mio caso, con linux, /home/nome_utente)
Cosa assai strana... secondo me devo aver modificato qualche path strano ma non ho la più pallida idea di cosa e come...
Ciao ciao e grazie ancora