[Lazarus-es] tickeadora serial: no hace eject en split
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Mie Ago 14 01:57:38 CEST 2013
Hola todos..
Estoy definiendo una impresión en una impresora epson serial. (tmu-950)
Ya lo he hecho antes, imprimiendo en el ticket y en el testigo y todo ok.
Hoy debo hacer otra impresión para que salga en el split (o sea la
bandejita donde se coloca el papel a mano)
La rutina es esta..
Printer.RawMode := True;
Printer.BeginDoc;
// impresion en split
ImprimirCodigoEsc(chr(27)+'@'+CHR(27)+'c0'+chr(4)+chr(27)+'!'+chr(1)+chr(27)+'2');
nPorcIva:= 0.0;
nTotal:= 0.0;
qry.First;
While not qry.EOF do
begin
sCant:= AlineaDer(qry.FieldByName('cantidad').AsString, 6);
sDesc:=
AlineaIzq(UTF8ToCP850(qry.FieldByName('descripcion').AsString), 17);
sPrecio:=
AlineaDer(Format('%n',[qry.FieldByName('total').AsFloat]),10);
nPorcIva:= qry.FieldByName('porciva').AsFloat; // me quedo con
el ult iva xq son todos iguales
ImprimirCadenaRaw(sCant+' '+sDesc+' '+sPrecio);
nTotal += qry.FieldByName('total').asFloat;
qry.Next;
end;
qry.Close;
nNeto:= nTotal / (1+nPorcIva/100);
ImprimirCadenaRaw(' ');
ImprimirCadenaRaw(AlineaIzq('Neto s/impuestos: ',30) +
AlineaDer(Format('%n',[nNeto]),10));
ImprimirCadenaRaw(AlineaIzq('IVA: ',30)+
AlineaDer(Format('%n',[nTotal - nNeto]),10));
ImprimirCadenaRaw(AlineaIzq('TOTAL: ',30)+
AlineaDer(Format('%n',[nTotal]),10));
ImprimirCadenaRaw(' ');
Printer.EndDoc;
Printer.RawMode := false;
La impresión sale por el split, pero NO hace un EJECT con el Enddoc, y
si no presiono los botoncitos de form feed no sale el papel.
Eso no sería tanto problema, perooo si imprimo inmediatamente después..
la impresión no sale; queda con la impresora la luz de error. Si la
apago/prendo si imprime sin problemas.
Ya no se que probar....
agradezco cq sugerencia!
(en clipper tenía la misma rutina y salía el papel con la instrucción EJECT)
byeeeeeeeeeeee
More information about the Lazarus-es
mailing list