[Lazarus-es] imprimir tickeadora: ticket y testigo

Paola Bruccoleri pbruccoleri en adinet.com.uy
Jue Sep 27 17:50:47 CEST 2012


Hola nuevamente..

debo imprimir una factura en una tickeadora (no fiscal) epson TMu-950, 
tanto en el ticket como en el testigo (el rollito que queda como duplicado).
Actualmente lo hago desde otro lenguaje de esta manera: (el testigo se 
imprime a partir de la columna 40)

antes debo mandar estos caracteres de control para habilitar la 
impresión en los 2 rollos:
// impresion dual en ticket/testigo
@ 0,0 say chr(27)+"@"+CHR(27)+"c0"+chr(3)+chr(27)+"!"+chr(1)

@0,0   say PADC(alltrim(i_razon),38)  // impresión en ticket
@0,42 say PADC(alltrim(i_razon),38) // impresión en testigo

@1,0   say PADC(alltrim(i_dir),38)
@1,42 say PADC(alltrim(i_dir),38)

@2,0   say PADC(alltrim(i_emp),38)
@2,42 say PADC(alltrim(i_emp),38)

@3,0   say PADC('RUC:'+alltrim(i_ruc),38)
@3,42 say PADC('RUC:'+alltrim(i_ruc),38)

@4,0   say PADC('IVA AL DIA: Resol. DGI 335/82',38)
@4,42 say PADC('IVA AL DIA: Resol. DGI 335/82',38)
----
etc...


acá en lazarus, tengo las funciones ImprimirCodigoEsc e 
ImprimirCadenaRaw (funciones creo que de Claudio)  donde:

ImprimirCodigoEsc(chr(27)+"@"+CHR(27)+"c0"+chr(3)+chr(27)+"!"+chr(1));

luego pensaba imprimir cada renglón:
ImprimirCadenaRaw('RAZON SOCIAL' );

pero tendré que armar a mano la cadena de 40 más la otra de 40 seguido a 
mano para poder imprimir en los 2?

alguien usa alguna otra forma?
ideas??
mil gracias nuevamente!


//----------------------------------------------------------------------------
procedure ImprimirCadenaRaw(S:String);
//----------------------------------------------------------------------------
const Kenter=CHR(13)+CHR(10);
var  Written: Integer;
begin
   Written:=0;
   S:=S+Kenter;
   Printer.Write(S[1], Length(S), Written);
end;

//----------------------------------------------------------------------------
procedure ImprimirCodigoEsc(S:String);
//----------------------------------------------------------------------------
var Written: Integer;
begin
   Written:=0;
   Printer.Write(S[1], Length(S), Written);
end;






More information about the Lazarus-es mailing list