Impresion de logotipo ticket
Que tal...
Aquí les va un tirito, haber quien de casualidad por ahí se ha topado con el mismo problema...
Resulta que estoy imprimiento un ticket, el cliente quiere la impresión del logotipo en la cabecera del ticket (ese es uno de los problemas) o mínimo su razón social con letras grandes...
El principal detalle es que logro imprimir la razon social con letras grandes 'Go4Value' PERO...cuando se imprime el resto del ticket se salta como 5 o 6 renglones, como si fuera un newpage, digamos q estoy hablando de dos partes,CABECERA 'Go4Value' y RESTO del ticket.
Para la cabecera utilizo el CANVAS.TEXTOUT y para el resto del ticket uso otra funcion...
lo importante es que NO SALTE RENGLONES despues de que hago el ENDDOC., y como dijera mi abuelita, lo demas es lo de menos...
FRAGMENTO DE CODIGO
procedure TfrmPuntoVentaSQL.ImprimeAlFinal();
var i:integer;
begin
try
if OrdenSeccionesTicket[2,2] = 'S' then
begin
//aqui imprimo Go4Value en letras grandes
printslogan := Printer; //impresora
printslogan.BeginDoc; //inicializacion para impresion
printslogan.Canvas.Font.Size:= 20; //tamaño de letra
printslogan.Canvas.TextOut(20,0,'Go4Value'); //texto a imprimir con tamaño 20
printslogan.EndDoc; //finalizacion de la impresion de la cabecera
//aqui se salta algunos renglones despues de imprimir go4value con letras grandes
//quiero que lo de arriba y el resto me queden juntos
StartPrint(iImpresora, PuntoVentadm.cdsVentafactura.AsString, '', 1); //inicializacion de impresion del resto del ticket
ToPrnFrmC(TrimChar(Slogan,'%'), []); //letra grande
if OrdenSeccionesTicket[2,1] = 'S' then ToPrnFrmC(TrimChar(vatEncabezado,'%'), []); //datos de la empresa
ToPrnFrmC(TrimChar(ArmaSeccionTicket(2),'%'), []);
ToPrnFrmC(TrimChar(ArmaSeccionTicket(8),'%'), []);
//if OrdenSeccionesTicket[2,4] = 'S' then ToPrnFrmC('DESCRIPCION ',[]);
toprnfrmc('----------------------------------------',[]);
EndPrint(); //finalizacion de impresion de la cabecera del ticket
end;
try
PuntoVentadm.cdsVede.DisableControls;
PuntoVentadm.cdsVede.First;
for i:=1 to PuntoVentadm.cdsVede.RecordCount do
begin
StartPrint(iImpresora, PuntoVentadm.cdsVentafactura.AsString, '', 1);
if OrdenSeccionesTicket[2,3] = 'S' then ToPrnFrmC(TrimChar(ArmaSeccionTicket(3),'%'), []);
if OrdenSeccionesTicket[2,4] = 'S' then ToPrnFrmC(TrimChar(ArmaSeccionTicket(4),'%'), []);
EndPrint;
PuntoVentadm.cdsVede.Next;
end;
finally
PuntoVentadm.cdsVede.EnableControls;
end;
ImprimePiedelTicket;
except
on E:Exception do
TErrorManager.Create(true,E,'Se presento un error al imprir el ticket vent:' + PuntoVentadm.cdsVentaventa.AsString, 'TfrmPuntoVentaSQL.ImprimeAlFinal','',caja);
end;
si alguien sabe como lograr esto, le estaria muy agradecido... de igual manera me pongo a su disposicion en cualquier cosa q les pueda ayudar. Flash, Dreamweaver, BD...etc...
Gracias de antemano...
|