Onde está o erro neste código?

2 respostas
FabricioPJ

Olá a todos, criei esse código aqui para imprimir o conteúdo de um arquivo .txt, vejam...

try{
    Desktop desk = null;
    if (Desktop.isDesktopSupported()){
        desk = Desktop.getDesktop();
    }
    JTextArea texto = new JTextArea();
    String conteudotxtLog = txtLog.getText();
    texto.setText("");
    texto.append("==========================================================");
    texto.append("           Log Batalha Naval - Fabrício Jorge             ");
    texto.append("==========================================================");
    texto.append("\n\n\n");
    texto.append(conteudotxtLog);
    texto.append("\n\n\n");
    texto.append("==========================================================");

    //======================Cria arquivo de impressao======================
    File arquivoImpressao = new File("Arquivo_impresso.txt");
    if(arquivoImpressao.exists()){
        arquivoImpressao.delete();
    }
    FileWriter fw = new FileWriter(arquivoImpressao);
    BufferedWriter bw = new BufferedWriter(fw);
    bw.write(texto.getText());
    bw.flush();
    bw.close();

    //============================Imprime arquivo=========================
    
    JOptionPane.showMessageDialog(null, "Arquido enviado a impressora.", "Impressão enviada", JOptionPane.INFORMATION_MESSAGE);
    desk.print(arquivoImpressao);

}
catch(Exception e){
    e.printStackTrace();
    JOptionPane.showMessageDialog(null, "Erro ao imprimir: " + e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
}

O arquivo é criado com seu conteúdo correto, mas na hora de imprimir nada ocorre, nem erro e nem a impressão. Já olhei e reolhei o código, mas não consegui ver nada de errado nele. Se puderem dar uma olhada e me mostrar uma luz, ficarei muito grato.

Obrigado.

2 Respostas

B

Já checou a fila de impressão?

rodrigo.bossini

Fiz uns testes aqui…o método print envia o arquivo direto pra fila de impressão…nem abre a telinha de configurações. Só não imprimiu mesmo pq minha impressora tá desligada (só to testando mesmo, rs).

Então, tenta o seguinte:

if (desk.isSupported (Desktop.Action.PRINT))
			System.out.print ("SIM");

No meu caso esse código imprime SIM…talvez essa ação não seja suportada no seu ambiente…aliás, qual é seu SO?

Criado 4 de abril de 2009
Ultima resposta 4 de abr. de 2009
Respostas 2
Participantes 3