Erro impressão

0 respostas
nilsoncastro

Já tentei de várias maneiras, mas está imprimindo em branco

public class Impressao {

    // variavel estatica porque será utilizada por inumeras threads
    private static PrintService impressora=null;

    public Impressao() {

        detectaImpressoras();

    }

    // O metodo verifica se existe impressora conectada e a
    // define como padrao.
    public void detectaImpressoras() {

        try {

            DocFlavor df = DocFlavor.SERVICE_FORMATTED.PAGEABLE;
            
            PrintService[] ps = PrintServiceLookup.lookupPrintServices(df, null);
            for (PrintService p: ps) {

                System.out.println("Impressora encontrada: " + p.getName());
                impressora=PrintServiceLookup.lookupDefaultPrintService();

                
            }

        } catch (Exception e) {

            e.printStackTrace();
            System.out.println("ERRO detectaImpressoras(): " + e);

        }

    }

    public synchronized boolean imprime(String texto) {

        
           // se nao existir impressora, entao avisa usuario
        // senao imprime texto
        if (impressora == null) {

            String msg = "Nennhuma impressora foi encontrada. Instale uma impressora padrão \r\n(Generic Text Only) e reinicie o programa.";

	      
	       System.out.println(msg);
	      return false;

        } else {

            
                
            
                InputStream stream = new ByteArrayInputStream(texto.getBytes());
                FileInputStream textstream = null; 
                try { 
                    textstream = new FileInputStream("C:\\file.TXT"); 
                } catch (FileNotFoundException ffne) { 
                        } 
                if (textstream == null) { 
                    return false; 
                    } 

                DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
                Doc doc = new SimpleDoc(textstream, flavor, null);
                DocPrintJob job = impressora.createPrintJob(); 
                try { 
                PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
                //aset.add(MediaSize.ISO.A4);
                aset.add(new Copies(1)); 
                aset.add(Sides.DUPLEX);
		job.print(doc, aset); 
                    }   catch (PrintException e) {
                    e.printStackTrace();
                System.out.println("ERRO imprime(): " + e);
	            System.out.println("Erro ao imprimir: \r\n\r\n" + e);
                     return false;
                    } 
                
                
                }   
                 
                return true;
        }

     }

Veja q comentei uma linha, q qdo seto o atributo para formato A4 dá erro

Criado 9 de março de 2007
Respostas 0
Participantes 1