Impressão para no meio usando Printer.Canvas.TextOuT

29/05/2015

0

Pessoal, boa noite.

Estou tendo problemas com uma impressora não fiscal do tipo termica, acontece o seguinte:
A impressão começa a sair porem para no meio, porem isso só acontece com essa impressora: GP-3120 TL da GPrinter, testei aqui com uma laser e funciona normalmente.
Notei que o problema esta dentro do while que faço na Query, o que esta antes disso imprime blz.

Segue o código do while:
O "Printer.BeginDoc;" e o "Printer.EndDoc;" estão respectivamente antes de depois do while.
Detalhe: Ele completa o while inteiro pois debuguei e chega ao final.

ADOQueryimprime.Close; 
      ADOQueryimprime.SQL.Clear; 
      ADOQueryimprime.SQL.Add('SELECT * from mesa' + IntToStr(variavelmesa)); 
      ADOQueryimprime.Open; 


      while (not ADOQueryimprime.Eof) do 
      begin 
        produtomesa := ADOQueryimprime.Fields[2].AsString; 
        qtdmesa := ADOQueryimprime.Fields[3].AsString; 
        valormesa := formatfloat('R$ ,0.00', ADOQueryimprime.Fields[4].Value); 

        Printer.Canvas.TextOut(MargemDireita, AlturaLinha, produtomesa); 
        inc(AlturaLinha, Printer.Canvas.TextHeight('A')); 

        Printer.Canvas.TextOut(MargemDireita, AlturaLinha, '                                             ' + qtdmesa + '           ' + valormesa); 
        inc(AlturaLinha, Printer.Canvas.TextHeight('A')); 


        ADOQueryimprime.Next; 
      end; 


Segue abaixo foto da impressão:

[img]http://arquivo.devmedia.com.br/forum/imagem/433782-20150529-124051.jpg[/img]
Gerson

Gerson

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar