Seguinte, vou te dar a ideia de como se faz isso, porem ja vou lhe adiantando, é osso!
A logia é a seguinte, voce abre a porta da impressora como se fosse um arquivo, grava os “bytes” no arquivo e fecha o arquivo.
Só isso!
É algo mais ou menos assim:
Windows:
File printer = new File("lpt1");
// se lpt1 nao funcionar, testa prn
//File printer = new File("prn");
BufferedWriter bw = new BufferedWriter(new FileWirter(printer));
bw.write("bla bla bla bla");
bw.flush();
bw.close();
Linux
File printer = new File("/dev/lp1");
BufferedWriter bw = new BufferedWriter(new FileWirter(printer));
bw.write("bla bla bla bla");
bw.flush();
bw.close();
O ideal para o sistema ficar multiplataforma é você passar via parâmetro de inicialização o dispositivo da impressora:
java -jar seuPrograma.jar --printer=/dev/lp1
Guardar isso numa variavel para na hora de usar estar la! hehehe
Agora, o que eu disse sobre ser OSSO é que estas impressoras possuem uma codificacao especial para ATIVAR NEGRIGO, DESATIVAR NEGRITO, MODO CONDESADO, DRAFT ETC.
Atraves de alguns bytes especiais para a porta pode se controlar isso, mas ai voce vai ter que ler no manual. Agora se for imprimir somente texto mesmo, mete bronca, so nao se esquece de terminar cada linha com \r\n
[]s
Kemper