Antes do Java eu costumava imprimir notas fiscais enviando os dados
direto para a lpt1, agora estou perdido, por isso ficaria muito grato a uma
ajuda, alguma informação prática pois não tipo muito sucesso com a comm.jar . Ou eu estou ultrapassado com essa estratégia de impressão?
1 - tenho um texto.txt
2 - crio um Envia.BAT
contendo: Type texto.txt > PRN
ou Type texto.txt > LPT1
3 - executo o Envia.BAT
[/quote]
Faltou uma etapa:
4 - Rezar para a impressora funcionar, que ela tenha papel, que o papel não enrosque, em suma, que a impressão seja bem sucedida.
Normalmente, qualquer programa minimamente decente, desfaz tudo (NF, estoque, fatura, duplicata, livro fiscal, etc.) em caso de problemas na emissão da nota.
Porém, usando somente Java ou do modo como você falou, é impossível saber a resposta de impressora.
É preciso usar JNI como outros já indicaram em outros tópicos, pois não se consegue só com javax.comm ler a resposta da impressora por bug na API desde sua versão inicial.
Atendendo ao André Luis que me perguntou por e-mail, explico como se usa JNI para imprimir cupon fiscal.
Resumindo:
A = seu programa
B = device driver que envia e RECEBE bytes da impressora (geralmente é a DLL do fabricante da impressora)
X = conjunto de funções em C escritas de acordo com as regras do JNI (veja tutorial) para enviar bytes para impressora ou consultar seu estado
Na hora de imprimir, um método qualquer de A, escrito de acordo com as regras de JNI (veja tutorial), chama X.
X envia para B ou recebe de B de acordo com a função usada.
Depois de imprimir, sempre precisamos saber se a impressão teve sucesso antes de confirmar todas as operações ou transações envolvidas na emissão da nota fiscal, recibo de pagamento ou boleto de cartão de crédito. Lembro que no caso do cupom fiscal a fiscalização exige que seja enviado e confirmado cada item do cupom.