Hola de nuevo,
Aqui preguntando de nuevo detalles.
Ya estuve viendo post por todos los lados, ejemplos etc, para poder imprimir en una impresora de tickets con logotipo incluido.
He conseguido imprimir un logotipo, y tambien un texto formateado, pero el problema que tengo es que si imprimo primero el logotipo, con enddoc, me hace un salto de lineas, luego imprimo el texto, y tambien, imagino que enddoc no se puede cambiar para que no haga los saltos de linea (si si se puede comentadlo, porque he buscado y no hay forma).
Asi que pense, en mi ignorancia de no entender muy bien los canvas, o bien no se pueden combinar varias cosas, pero lo hice.
Aqui esta el resultado, que no funciona por cierto, solo me imprime el texto pero la imagen inicial no.
Código Delphi
[-]procedure tform1.imprimelinea;
const
margin_left = 0;
margin_top=0;
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
BeginDoc;
Canvas.Font.Name := 'COURIER NEW';
CANVAS.FONT.Style:=[FSbOLD];
Canvas.Font.Size := 6;
Canvas.Font.Color := clBlack;
Canvas.CopyRect(Classes.Rect(0, 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;
end;
end;
Lo que hago ahi es cargar los datos y luego se los paso al canvas, y finalmente imprimo.
alguna idea?
Por cierto lo de la imagen (como digo, si funciona en modulo aparte) lo saque de un ejemplo de lazarus y lo del texto lo saque de un post de esta magnifica pagina.
gracias amigos.