ciao a tutti... ho questo codice da modificare un po' e non ci riesco bene...
codice:
package prservice;

import java.io.*;
import javax.print.*;
import javax.print.attribute.*;
import javax.print.attribute.standard.*;
 
public class PrService{
	 
 public static void main(String args[]){
  DocFlavor docFlv = DocFlavor.INPUT_STREAM.GIF;
  /**
  *  Crea e valorizza il set di attributi del documento
  */
  PrintRequestAttributeSet attrSet = new HashPrintRequestAttributeSet();
  attrSet.add(MediaSizeName.ISO_A4);
  attrSet.add(OrientationRequested.LANDSCAPE);
  attrSet.add(new Copies(1));
  /**
  *  Cerca i print services in grado di stampare secondo gli attributi impostati
  *  utilizzando il metodo lookUpPrintServices
  */
  PrintService[] prServ = PrintServiceLookup.lookupPrintServices(docFlv,attrSet);
  if (prServ.length > 0){
   //
   /**
   *  Crea l'oggetto DocPrintJob
   */
   int num=0;     
   DocPrintJob prJ = prServ[num].createPrintJob();
   /**
   *  Crea il documento da stampare impostando il nome del file da stampare
   *  ed il formato (DocFlavor) di stampa
   */
   Doc doc = new InputStreamDoc("prova.gif", docFlv);
   /**
   *  Stampa il DocPrintJob
   */
   try{
    prJ.print(doc, attrSet);
   } catch (PrintException ex){
    System.err.println(ex);
   }
  }else{
   System.err.println("Non ci sono stampanti che supportano le caratteristiche del documento");
  }
 }
}
 
class InputStreamDoc implements Doc {
 private String fileN;
 private DocFlavor dFlv;
 private InputStream iStr;
 
 /**
 *  Imposta il nome ed il formato (DocFlavor) del documento da stampare
 */
 public InputStreamDoc(String fName, DocFlavor flv){
  fileN = fName;
  dFlv = flv;
 }
 
 /**
 *  Restituisce un oggetto DocFlavor contenente il formato del documento di
stampa
 */
 public DocFlavor getDocFlavor(){
  return dFlv;
 }
 
 public DocAttributeSet getAttributes(){
  return null;
 }
 
 /**
 *  Richiama il metodo getStreamForBytes() e
 *  restituisce un oggetto InputStream contenente i dati di stampa
 */
 public Object getPrintData() throws IOException{
  return getStreamForBytes();
 }
 
 public Reader getReaderForText() throws UnsupportedEncodingException,IOException{
  return null;
 }
 
 /**
 *  Restituisce un oggetto InputStream contenente i dati di stampa
 */
 public InputStream getStreamForBytes() throws IOException{
  synchronized(this){
   if (iStr == null){
    iStr = new FileInputStream(fileN);
   }
   return iStr;
  }
 }
}
Funziona, ma se inserisco una pagina HTML da stampare non la stampa; ho provato a cambiare i DocFlavor ma mi dice che non trova una stampante che li suppoti... che devo fare per poter stampare una pagina html?