Impressão fora de ordem!

6 respostas
T

Amigos,

Fiz um programinha simples para imprimir umas etiquetas em uma impressora Argox 214. Sendo que normalmente quando imprimo imprimo muitas etiquetas.

O meu primeiro problema foi que eu gerava a etiqueta(arquivo txt) e mandava imprimir, isso dentro de um for(ou seja, faz o arquivo, grava fecha e manda imprimir) o que estava acontecendo é que o programa era mais rápido do que a impressão, e quando ia imprimir, acabava imprimindo a mesma etiqueta, e sempre a última. Resolvi isso gerando arquivos com numeração.

Mas agora mando imprimir os arquivos na ordem dentro de outro for e a impressão sai fora de ordem, creio que seja também por causa do problema da lentidão da impressão.

Alguem que possa me ajudar?

6 Respostas

T

Essa é uma impressora serial e você a ligou no seu computador sem aqueles fios para controle de fluxo? (RTS / CTS)
Provavelmente você terá de pôr uma pausa entre etiquetas usando sleep:

try {Thread.sleep (1000); } catch (InterruptedException ex) {}

dá uma pausa de 1000 milissegundos, ou seja, 1 segundo.

T

a) A impressão sai fora da ordem ou você está perdendo etiquetas?
b) Por acaso você está usando o Windows 95/98/ME ?

T

A impressão sai da ordem sim, estou usando Windows XP.
Tinha outro que eu fiz que ao invés de imprimir com o comando externo print eu mandava executar um arquivo bat que enviava a impressão, mas sempre perdia a 2ª e 3ª e as vezes a 4ª etiqueta.

T

Se você está usando o comando “print” do Windows, você deve se lembrar de algumas coisas:

  • Ele não faz milagres se a conexão com a impressora serial não estiver correta (com os sinais de controle de fluxo - RTS/CTS corretamente conectados à impressora, e com a impressora corretamente configurada para usar o RTS/CTS);
  • Se não me engano, o comando “print” põe esses arquivos-texto no spool de impressão. Em tese, ele deveria obedecer à ordem em que os arquivos foram postos na fila. Pode ser que algum dos arquivos tenha tido problemas em sua impressão, portanto o que a impressora ou o Windows (sei lá quem) faz é ir para a próxima etiqueta, e passar ao próximo arquivo.
T

Eu ja imaginava que poderia ser isso, valeu!!!

Vou tentar colocar a tarefa em uma Thread e mandar ela dormir por 1 segundo mesmo.
No outro eu tinha resolvido parcialmente, colocando um JOptionPane entre uma impressão e outra, mas era ridículo. Como o programa só eu vou utilizar mesmo…

T

Tava muito grande o código para passar para Thread, acabei fazendo em C mesmo.

Criado 30 de janeiro de 2007
Ultima resposta 30 de jan. de 2007
Respostas 6
Participantes 2