Ir para conteúdo
Fórum Script Brasil
  • 0

Esvaziar Buffer De Impressora Matricial


Guest --Thiago --

Pergunta

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 para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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 ESC@. 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...