Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [java] aiutino stampa

  1. #1

    [java] aiutino stampa

    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?

  2. #2
    dimenticavo, sono costretto a non utilizzare la stampante di default, ma devo avere l'elenco (array) delle stampanti.
    Domandina aggiuntiva... se volessi stampare delle Etichette cosa devo cambiare?

  3. #3
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.