Impressão para no meio usando Printer.Canvas.TextOuT
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.
Segue abaixo foto da impressão:
[img]http://arquivo.devmedia.com.br/forum/imagem/433782-20150529-124051.jpg[/img]
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
Curtidas 0