Jump to content
Fórum Script Brasil
  • 0

Esvaziar Buffer De Impressora Matricial


Guest --Thiago --
 Share

Question

Guest --Thiago --

Bom dia galera, alguém sabe algum comando via delphi que eu possa esvaziar o buffer da impressora matricial? pois ta acontecendo umas coisas esquisitas aki em relação a impressora EPSON LX300 e gostaria de tentar esvaziar esse buffer para ver se realmente o problema esta nela, ou seja, antes de imprimir qualquer coisa, eu limpo o buffer e executo a impressão.

Se alguém souber, por favor.

Agradeço desde já

Muito Obrigado

Thiago

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
Bom dia galera, alguém sabe algum comando via delphi que eu possa esvaziar o buffer da impressora matricial? pois ta acontecendo umas coisas esquisitas aki em relação a impressora EPSON LX300 e gostaria de tentar esvaziar esse buffer para ver se realmente o problema esta nela, ou seja, antes de imprimir qualquer coisa, eu limpo o buffer e executo a impressão.
Thiago, você está fazendo uso de impressão direta na LPT1:, enviando códigos de controle para a impressora, ou impressão (normal do Windows) via spool?

Se for o primeiro caso, no manual de usuário da impressora (Donwload em suporte Epson), lá em Appendix->Command Sumary->Sending Printer Commanding, você acha esta Printer Operation - o comando é a seqüência [email protected] Este ESC é o caracter 27, ou seja #27, no Delphi.

Que coisas esquisitas estão ocorrendo?

Se o problema não estiver relacionado ao seu programa, sugiro que você post esta dúvida em outra sessão do forum.

Link to comment
Share on other sites

  • 0
Guest --Thiago --

Micheus bom dia,

Seguinte, estou enviando códigos de controle para a impressora certo, ou seja, é tudo via código do sistema, e o que ocorre é o seguinte, eu tenho uma sequencia de impressão como por exemplo

1 - Cabeçalho

2 - Detalhes 1

3 - Detalhes 2

4 - Rodape

Ou seja, ele vai imprimindo na sequencia, porem as vezes acontece de por exemplo, ele imprime o Cabeçalho e Depois o Detalhes 2 e em seguida o rodape e o detalhes 1 ou seja, não tem logica nenhuma, pois ele vem seguindo a ordem de impressão, e o engraçado que isso só acontece depois de algumas impressões, por isso que to achando que pode ser algo relacionado com buffer, então toda vez de imprimir, queria passar um comando pra esvaziar pra ver se mato o problema entendeu

Muito obrigado heim

Thiago

Link to comment
Share on other sites

  • 0
Ou seja, ele vai imprimindo na sequencia, porem as vezes acontece de por exemplo, ele imprime o Cabeçalho e Depois o Detalhes 2 e em seguida o rodape e o detalhes 1 ou seja, não tem logica nenhuma, pois ele vem seguindo a ordem de impressão, e o engraçado que isso só acontece depois de algumas impressões, por isso que to achando que pode ser algo relacionado com buffer, então toda vez de imprimir, queria passar um comando pra esvaziar pra ver se mato o problema entendeu
Você está enviando os comandos para LPT1 usando o Write/Writeln ou algum componente específico?

De qualquer modo, sempre que utilizei escrita direta na impressora, tomei por habito sempre enviar na primeira linha, o comando de reset.

Link to comment
Share on other sites

  • 0
Guest --Thiago --

Micheus....

Exatamente isso.....estou usando Writeln

E to procurando alguma coisa relacionado a isso mesmo, ou seja, to achando que antes de cada "tópico" daqueles que for imprimir se eu dar um "reset" é para funcionar....e como que você utiliza esse comando Reset? poderia me dar um exemplo?

desde já, muito obrigado

Thiago

Link to comment
Share on other sites

  • 0
Exatamente isso.....estou usando Writeln

E to procurando alguma coisa relacionado a isso mesmo, ou seja, to achando que antes de cada "tópico" daqueles que for imprimir se eu dar um "reset" é para funcionar....e como que você utiliza esse comando Reset? poderia me dar um exemplo?

Então, se você está utilizando o Writeln não tem mistério - a string que você manda imprimir na verdade contém a sequencia de caracteres que mencionei:

Vou assumir a LPT1 como sua variável (handle) da impressora:

...

Write(LPT1, #27'@'); // ESC é o caracter #27, seguido do caracter '@' conforme instrução do manual (sugiro não usar o avanço de linha)

writeln(LPT1, 'Título do relatório a ser impresso no cabeçalho');

...

Captou, o envio dos caracteres de controle não difere muito do envio de uma string normal (é uma sequencia de caracteres, também)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.4k
×
×
  • Create New...