[Lazarus-es] imprimir tickeadora: ticket y testigo

Maxi maximiliano.duarte en gmail.com
Jue Sep 27 19:52:32 CEST 2012


El día 27 de septiembre de 2012 12:50, Paola Bruccoleri
<pbruccoleri en adinet.com.uy> escribió:
> 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;
>
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Fox o Clipper?

La cadena que le pasas son parametros para la impresora, tipo de letra
u otras opciones, despues imprimis 2 veces una en la columna 0 y otra
en la 42

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

vas a tener que repetir todo por 2 o hace runa funcion que reciba el
texto y lo imprima x veces como columnas quieras.

-- 
El que pregunta aprende, y el que contesta aprende a responder.

No a la obsolecencia programada:
http://dimensionargentina.blogspot.com/2011/01/todo-esta-disenado-para-romperse.html

Linux User #495070
http://domonetic.com/blog




More information about the Lazarus-es mailing list