Perfecto amigos. Gracias.
Deje las dos partes:
Código Delphi
[-]procedure tfventas.imprimelinea;
const
margin_left = 1;
margin_top=70;
var
i: Integer;
MiMapadeBits : TBitMap;
begin
MiMapadeBits := TBitMap.Create;
MiMapadeBits.Width := PAGE.Width;
MiMapadeBits.Height := page.Height;
page.BorderStyle:=bsNone;
page.PaintTo(MIMAPADEBITS.Canvas, 0, 0);
page.BorderStyle:=bsSingle;
with printer do
try
rawmode:=false;
BeginDoc;
Canvas.Font.Name := 'COURIER NEW';
CANVAS.FONT.Style:=[FSbOLD];
Canvas.Font.Size := 6;
Canvas.Font.Color := clBlack;
Canvas.CopyRect(Classes.Rect(1, 0, 365, 60),
MiMapadeBits.Canvas, Classes.Rect(0, 0, MIMAPADEBITS.Width, mIMAPADEBITS.Height));
for i := 0 to IMPRIMIR_ticket.Count - 1 do
begin
Canvas.TextOut(
MARGIN_LEFT,
MARGIN_TOP + i*printer.Canvas.TextHeight(imprimir_ticket.Strings[i]),
imprimir_ticket.Strings[i]);
end;
finally
EndDoc;
mimapadebits.Free;
with Printer do
begin
PRINTER.PrinterIndex := 0;
RawMode := True;
BeginDoc;
printstring(#27+#112+#0+#25+#250+lineending); EndDoc;
end;
end;
end;
En el primer BeginDoc, imprime el logo y el ticket, y en el segundo ya me abre el cajon. No hay tiempo de espera, asi que es transparente para el usuario.
Gracias.