PDA

Ver la Versión Completa : URGENTE!! Impresion ilegible


lroblesco
14-05-2005, 20:00:45
Hola

Saben estoy haciendo un sistema de ventas para un Restaurant en Delphi 6 + Access 2000. Manejo una impresora de tickets Star SP200 y un CashDrawer conectado a la impresora. En mi PC, la impresion de los tickets salen como yo lo programe, ademas se abre el cajon al finalizar la impresion. Todo bien

Sin embargo, lleve una muestra del sistema con el cliente, y al hacer una prueba de la impresion del ticket sale muchos simbolos: puntos,comas,parentesis. Osea ilegible, salen las primeras 2 letras de cada linea y las ultimas 2. En la impresion le mando un codigo de escape para agrandar la letra al doble en los titulos y ahi me pone igualmente caracteres extraños.

No utilizo driver, ya que mando la impresion directa al puerto paralelo.
Lei el manual de la impresora y cheque que tiene un ROM con 8 switch y que el segundo era para aceptar los CODES CONTROL, lo active, y al probar de nuevo vi que ya salia legible,pero en cada linea impresa, salia otra en blanco y pues me gasta hasta 2 veves y medio la cantidad de papel.

Devolvi la configuracion original de la impresora volvi a probar (en mi pc), y funciona tal como yo lo espero.

La verdad no se que pueda ser, tal vez la PC del cliente (win98,32MB Ram,pentium 300MHZ). Este el codigo de la impresion.


procedure TfrmPunto.print_Ticket;
var
str1,str2:string;
str3:string[6];
F:Textfile;
i:byte;
begin
AssignFile(F,'LPT1');
rewrite(F);
writeln(F,#14);
writeln(F,' Gran Pollo');
writeln(F,#15);
writeln(F,'**Restaurantes Gran Pollo S.A. de C.V.**');
writeln(F,' R.F.C. RGP-031217-JI8');
writeln(F,' BLVD. Agustin Olachea #449');
writeln(F,' CD. Constitucion, Baja Calif. Sur');
writeln(F,' Tel. 13-2-28-88 Fax 13-2-55-28');
writeln(F,' email: granpollomx@yahoo.com.mx');
writeln(F,'******************************************');
writeln(F,' '+bar.Panels.Items[0].Text);
writeln(F,' '+bar.Panels.Items[1].Text);
writeln(F,'Venta No. '+inttostr(idventa)+' Hora:'+timetostr(time));
//viene el detalle
writeln(F,'******************************************');
for i:=0 to lstVentas.Items.Count-1 do
begin
str1:=lstVentas.Items[i].SubItems.Strings[2];
rellena(str1,2);
str2:=lstVentas.Items[i].SubItems.Strings[0];
rellena(str2,25);
str3:=lstVentas.Items[i].SubItems.Strings[3];
writeln(F,str1+' '+str2,format('%8.2f',[strtofloat(str3)]));
end;
writeln(F,'******************************************');
writeln(F,#14);
writeln(F,'Total: $',format('%8.2f',[strtofloat(txttotal.text)]));
writeln(F,'Gracias por su compra');
writeln(F,#15);
writeln(F,#10,#13);
writeln(F,#10,#13);
writeln(F,#10,#13);
closefile(F);
end; {fin print_Ticket}


Pues de antemano les doy las gracias por la ayuda que puedan proprcionarme.

marcoszorrilla
14-05-2005, 22:13:00
Supongo que donde te salen 2 líneas por una, es en el detalle del Ticket, o en todo el ticket desde la primera línea?.

La impresora es la misma, con la que haces las pruebas, porque convendría saber si son 2 impresoras iguales si estan los interruptores configurados exactamente igual.


Un Saludo.

lroblesco
14-05-2005, 22:41:02
Primero Gracias por responder tan rapidamente.

Es desde el comienzo del ticket hasta la ultima linea. Osea, una linea impresa despues una linea en blanco. Donde lleva un titulo, por ejemplo el nombre del negocio, hago la letra mas grande y por ende la siguiente linea en blanco que sale abarca mas espacio.

Con respecto a la impresora, en efecto es la misma.

El problema del interlineado en el ticket lo resolvi devolviendo la configuracion original de fabrica. Lo que me ocupa en estos momentos, es que la impresion es como ya dije ilegible. Imprime las primeras 2 letras de los letreros seguido de caracteres digamosle basura y al terminar la linea los 2 ultimos caracteres correctos.

Gracias de nuevo.

marcoszorrilla
15-05-2005, 09:52:49
Recuerdo una vieja impresora que tuve "9 agujas", que hasta que dí con el interruptor adecuado, ya que no tenía el manual, me hacia algo similar.

Un Saludo.

lroblesco
15-05-2005, 17:57:18
Gracias Marcos.
Lo curioso es que solamente en la maquina del cliente es donde pasa eso, en mi casa tengo 2 PC's, una P4 con winXP 512 MB Ramy otra que es un celeron de 400 mhz con 64MB y win98SE (que se asemeja a la maquina que posee mi cliente) e imprime correctamente con la configuracion normal de fabrica en la impresora.

He llegado a pensar que tal vez sea el sistema operativo de la maquina del cliente, tal vez tenga el win98 primera edicion.

Bueno acepto sus opiniones

marcoszorrilla
15-05-2005, 21:10:41
Pues el caso no deja de ser curioso pues al imprimir directamente con los códigos de la impresora sin usar controlador alguno, no debiera de incidir en ello el sistema operativo.

No cabe duda que quizás un arreglo chapucero funcionaría sería no mandarle el avance de linea, si es que lo da el solo.

O para curarte en salud, puedes poner en configuración un condicional, ¿Ge
Generar avance de línea S/N?

Si se marca no, se mandan imprimir las líneas sin más, en este caso suponemos que se generan automáticamente, al no mandarle tu avance de línea quedaría el que manda la impresora de forma misteriosa, y si por algun motivo se instala en otro PC y no se genera automáticamente pues le marcamos si, esto lo guardaríamos en una tabla el programa constultaría dicha tabla y según lo marcado generaría el avance de línea o no.

Un Saludo.

lroblesco
19-05-2005, 00:58:08
Bueno primeramente gracias por los consejos. Pero algo me ha dejado perplejo, hice una pequeña aplicacion para hacer una impresion.

Fui con mi cliente me traje la PC a mi casa, hice las pruebas pertinentes y como si nunca hubiera pasado nada. Todo lo imprimio perfecto. La verdad que bien para mi, pero no me agrada la idea de que las cosas se arreglen solas, ya que a si mismo pueden fallar.

Pues de nuevo mil gracias

Por aqui nos veremos