Impressão em impressora matricial java

Olá galera do fórum, estou com um problema.

Estou desenvolvimento um sistema java que precisa imprimir etiquetas de um modelo específico da Pimaco, a impressora é uma lx300
Matricial e está ligada em uma porta usb.

Como faço para imprimir essas etiquetas. Teria que usar cristal report.

Agradeço desde já.

Jasperreports.

Link

olá Darlan. obrigado pela informação, mas como faço para configurar o papel para formulário continuo, porque na aplicação que estou desenvolvendo terá que imprimir mais de 2000 etiquetas de uma só vez.

ela terá que pegar uma lista com todos os clientes cadastrado e imprimir uma etiqueta para cada.

agradeço a ajuda e a atenção.

Olá !
Se vc tem uma matricial Epson então deves fazer uso dos comandos para a mesma
Lista de comandos

com isto vc assume o controle e configura tudo via programa, vc pode pular uma pagina, pode configurar as dimensões do papel, reinicializar a impressora etc…

Olá meu caro rlira.

Então vc que dizer que eu crio o modelo da Minha etiqueta, e uso esses comandos no meu código para manipular a ímpressora?

Desculpe a ignorância nunca trabalhei com impressora matricial.

Teria como da um norte, de como proceder neste caso.

Agradeço a atenção.

Olá JMCN bom dia.

Cara existe duas formas de trabalhar com relatórios, usamos o jasper e ele simplifica muito nossa vida, existe uma outra que é mais trabalhosa deixa te explicar esta ultima.
Eu precisei fazer um trabalho certa vez em que eu precisava de agilidade na impressão de uma ficha, era uma ficha de atendimento em uma clinica de imagem/laboratorial ou seja existia uma fila o atendente chamava o paciente, preenchia os dados, exames… e mandava a impressão da ficha e não deveria ser uma impressão pelo driver do windows tinha que enviar direto para a porta para ser mais rápido, então eu não construi o relatório pelas formas digamos tradicionais… eu simplesmente criei uma variável e fui incrementando ela com as informações ou seja no final se eu pegasse a variável e gerasse um arquivo txt vc poderia ler a ficha só que eu não gerava um arquivo mandava direto para a porta LPT1, gerar um relatório desta forma é bem ruim, complicado mais na época precisava de agilidade na impressão coisa que nem o driver genérico iria resolver precisava enviar direto na porta, assim a impressão sai que é uma bala.
se for o seu caso e se com o jasper não resolver vc pode fazer o mesmo, hoje eu ainda faço isto para impressão de cheques, a coisa funciona mais ou menos como criar um arquivo (com um formato definico como se fosse um relatório feito sem o jasper )
a primeira coisa que tens que fazer é conhecer os comandos da impressora, vou fazer um exemplo e colocar aqui pra vc ver se isto te ajuda.

public class Etiquetas{


   String codigo;
   String nome;
   String estante;
   String prateleira;

   public static void main(String args[]){  

     String texto = "";
	 
     Etiquetas etiqueta = new Etiquetas();
	 etiqueta.codigo  = "1010";
	 etiqueta.nome    = "ROLAMENTO GRANDE DO PINHAO";
	 etiqueta.estante = "A";
	 etiqueta.prateleira = "10";

     // Draft
     texto = new StringBuilder()
         .append(texto)
         .append(paraLetra(27)).append(paraLetra(120)).append(paraLetra(48)).toString();

     // Negrito
     texto = new StringBuilder()
         .append(texto)
         .append(paraLetra(27)).append(paraLetra(69)).toString();

 
     texto = new StringBuilder()
         .append(texto)
         .append("Codigo: ").toString();

     // Codigo do produto expandido e depois 
     texto = new StringBuilder()
         .append(texto)
         .append(paraLetra(14)).append(etiqueta.codigo).append(paraLetra(18)).toString();

     // Quebra de linha
     texto = new StringBuilder()
         .append(texto)
         .append(paraLetra(13))append(paraLetra(10)).toString();

     // Nome do produto e quebra a linha
     texto = new StringBuilder()
         .append(texto)
		 .append(etiqueta.nome)
         .append(paraLetra(13))append(paraLetra(10)).toString();


     // Local Estante e Prateleira
     texto = new StringBuilder()
         .append(texto)
		 .append("Local: ")
		 .append(etiqueta.estante).append(" - ").append(etiqueta.prateleira)
         .append(paraLetra(13))append(paraLetra(10)).toString();

     // Remove negrito
     texto = new StringBuilder()
         .append(texto)
         .append(paraLetra(27))append(paraLetra(70)).toString();

     // 
     texto = new StringBuilder()
         .append(texto)
         .append(paraLetra(27))append(paraLetra(64)).toString();

     // Enviar para Impressora ou gerar um arquivo 

  }


  // Retorna o simbolo ASCII do número passado
  public static String paraLetra(int codigoAscii ) {

       char retorno = (char) codigoAscii;
       return retorno;
   }
		 
}

Meu Java ta longe de ser bom, mais espero que com o código acima vc possa entender os pros e contras, o exemplo foi para a impressão de uma etiqueta com os dados de um produto, geralmente estas etiquetas simples autocolantes com uma coluna e dimensão 89 x 23,4 mm, neste tipo de programação vc tem que ao terminar de imprimir uma etiqueta pular linhas ( 13 + 10 ) até chegar no ponto(topo) da próxima etiqueta.

Se vc pega um manual da Epson vc ira ver uma lista de comandos da impressora pode ser que hoje em dia os manuais não sejam como os antigos que tinham muitos comandos hoje pode estar resumido.
Procura no apendice do manual geralmente tem alguns comandos

Aqui código da Epson tem um material que peguei com os códigos de impressora matricial