Imprimindo na LPT1

Bom dia a todos!

Estou fazendo um programa para imprimir etiquetas de código de barras em impressora Zebra.
Eu já recebo o arquivo todo codificado para Zebra, basta que eu apenas envie o arquivo para a LPT1.

Sou novato em programação e não sei se estou fazendo a coisa certa!

A primeira coisa que eu fiz foi programar um JFileChooser, para o usuário escolher qual arquivo deve ser impresso.
Veja o código:

private void Abrir(java.awt.event.ActionEvent evt) {
JFileChooser Escolha = new JFileChooser(new File ("\\servidor\diretorio\sub-diretorio\arquivo a ser impresso"));
int Escolher = Escolha.showOpenDialog(null);
}

Agora preciso imprimir o arquivo na LPT1.
Acho que eu tenho que mandar imprimir o que esta na variável Escolher.
Estou certo?
Como faço isto?

Muito Obrigado.

Rafael Schiavo.

Se for imprimir um arquivo este comando consegue enviar a impressão para a impressora padrão.

Desktop.getDesktop().print( new File(nomedoarquivo));

hpsjr,
Obrigado pela resposta.

Vou tentar e posto o resultado.

Desculpe a ignorancia, mas qual a função de Desktop.getDesktop() ?

Obrigado.

[quote=Rafael V. A. Schiavo]hpsjr,
Obrigado pela resposta.

Vou tentar e posto o resultado.

Desculpe a ignorancia, mas qual a função de Desktop.getDesktop() ?

Obrigado.

[/quote]

Ele delega a execução ao S.O. ou seja a JVM vai enviar a requisição para o S.O. apartir dai depende do PC da pessoa e não do programador.
nesse caso vai chamar a impressoa configurada como padrão no SO e mandar o arquivo para imprimir.

OK Fela,
Obrigado

Ola,

Aqui esta ocorrendo este erro:

java.io.IOException: Failed to print file:/c:/teste.txt. Error message: Parâmetro incorreto.

try { Desktop.getDesktop().print(new File("c:\teste.txt")); } catch (IOException ex) { Logger.getLogger(RelatorioCompradores.class.getName()).log(Level.SEVERE, null, ex); }

Alguém pode ajudar?
Obrigado

[quote=R063r5]Ola,

Aqui esta ocorrendo este erro:

java.io.IOException: Failed to print file:/c:/teste.txt. Error message: Parâmetro incorreto.

try { Desktop.getDesktop().print(new File("c:\teste.txt")); } catch (IOException ex) { Logger.getLogger(RelatorioCompradores.class.getName()).log(Level.SEVERE, null, ex); }

Alguém pode ajudar?
Obrigado[/quote]

Olá,
se tu colocou o arquivoteste.txt no raíz do c então tenta assim Desktop.getDesktop().print(new File("/teste.txt"));

Fazendo assim diz que o arquivo não existe.

Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: The file: \teste.txt doesn’t exist.

Aqui eu consigo assim, mas se tu não consegue então tenta assim:

Desktop.getDesktop().print(new File("c:/teste.txt"));   

Que coisa. Mesmo assim não funciona.

Vou ter que aprender a usar o iReport mesmo. :lol:

Aqui estou usando uma impressora que está na rede. Teria alguma coisa a ver, por não ser pela LPT1?

Se o SO que enviará para a impressora padrão, pouco importa por qual porte é, certo?

R063r5 ,
eu também utilizo uma impressora de rede aqui e funciona normalmente.
Provavelmente é algo que não localiza o arquivo.
tem outro código que eu tambe´m mando uma impressão para uma impressora padrão:

http://www.guj.com.br/posts/list/0/149748.java

o nome do arquivo eu coloco como

nomedoarquivo="/usr/local/teste.doc";

este caminho corresponde no meu computador a “C:\usr\local\teste.doc”

Não consegui, mas obrigado mesmo assim.

Enfim, encontrei neste link. Aqui funcionou, mas apenas para o que está na string. Vou tentar modificar pra ler a partir de um txt.

http://poortella.50webs.com/java.htm

editado

Modifiquei e funcionou.

InputStream prin = new FileInputStream(file);