[Lazarus-es] imprimir tickeadora: ticket y testigo
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Vie Oct 5 16:07:53 CEST 2012
El 04/10/2012 08:39 p.m., Hilde Hansz escribió:
> Hola Paola, la unidad que debes usar es C:\lazarus\lcl\lconvencoding.pas y
> utilizar el código de caracteres que usa tu impresora. Dependiendo de los
> modelos, las matriciales tienen seteos físicos.
> hilde
>
Hola Hilde y todos!
Esto de los caracteres me va a terminar de enloquecer.. les cuento lo
raro que pasa. Al final con la función UTF8ToCP850 logré resolver bastante.
Aclaro que la tabla de la bd tiene todas las descripciones en mayúsculas
Como les comenté, uso 2 programas que cargan datos en la misma bd.
Por una cuestión de estética del "programa2", muestro las descripciones
de los artículos en unos botones q se generan al vuelo usando la primera
letra mayúscula y las demás minúsculas usando la función que les comenté
hace días, AMinusc, donde me sugirieron hacer esto:
utf8Copy(sCadena,1,1) + UTF8LowerCase(utf8Copy(sCadena,2,200)). En
pantalla se ve TODO BIEN.
Grabo por ej 2 artículos q tienen tildes y ñ (queda todo bien grabado en
la tabla) y cuando hago la consulta para imprimir en la impresora
correspondiente, las ñ y tildes salen con ?
imprimo así:
ImprimirCadenaRaw(qryPedidos.FieldByName('cantidad').AsString+'
'+UTF8ToCP850(qryPedidos.FieldByName('descripcion').AsString));
Voy al programa1 (que es el de gestión principal). Allí veo cargados
correctamente esos 2 artículos, con las ñ y tildes bien.
Desde allí imprimo el ticket factura, e increíblemente esos mismos
artículos salen impresos CORRECTAMENTE!!! y uso la MISMA función
sCant:= AlineaDer(qry.FieldByName('cantidad').AsString, 6);
sDesc:=
AlineaIzq(UTF8ToCP850(qry.FieldByName('descripcion').AsString), 17);
sPrecio:=
AlineaDer(Format('%n',[qry.FieldByName('total').AsFloat]),10);
ImprimirDuplicadoCadenaRaw(sCant+' '+sDesc+' '+sPrecio);
Lo único diferente es que en el ticket NO uso la impresión de duplicado
(ImprimirDuplicadoCadenaRaw) porque no lo necesito, y en la factura si.
esperen que pruebo de usarla x las dudas..
.....
si.. efectivamente esa función me hace imprimir correctamente los tildes
y ñ!!!
(esto ya parece novela)
la cosa estaba en la función ImprimirCadenaRaw que tenía (lo que comenté)
Written:=0;
///S:=Utf8toAnsi(S+Kenter);
S:=S+Kenter;
Printer.Write(S[1], Length(S), Written);
Bueno, disculpen pero lo fui esccribiendo a medida que hacía pruebas!
espero le sirva a alguien..
byeeeeeeeeeeeee
More information about the Lazarus-es
mailing list